-
Moises Fernandez authoredMoises Fernandez authored
rubix_preproc.sh 3.05 KiB
#!/bin/sh
subjdir=$1
filterflag=$2
gflag=$3
out_dir=${subjdir}.rubiX
maskLR=nodif_brain_maskLR
if [ ${filterflag} -eq 1 ]; then
cp ${subjdir}/bvals $out_dir/bvalsLR
cp ${subjdir}/bvecs $out_dir/bvecsLR
cp ${subjdir}/bvecs $out_dir/bvecsHR
cp ${subjdir}/bvals $out_dir/bvalsHR
${FSLDIR}/bin/fslslice $subjdir/data $out_dir/dataHR
HighRes=`${FSLDIR}/bin/fslval ${subjdir}/data pixdim1`
LowRes=`echo "${HighRes} * 2" | bc -l`
echo "Create Downsampled version of data at ${LowRes} mm isotropic"
${FSLDIR}/bin/flirt -in ${subjdir}/nodif_brain_mask -ref ${subjdir}/nodif_brain_mask -applyisoxfm ${LowRes} -interp nearestneighbour -out ${out_dir}/nodif_brain_maskLR
${FSLDIR}/bin/flirt -in ${subjdir}/data -ref ${subjdir}/data -applyisoxfm ${LowRes} -interp sinc -out ${out_dir}/dataLR
${FSLDIR}/bin/fslslice ${out_dir}/dataLR ${out_dir}/dataLR
${FSLDIR}/bin/fslslice ${out_dir}/$maskLR ${out_dir}/$maskLR
if [ ${gflag} -eq 1 ]; then
echo "Create Downsampled version of grad_dev at ${LowRes} mm isotropic"
${FSLDIR}/bin/flirt -in ${subjdir}/grad_dev -ref ${subjdir}/grad_dev -applyisoxfm ${LowRes} -interp nearestneighbour -out ${out_dir}/grad_devLR
${FSLDIR}/bin/fslslice $subjdir/grad_dev $out_dir/grad_devHR
${FSLDIR}/bin/fslslice ${out_dir}/grad_devLR $out_dir/grad_devLR
fi
dataHRname=${subjdir}/data
dataLRname=${out_dir}/dataLR
else
cp ${subjdir}/bvalsLR $out_dir/bvalsLR
cp ${subjdir}/bvecsLR $out_dir/bvecsLR
cp ${subjdir}/bvecsHR $out_dir/bvecsHR
cp ${subjdir}/bvalsHR $out_dir/bvalsHR
${FSLDIR}/bin/fslslice $subjdir/dataLR $out_dir/dataLR
${FSLDIR}/bin/fslslice $subjdir/$maskLR $out_dir/$maskLR
${FSLDIR}/bin/fslslice $subjdir/dataHR $out_dir/dataHR
if [ ${gflag} -eq 1 ]; then
${FSLDIR}/bin/fslslice $subjdir/grad_devLR $out_dir/grad_devLR
${FSLDIR}/bin/fslslice $subjdir/grad_devHR $out_dir/grad_devHR
fi
dataLRname=${subjdir}/dataLR
dataHRname=${subjdir}/dataHR
fi
pixdim3LR=`$FSLDIR/bin/fslval ${dataLRname} pixdim3`
pixdim3HR=`$FSLDIR/bin/fslval ${dataHRname} pixdim3`
nslicesLR=`$FSLDIR/bin/fslval ${dataLRname} dim3`
nslicesHR=`$FSLDIR/bin/fslval ${dataHRname} dim3`
zratio=`echo "scale=0; $pixdim3LR / $pixdim3HR" | bc -l`
slice=0
while [ $slice -lt $nslicesLR ]
do
slicezp=`$FSLDIR/bin/zeropad $slice 4`
count=$zratio
arr_cnt=0
while [ $count -ge 1 ]
do
HRslice=`echo "( ( $slice + 1 ) * $zratio ) - $count" | bc -l`
HRslicezp=`$FSLDIR/bin/zeropad $HRslice 4`
filenames[arr_cnt]=${out_dir}/dataHR_slice_${HRslicezp}
gfilenames[arr_cnt]=${out_dir}/grad_devHR_slice_${HRslicezp}
count=$(($count - 1))
arr_cnt=$(($arr_cnt + 1))
done
${FSLDIR}/bin/fslmerge -z ${out_dir}/dataHR_newslice_${slicezp} `echo ${filenames[*]}`
if [ ${gflag} -eq 1 ]; then
${FSLDIR}/bin/fslmerge -z ${out_dir}/grad_devHR_newslice_${slicezp} `echo ${gfilenames[*]}`
fi
slice=$(($slice + 1))
done
rm -f ${out_dir}/dataHR_slice_*
#rm -f ${out_dir}/dataLR
if [ ${gflag} -eq 1 ]; then
rm -f ${out_dir}/grad_devHR_slice_*
# rm -f ${out_dir}/grad_devLR
fi
echo Done