-
Duncan Mortimer authoredDuncan Mortimer authored
siena_flow2std 2.70 KiB
#!/bin/sh
# siena_flow2std - warp flow image into standard space
#
# Stephen Smith, FMRIB Image Analysis Group
#
# Copyright (C) 2002-2007 University of Oxford
#
# SHCOPYRIGHT
Usage() {
echo ""
echo "Usage: siena_flow2std <fileroot2> <fileroot2> [options]"
echo ""
echo "-s <sigma> : spatial smoothing of standard-space edge-flow image, sigma (HWHM) in mm (default=5)"
echo "-d : debug (don't delete intermediate files)"
echo ""
exit 1
}
if [ _$FSLDIR = _ ] ; then
FSLDIR=/usr/local/fsl
export FSLDIR
fi
[ "$2" = "" ] && Usage
[ `${FSLDIR}/bin/imtest $1` = 0 ] && Usage
[ `${FSLDIR}/bin/imtest $2` = 0 ] && Usage
A=`${FSLDIR}/bin/remove_ext $1`
B=`${FSLDIR}/bin/remove_ext $2`
shift 2
debug=0
smooth=5
while [ _$1 != _ ] ; do
if [ $1 = -d ] ; then
debug=1
shift
elif [ $1 = -s ] ; then
smooth=$2
shift 2
else
Usage
fi
done
# register to MNI152 if not already done, and create halfway2std transform
if [ ! -f ${A}_to_std.mat ] ; then
if [ `${FSLDIR}/bin/imtest ${A}_brain` = 0 ] ; then
${FSLDIR}/bin/bet $A ${A}_brain
fi
${FSLDIR}/bin/flirt -ref ${FSLDIR}/data/standard/avg152T1_brain -in ${A}_brain -omat ${A}_to_std.mat -o ${A}_to_std
fi
${FSLDIR}/bin/convert_xfm -omat ${A}_halfwayto_${B}_inv.mat -inverse ${A}_halfwayto_${B}.mat
${FSLDIR}/bin/convert_xfm -omat ${A}_halfwayto_${B}_to_std.mat -concat ${A}_to_std.mat ${A}_halfwayto_${B}_inv.mat
# dilate flow image, -> standard space -> mask with ss edge image -> blur -> remask
${FSLDIR}/bin/fslmaths ${A}_to_${B}_flow -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM ${A}_to_${B}_flow_dil
${FSLDIR}/bin/fslmaths ${B}_to_${A}_flow -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM -dilM ${A}_to_${B}_flow_dilback
${FSLDIR}/bin/fslmaths ${A}_to_${B}_flow_dil -sub ${A}_to_${B}_flow_dilback -div 2 ${A}_to_${B}_flow_dil
${FSLDIR}/bin/imrm ${A}_to_${B}_flow_dilback
${FSLDIR}/bin/flirt -in ${A}_to_${B}_flow_dil -ref ${FSLDIR}/data/standard/avg152T1_brain -out ${A}_to_${B}_flow_to_std -applyxfm -init ${A}_halfwayto_${B}_to_std.mat
${FSLDIR}/bin/fslmaths ${A}_to_${B}_flow_to_std -mas ${FSLDIR}/data/standard/avg152T1_edges ${A}_to_${B}_flow_to_std
if [ $smooth != 0 ] ; then
${FSLDIR}/bin/fslmaths ${FSLDIR}/data/standard/avg152T1_edges -bin -s $smooth ${A}_masksmooth -odt float
${FSLDIR}/bin/fslmaths ${A}_to_${B}_flow_to_std -s $smooth -div ${A}_masksmooth -mas ${FSLDIR}/data/standard/avg152T1_edges ${A}_to_${B}_flow_to_std
fi
# cleanup
if [ $debug = 0 ] ; then
/bin/rm -f ${A}_halfwayto_${B}_inv.mat `$FSLDIR/bin/imglob -oneperimage ${A}_masksmooth ${A}_brain.* ${A}_to_${B}_flow_dil.* ${A}_to_std.*`
fi