/
launch.sh
executable file
·132 lines (107 loc) · 2.89 KB
/
launch.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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/bin/bash
LOCAL_ENV=.local_env
CREATE_ENV=false
usage() {
cat <<EOF
USAGE: launch.sh
launch utility script
----------------------------------------
launch.sh [command]
build
bash
setup
container
jupyter
EOF
exit
}
if [ -e ./$LOCAL_ENV ]
then
echo sourcing environment from ./$LOCAL_ENV
. ./$LOCAL_ENV
else
echo $LOCAL_ENV does not exist. Writing deafults to $LOCAL_ENV
CREATE_ENV=true
fi
CONT=${CONT:='claraparabricks/single-cell-examples_rapids_cuda10.2:latest'}
JUPYTER_PORT=${JUPYTER_PORT:-8888}
PLOTLY_PORT=${PLOTLY_PORT:-5000}
DASK_PORT=${DASK_PORT:-9001}
PROJECT_PATH=${PROJECT_PATH:=$(pwd)}
DATA_PATH=${DATA_PATH:=/workspace/rapids-single-cell-examples/data}
if [ ${CREATE_ENV} = true ]; then
echo CONT=${CONT} >> $LOCAL_ENV
echo JUPYTER_PORT=${JUPYTER_PORT} >> $LOCAL_ENV
echo PLOTLY_PORT=${PLOTLY_PORT} >> $LOCAL_ENV
echo DASK_PORT=${DASK_PORT} >> $LOCAL_ENV
echo PROJECT_PATH=${PROJECT_PATH} >> $LOCAL_ENV
echo DATA_PATH=${DATA_PATH} >> $LOCAL_ENV
fi
DOCKER_CMD="docker run --gpus all --user $(id -u):$(id -g) -p ${JUPYTER_PORT}:8888 -p ${DASK_PORT}:${DASK_PORT} -p ${PLOTLY_PORT}:5000 -v ${DATA_PATH}:/workspace/rapids-single-cell-examples/data --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -e HOME=/workspace/rapids-single-cell-examples/data -e TF_CPP_MIN_LOG_LEVEL=3 -w /workspace/rapids-single-cell-examples"
JUPYTER_CMD="/opt/conda/envs/rapids/bin/jupyter-lab \
--no-browser \
--port=8888 \
--ip=0.0.0.0 \
--notebook-dir=/workspace \
--NotebookApp.password=\"\" \
--NotebookApp.token=\"\" \
--NotebookApp.password_required=False"
build() {
echo 'Building container...'
./build.sh
exit
}
bash() {
${DOCKER_CMD} -it ${CONT} bash
exit
}
setup() {
local DATA_DIR=${DATA_PATH}/data
if [ ! -d "$DATA_DIR" ]; then
echo "Downloading datasets..."
mkdir -p ${DATA_DIR}
echo 'Downloading 70k krasnow_hlca_10x dataset...'
wget -q --show-progress \
-p ${DATA_DIR} \
https://rapids-single-cell-examples.s3.us-east-2.amazonaws.com/krasnow_hlca_10x.sparse.h5ad
echo 'Downloading dsci dataset...'
wget -q --show-progress \
-p ${DATA_DIR} \
https://rapids-single-cell-examples.s3.us-east-2.amazonaws.com/dsci_resting_nonzeropeaks.h5ad; \
wget -q --show-progress \
-p ${DATA_DIR} \
https://rapids-single-cell-examples.s3.us-east-2.amazonaws.com/dsci_resting_peaknames_nonzero.npy; \
wget -q --show-progress \
-p ${DATA_DIR} \
https://rapids-single-cell-examples.s3.us-east-2.amazonaws.com/dsci_resting_cell_metadata.csv
echo 'Downloading 1M brain_cells_10X dataset...'
wget -q --show-progress \
-p ${DATA_DIR} \
https://rapids-single-cell-examples.s3.us-east-2.amazonaws.com/1M_brain_cells_10X.sparse.h5ad
fi
}
container() {
${DOCKER_CMD} -it ${CONT} ${JUPYTER_CMD}
exit
}
jupyter() {
${JUPYTER_CMD} --allow-root
exit
}
case $1 in
build)
;&
bash)
;&
setup)
;&
container)
$1
;;
jupyter)
$1
;;
*)
usage
;;
esac