-
Notifications
You must be signed in to change notification settings - Fork 1
/
autoxai4omics.sh
executable file
·116 lines (108 loc) · 2.84 KB
/
autoxai4omics.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#! /usr/bin/env bash
# Copyright 2024 IBM Corp.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -x
ROOT=''
DETACH=''
GPU=''
CONFIG=''
MODE=''
VOL_MAPS="-v ${PWD}/configs:/configs -v ${PWD}/data:/data -v ${PWD}/experiments:/experiments"
echo "Getting flags"
#get variables from input
while getopts 'm:c:rgd' OPTION; do
case "$OPTION" in
m)
case "${OPTARG}" in
"train")
MODE=mode_train_models.py
;;
"test")
MODE=mode_testing_holdout.py
;;
"predict")
MODE=mode_predict.py
;;
"plotting")
MODE=mode_plotting.py
;;
"feature")
MODE=mode_feature_selection.py
;;
"bash")
MODE=bash
;;
?)
echo "Unrecognised mode: ${OPTARG}. Valid modes: train, test, predict, plotting, bash"
exit 1
;;
esac
;;
c)
echo "Registering config"
CONFIG=${OPTARG}
;;
r)
echo "Setting root for bash"
ROOT='-u root'
;;
g)
echo "Setting gpus access"
GPU='--gpus all -ti'
;;
d)
echo "Registering container detachment"
DETACH='-d'
;;
?)
echo "script usage: $(basename \$0) [-m] [-c] [-p] [-r] [-g] [-d]" >&2
exit 1
;;
esac
done
if [[ $MODE == "" ]]
then
echo "Please specify a mode using the flag -m, valid modes: train, test, predict, plotting, bash"
exit 1
fi
if [[ $CONFIG == "" && $MODE != "bash" ]]
then
echo "Config file not provided. please provide a file from the config folder"
exit 1
fi
. ./common.sh
IMAGE_ID=$(docker images -q $IMAGE_FULL)
if [[ -z $IMAGE_ID ]]
then
echo "Image not built, please build by running './build.sh' "
exit 1
fi
if [ $MODE != "bash" ]
then
docker run \
--rm \
$DETACH \
$GPU \
$VOL_MAPS \
$IMAGE_FULL \
python $MODE -c /configs/"$CONFIG"
else
docker run \
--rm \
-ti \
$ROOT \
$VOL_MAPS \
$IMAGE_FULL \
bash
fi