|
a |
|
b/tests/pipeline_test.sh |
|
|
1 |
#!/usr/bin/env bash |
|
|
2 |
|
|
|
3 |
# ================================ |
|
|
4 |
SCRIPT=$(readlink -m $(type -p $0)) |
|
|
5 |
SCRIPTDIR=$(dirname $SCRIPT) |
|
|
6 |
testDataDir=$SCRIPTDIR/data |
|
|
7 |
prismaDir=$SCRIPTDIR/data/Prisma |
|
|
8 |
testDir=$SCRIPTDIR/ |
|
|
9 |
zipFile=dtitest_Siemens_SC.zip |
|
|
10 |
|
|
|
11 |
# ================================ |
|
|
12 |
echo Downloading Prisma data |
|
|
13 |
|
|
|
14 |
if [ ! -f $testDataDir/$zipFile ] |
|
|
15 |
then |
|
|
16 |
wget http://people.cas.sc.edu/rorden/SW/dcm2niix/$zipFile -P $testDataDir |
|
|
17 |
else |
|
|
18 |
echo $testDataDir/$zipFile exists, unzipping $zipFile |
|
|
19 |
fi |
|
|
20 |
|
|
|
21 |
rm -rf $prismaDir |
|
|
22 |
unzip -o -d $testDataDir $testDataDir/$zipFile |
|
|
23 |
|
|
|
24 |
|
|
|
25 |
pushd . |
|
|
26 |
cd $prismaDir |
|
|
27 |
dcm2niix -o . -f %z -z y . |
|
|
28 |
|
|
|
29 |
IMAGELIST=$testDataDir/imagelist.txt |
|
|
30 |
MASKLIST=$testDataDir/masklist.txt |
|
|
31 |
B0LIST=$testDataDir/b0list.txt |
|
|
32 |
WarpedB0LIST=$testDataDir/warped_b0list.txt |
|
|
33 |
WarpedMASKLIST=$testDataDir/warped_masklist.txt |
|
|
34 |
CASELIST=$testDataDir/caselist.txt |
|
|
35 |
|
|
|
36 |
if [ -f $IMAGELIST ] |
|
|
37 |
then |
|
|
38 |
rm $IMAGELIST $MASKLIST $B0LIST $WarpedB0LIST $WarpedMASKLIST $CASELIST |
|
|
39 |
fi |
|
|
40 |
|
|
|
41 |
|
|
|
42 |
echo 'Generating b0 image and corresponding brain mask for test data ...' |
|
|
43 |
for i in `ls *.nii.gz` |
|
|
44 |
do |
|
|
45 |
IFS=., read -r prefix _ _ <<< $i |
|
|
46 |
if [ -f $prefix.bval ] && [ -f $prefix.bvec ] |
|
|
47 |
then |
|
|
48 |
echo $i |
|
|
49 |
|
|
|
50 |
b0=${prefix}_b0.nii.gz |
|
|
51 |
mask=${prefix} |
|
|
52 |
|
|
|
53 |
fslroi $i $b0 0 1 |
|
|
54 |
bet $b0 $mask -m -n |
|
|
55 |
|
|
|
56 |
echo `pwd`/$i >> $IMAGELIST |
|
|
57 |
echo `pwd`/${prefix}_mask.nii.gz >> $MASKLIST |
|
|
58 |
echo `pwd`/${prefix}_b0.nii.gz >> $B0LIST |
|
|
59 |
echo `pwd`/${prefix}_b0-Warped.nii.gz >> $WarpedB0LIST |
|
|
60 |
echo `pwd`/${prefix}_b0-Warped-mask.nii.gz >> $WarpedMASKLIST |
|
|
61 |
echo $prefix >> $CASELIST |
|
|
62 |
fi |
|
|
63 |
done |
|
|
64 |
popd |
|
|
65 |
|
|
|
66 |
|
|
|
67 |
# ================================ |
|
|
68 |
|
|
|
69 |
|
|
|
70 |
# prediction based on provided model |
|
|
71 |
../pipeline/dwi_masking.py -i $IMAGELIST -nproc 5 -f ../model_folder/ |
|
|
72 |
../pipeline/dwi_masking.py -i $IMAGELIST -nproc 5 -f ../model_folder/ -filter scipy |
|
|
73 |
../pipeline/dwi_masking.py -i $B0LIST -nproc 5 -f ../model_folder/ |
|
|
74 |
|
|
|
75 |
# ================================ |
|
|
76 |
|
|
|
77 |
|
|
|
78 |
# training |
|
|
79 |
../src/registration.py -b0 $B0LIST -mask $MASKLIST -ref ../model_folder/IITmean_b0_256.nii.gz |
|
|
80 |
../src/preprocess_b0.py -i $WarpedB0LIST |
|
|
81 |
../src/preprocess_mask.py -i $WarpedMASKLIST |
|
|
82 |
|
|
|
83 |
|
|
|
84 |
echo -e " |
|
|
85 |
[COMMON] |
|
|
86 |
save_model_dir = \"$testDataDir/model_folder_test\" |
|
|
87 |
log_dir = \"$testDataDir/log_dir\" |
|
|
88 |
|
|
|
89 |
[DATA] |
|
|
90 |
data_dir = \"$prismaDir\" |
|
|
91 |
train_data_file = \"sagittal-traindata-dwi.npy\" |
|
|
92 |
train_label_file = \"sagittal-traindata-mask.npy\" |
|
|
93 |
|
|
|
94 |
[TRAINING] |
|
|
95 |
principal_axis = \"sagittal\" |
|
|
96 |
learning_rate = 1e-3 |
|
|
97 |
train_batch_size = 4 |
|
|
98 |
validation_split = 0.2 |
|
|
99 |
num_epochs = 1 |
|
|
100 |
shuffle_data = \"True\" |
|
|
101 |
" > $testDataDir/settings.ini |
|
|
102 |
|
|
|
103 |
|
|
|
104 |
export COMPNET_CONFIG=$testDataDir/settings.ini |
|
|
105 |
../src/train.py |
|
|
106 |
|
|
|
107 |
sed -i "s/sagittal/coronal/g" $testDataDir/settings.ini |
|
|
108 |
../src/train.py |
|
|
109 |
|
|
|
110 |
sed -i "s/coronal/axial/g" $testDataDir/settings.ini |
|
|
111 |
../src/train.py |
|
|
112 |
|
|
|
113 |
|
|
|
114 |
# ================================ |
|
|
115 |
|
|
|
116 |
|
|
|
117 |
# prediction based on trained model |
|
|
118 |
cp ../model_folder/IITmean_b0_256.nii.gz $testDataDir/model_folder_test/ |
|
|
119 |
../pipeline/dwi_masking.py -i $IMAGELIST -nproc 5 -f $testDataDir/model_folder_test/ |
|
|
120 |
|
|
|
121 |
|