--- a +++ b/tests/pipeline_test.sh @@ -0,0 +1,121 @@ +#!/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/ + +