[e918fa]: / tests / pipeline_test.sh

Download this file

122 lines (87 with data), 3.0 kB

  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
#!/usr/bin/env bash
# ================================
SCRIPT=$(readlink -m $(type -p $0))
SCRIPTDIR=$(dirname $SCRIPT)
testDataDir=$SCRIPTDIR/data
prismaDir=$SCRIPTDIR/data/Prisma
testDir=$SCRIPTDIR/
zipFile=dtitest_Siemens_SC.zip
# ================================
echo Downloading Prisma data
if [ ! -f $testDataDir/$zipFile ]
then
wget http://people.cas.sc.edu/rorden/SW/dcm2niix/$zipFile -P $testDataDir
else
echo $testDataDir/$zipFile exists, unzipping $zipFile
fi
rm -rf $prismaDir
unzip -o -d $testDataDir $testDataDir/$zipFile
pushd .
cd $prismaDir
dcm2niix -o . -f %z -z y .
IMAGELIST=$testDataDir/imagelist.txt
MASKLIST=$testDataDir/masklist.txt
B0LIST=$testDataDir/b0list.txt
WarpedB0LIST=$testDataDir/warped_b0list.txt
WarpedMASKLIST=$testDataDir/warped_masklist.txt
CASELIST=$testDataDir/caselist.txt
if [ -f $IMAGELIST ]
then
rm $IMAGELIST $MASKLIST $B0LIST $WarpedB0LIST $WarpedMASKLIST $CASELIST
fi
echo 'Generating b0 image and corresponding brain mask for test data ...'
for i in `ls *.nii.gz`
do
IFS=., read -r prefix _ _ <<< $i
if [ -f $prefix.bval ] && [ -f $prefix.bvec ]
then
echo $i
b0=${prefix}_b0.nii.gz
mask=${prefix}
fslroi $i $b0 0 1
bet $b0 $mask -m -n
echo `pwd`/$i >> $IMAGELIST
echo `pwd`/${prefix}_mask.nii.gz >> $MASKLIST
echo `pwd`/${prefix}_b0.nii.gz >> $B0LIST
echo `pwd`/${prefix}_b0-Warped.nii.gz >> $WarpedB0LIST
echo `pwd`/${prefix}_b0-Warped-mask.nii.gz >> $WarpedMASKLIST
echo $prefix >> $CASELIST
fi
done
popd
# ================================
# prediction based on provided model
../pipeline/dwi_masking.py -i $IMAGELIST -nproc 5 -f ../model_folder/
../pipeline/dwi_masking.py -i $IMAGELIST -nproc 5 -f ../model_folder/ -filter scipy
../pipeline/dwi_masking.py -i $B0LIST -nproc 5 -f ../model_folder/
# ================================
# training
../src/registration.py -b0 $B0LIST -mask $MASKLIST -ref ../model_folder/IITmean_b0_256.nii.gz
../src/preprocess_b0.py -i $WarpedB0LIST
../src/preprocess_mask.py -i $WarpedMASKLIST
echo -e "
[COMMON]
save_model_dir = \"$testDataDir/model_folder_test\"
log_dir = \"$testDataDir/log_dir\"
[DATA]
data_dir = \"$prismaDir\"
train_data_file = \"sagittal-traindata-dwi.npy\"
train_label_file = \"sagittal-traindata-mask.npy\"
[TRAINING]
principal_axis = \"sagittal\"
learning_rate = 1e-3
train_batch_size = 4
validation_split = 0.2
num_epochs = 1
shuffle_data = \"True\"
" > $testDataDir/settings.ini
export COMPNET_CONFIG=$testDataDir/settings.ini
../src/train.py
sed -i "s/sagittal/coronal/g" $testDataDir/settings.ini
../src/train.py
sed -i "s/coronal/axial/g" $testDataDir/settings.ini
../src/train.py
# ================================
# prediction based on trained model
cp ../model_folder/IITmean_b0_256.nii.gz $testDataDir/model_folder_test/
../pipeline/dwi_masking.py -i $IMAGELIST -nproc 5 -f $testDataDir/model_folder_test/