Skip to content
Snippets Groups Projects
Commit 50532fd0 authored by Mark Jenkinson's avatar Mark Jenkinson
Browse files

Added fmriborient and stopped EDITOR being

used in avwedithd - as it is almost always set to vi!
parent 03a5edd4
No related branches found
No related tags found
No related merge requests found
......@@ -23,6 +23,7 @@ XFILES = avwcpgeom avwmerge avwnvols avwsplit \
avwstats avwcomplex avwstats++ avwfft avwmeants avwcheck avwswapdim avwconv avwslice avworient
SCRIPTS = avwval avwchpixdim avwanimate sliceanimate avwsize avwinfo avwedithd avwchfiletype
FSCRIPTS = fmriborient
RUNAVWS = avw2ascii avwmaths avwcc avwroi avwfill avwinterleave
......
#!/bin/sh
if [ $# -lt 1 ] ; then
echo "$0 <list of files>"
echo " Fixes the orientation of all pre-3.2beta nifti1 files written in fmrib"
exit 1
fi
FSLDIR=/usr/local/fsltest
export FSLDIR
for fm in $@ ; do
stdspace=0;
if [ `$FSLDIR/bin/imtest $fm` = 1 ] ; then
fn=`$FSLDIR/bin/imglob $fm`
fb=`$FSLDIR/bin/remove_ext $fn`
if [ X`$FSLDIR/bin/avwval $fb descrip` != XFSL3.2beta ] ; then
# make a backup copy and check to see if it copied OK (exit if not)
ftmp=`echo ${fn} | sed 's/.nii/_niifix.nii/'`
if [ X$ftmp = X$fn ] ; then
ftmp=${fn}_niifix
fi
/bin/cp -p $fn ${ftmp}
if [ `$FSLDIR/bin/imtest ${ftmp}` != 1 ] ; then
echo "FAIL 1"
echo ${fb} >> /tmp/NIIFIXFAILS ; exit 2 ;
fi
statsA=`$FSLDIR/bin/avwstats++ ${fb} -R -V`
statsB=`$FSLDIR/bin/avwstats++ ${ftmp} -R -V`
min=`echo $statsA | awk '{ print $1 }'`
mint=`echo $statsB | awk '{ print $1 }'`
if [ $min != $mint ] ; then
echo "FAIL 2: $min $mint"
echo ${fb} >> /tmp/NIIFIXFAILS ; exit 2 ;
fi
max=`echo $statsA | awk '{ print $2 }'`
maxt=`echo $statsB | awk '{ print $2 }'`
if [ $max != $maxt ] ; then
echo "FAIL 3: $max $maxt"
echo ${fb} >> /tmp/NIIFIXFAILS ; exit 2 ;
fi
mvv=`echo $statsA | awk '{ print $3 }'`
mvvt=`echo $statsB | awk '{ print $3 }'`
if [ $mvv != $mvvt ] ; then
echo "FAIL 4: $mvv $mvvt"
echo ${fb} >> /tmp/NIIFIXFAILS ; exit 2 ;
fi
# OK, now remove orientation information
$FSLDIR/bin/avworient -deleteorient $fb
# check if it should be in standard space
hdrinfo=`$FSLDIR/bin/avwhd $fn`;
nx=`echo $hdrinfo | sed 's/ \([a-z]\)/X\1/g' | tr 'X' '\n' | grep dim1 | head -1 | awk '{ print $2 }'`;
ny=`echo $hdrinfo | sed 's/ \([a-z]\)/X\1/g' | tr 'X' '\n' | grep dim2 | head -1 | awk '{ print $2 }'`;
nz=`echo $hdrinfo | sed 's/ \([a-z]\)/X\1/g' | tr 'X' '\n' | grep dim3 | head -1 | awk '{ print $2 }'`;
dx=`echo $hdrinfo | sed 's/ \([a-z]\)/X\1/g' | tr 'X' '\n' | grep pixdim1 | head -1 | awk '{ print $2 }'`;
dy=`echo $hdrinfo | sed 's/ \([a-z]\)/X\1/g' | tr 'X' '\n' | grep pixdim2 | head -1 | awk '{ print $2 }'`;
dz=`echo $hdrinfo | sed 's/ \([a-z]\)/X\1/g' | tr 'X' '\n' | grep pixdim3 | head -1 | awk '{ print $2 }'`;
if [ $nx -eq 91 -a $ny -eq 109 -a $nz -eq 91 ] ; then
if [ `echo "( $dx * $dx - 4.0 ) * 1000" | bc -l` -eq 0 ] ; then
if [ `echo "( $dy * $dy - 4.0 ) * 1000" | bc -l` -eq 0 ] ; then
if [ `echo "( $dz * $dz - 4.0 ) * 1000" | bc -l` -eq 0 ] ; then
# treat it as a standard space image
$FSLDIR/bin/avwcpgeom /usr/local/fsl/etc/standard/avg152T1 $fb -d
fi
fi
fi
fi
# check if stats are still OK, if not then restore copy
if [ `$FSLDIR/bin/imtest ${fb}` != 1 ] ; then
/bin/cp -p ${ftmp} ${fn}
echo "FAIL 5: ${fb}"
echo ${fb} >> /tmp/NIIFIXFAILS ; exit 2 ;
fi
statsA=`$FSLDIR/bin/avwstats++ ${fb} -R -V`;
statsB=`$FSLDIR/bin/avwstats++ ${ftmp} -R -V`;
min=`echo $statsA | awk '{ print $1 }'`
mint=`echo $statsB | awk '{ print $1 }'`
if [ $min != $mint ] ; then
/bin/cp -p ${ftmp} ${fn}
echo "FAIL 6: $min $mint"
echo ${fb} >> /tmp/NIIFIXFAILS ; exit 2 ;
fi
max=`echo $statsA | awk '{ print $2 }'`
maxt=`echo $statsB | awk '{ print $2 }'`
if [ $max != $maxt ] ; then
/bin/cp -p ${ftmp} ${fn}
echo "FAIL 7: $max $maxt"
echo ${fb} >> /tmp/NIIFIXFAILS ; exit 2 ;
fi
mvv=`echo $statsA | awk '{ print $3 }'`
mvvt=`echo $statsB | awk '{ print $3 }'`
if [ $mvv != $mvvt ] ; then
/bin/cp -p ${ftmp} ${fn}
echo "FAIL 8: $mvv $mvvt"
echo ${fb} >> /tmp/NIIFIXFAILS ; exit 2 ;
fi
# if all checks are fine then remove the backup
$FSLDIR/bin/imrm ${ftmp}
fi
fi
done
......@@ -23,11 +23,11 @@ if [ _$FSLDIR = _ ] ; then
export FSLDIR
fi
if [ X$EDITOR = X ] ; then
EDITOR=pico
if [ X$FSLEDITOR = X ] ; then
FSLEDITOR=pico
fi
if [ $# -ge 2 ] ; then
EDITOR=$2
FSLEDITOR=$2
fi
tmpbase=`${FSLDIR}/bin/tmpnam`;
......@@ -67,7 +67,7 @@ echo " " >> ${tmpbase}
echo "/>" >> ${tmpbase}
# edit header, reprocess and pass onto avwcreatehd
${EDITOR} ${tmpbase}
${FSLEDITOR} ${tmpbase}
cat ${tmpbase} | grep -v '^[ ]*#' | grep -v '^[ ]*$' > ${tmpbase2}
${FSLDIR}/bin/avwcreatehd ${tmpbase2} $1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment