Skip to content
Snippets Groups Projects
Commit 219c944c authored by Stephen Smith's avatar Stephen Smith
Browse files

CVS: ----------------------------------------------------------------------

parent fce07fba
No related branches found
No related tags found
No related merge requests found
......@@ -14,13 +14,15 @@ GT_OBJS = groupttest.o
XFILES = siena_diff surface_norm cylsamp groupttest
SCRIPTS = siena siena_flirt siena_cal sienax siena_flow2tal
SCRIPTS = siena siena_flirt siena_cal sienax siena_flow2std
all: ${XFILES} docscripts
# DON'T REMOVE THE -O0!!!! siena_diff doesn't work with optimisation
siena_diff: siena_diff.c
$(CC) $(CFLAGS) -O0 -DFDT="float" -o siena_diff siena_diff.c $(LDFLAGS) $(LIBS)
siena_diffCC: siena_diff.cc
${CXX} $(LDFLAGS) -o $@ ${SN_OBJS} ${LIBCC}
surface_norm: ${SN_OBJS}
${CXX} ${LDFLAGS} -o $@ ${SN_OBJS} ${LIBCC}
......
......@@ -463,7 +463,7 @@ significantly with age or disease progression.
<LI> Run <br><code>siena A B</code><br> on all subjects'
two-timepoints data (here <code>A</code> and <code>B</code>).
<LI> For each subject run <br><code>siena_flow2tal A B</code><br> -
<LI> For each subject run <br><code>siena_flow2std A B</code><br> -
this runs flirt to generate the transform to standard space (if it
doesn't already exist), takes the edge flow (atrophy) image generated
by <code>siena</code>, dilates this several times (to "thicken" this edge
......@@ -471,15 +471,15 @@ flow image), transforms to standard space, and masks with a standard
space edge mask. It then smooths this with a Gaussian filter of
half-width 10mm before remasking; you may want to edit this or even
remove this step - find the call to <code>ip</code> in
$FSLDIR/bin/siena_flow2tal and change the <code>10</code> or just remove
$FSLDIR/bin/siena_flow2std and change the <code>10</code> or just remove
that line.
<LI> All subjects will now have an edge flow image in standard edge
space called <code>A_to_B_flow_to_tal</code>. Merge these into a single 4D
space called <code>A_to_B_flow_to_std</code>. Merge these into a single 4D
image; for example, if each subject's analysis has so far been carried
out in a subdirectory called siena_subject_*, where the * could be
subject ID or name, use a command such as:<br><code>
avwmerge -t flow_all_subjects `imglob -oneperimage siena_subject_*/A_to_B_flow_to_tal*`</code><br>
avwmerge -t flow_all_subjects `imglob -oneperimage siena_subject_*/A_to_B_flow_to_std*`</code><br>
Note: it is very important that the order that the subjects appear in
this command matches the order you intend when you then create the
......
......@@ -37,12 +37,12 @@ ${FSLDIR}/bin/bet $1 $1_brain -m
${FSLDIR}/bin/fast -e -ov $1_brain
# register t1 to standard space and invert transform
${FSLDIR}/bin/flirt -ref ${FSLDIR}/etc/standard/avg152T1_brain -in $1_brain -omat $1_brain_2_tal.mat
${FSLDIR}/bin/convert_xfm -inverse -omat tal_2_$1_brain.mat $1_brain_2_tal.mat
${FSLDIR}/bin/flirt -ref ${FSLDIR}/etc/standard/avg152T1_brain -in $1_brain -omat $1_brain_2_std.mat
${FSLDIR}/bin/convert_xfm -inverse -omat std_2_$1_brain.mat $1_brain_2_std.mat
# dilate (6mm) standard space structural segmentation, bring into t1 space and re-binarise
${FSLDIR}/bin/avwmaths ${FSLDIR}/etc/standard/avg152T1_strucseg -thr 3.5 -bin -dil -dil -dil strucseg_2_$1_brain
${FSLDIR}/bin/flirt -in strucseg_2_$1_brain -ref $1_brain -out strucseg_2_$1_brain -applyxfm -init tal_2_$1_brain.mat
${FSLDIR}/bin/flirt -in strucseg_2_$1_brain -ref $1_brain -out strucseg_2_$1_brain -applyxfm -init std_2_$1_brain.mat
${FSLDIR}/bin/avwmaths strucseg_2_$1_brain -bin strucseg_2_$1_brain
# produce t1-derived CSF mask and also dilate in-plane: 5 voxels outside central mask, 1 voxel inside mask
......
......@@ -53,12 +53,12 @@ ${FSLDIR}/bin/bet $A ${A}_brain -m
${FSLDIR}/bin/fast -e -ov ${A}_brain
# register t1 to standard space and invert transform
${FSLDIR}/bin/flirt -ref ${FSLDIR}/etc/standard/avg152T1_brain -in ${A}_brain -omat ${A}_brain_2_tal.mat
${FSLDIR}/bin/convert_xfm -inverse -omat tal_2_${A}_brain.mat ${A}_brain_2_tal.mat
${FSLDIR}/bin/flirt -ref ${FSLDIR}/etc/standard/avg152T1_brain -in ${A}_brain -omat ${A}_brain_2_std.mat
${FSLDIR}/bin/convert_xfm -inverse -omat std_2_${A}_brain.mat ${A}_brain_2_std.mat
# dilate (6mm) standard space ventricles+deep-grey, bring into t1 space and re-binarise to make "CENTRAL MASK"
${FSLDIR}/bin/avwmaths ${FSLDIR}/etc/standard/avg152T1_strucseg -thr 3.5 -bin -dil -dil -dil strucseg_2_${A}_brain
${FSLDIR}/bin/flirt -in strucseg_2_${A}_brain -ref ${A}_brain -out strucseg_2_${A}_brain -applyxfm -init tal_2_${A}_brain.mat
${FSLDIR}/bin/flirt -in strucseg_2_${A}_brain -ref ${A}_brain -out strucseg_2_${A}_brain -applyxfm -init std_2_${A}_brain.mat
${FSLDIR}/bin/avwmaths strucseg_2_${A}_brain -bin strucseg_2_${A}_brain
# produce t1-derived CSF mask and also dilate in-plane: 5 voxels outside CENTRAL MASK, 1 voxel inside mask
......
......@@ -54,12 +54,12 @@ ${FSLDIR}/bin/bet $A ${A}_brain -m
${FSLDIR}/bin/fast -e -ov ${A}_brain
# register t1 to standard space and invert transform
${FSLDIR}/bin/flirt -ref ${FSLDIR}/etc/standard/avg152T1_brain -in ${A}_brain -omat ${A}_brain_2_tal.mat
${FSLDIR}/bin/convert_xfm -inverse -omat tal_2_${A}_brain.mat ${A}_brain_2_tal.mat
${FSLDIR}/bin/flirt -ref ${FSLDIR}/etc/standard/avg152T1_brain -in ${A}_brain -omat ${A}_brain_2_std.mat
${FSLDIR}/bin/convert_xfm -inverse -omat std_2_${A}_brain.mat ${A}_brain_2_std.mat
# dilate (6mm) standard space ventricles+deep-grey, bring into t1 space and re-binarise to make "CENTRAL MASK"
${FSLDIR}/bin/avwmaths ${FSLDIR}/etc/standard/avg152T1_strucseg -thr 3.5 -bin -dil -dil -dil strucseg_2_${A}_brain
${FSLDIR}/bin/flirt -in strucseg_2_${A}_brain -ref ${A}_brain -out strucseg_2_${A}_brain -applyxfm -init tal_2_${A}_brain.mat
${FSLDIR}/bin/flirt -in strucseg_2_${A}_brain -ref ${A}_brain -out strucseg_2_${A}_brain -applyxfm -init std_2_${A}_brain.mat
${FSLDIR}/bin/avwmaths strucseg_2_${A}_brain -bin strucseg_2_${A}_brain
# produce t1-derived CSF mask and also dilate in-plane: 5 voxels outside CENTRAL MASK, 1 voxel inside mask
......
......@@ -50,9 +50,9 @@ debug=0
betopts=""
sdopts=""
sdo="-m"
dotal=0
talmask=0
talroi=""
dostd=0
stdmask=0
stdroi=""
origin3=37 # `avwval ${FSLDIR}/etc/standard/avg152T1 origin3`
pixdim3=2 # `avwval ${FSLDIR}/etc/standard/avg152T1 pixdim3`
......@@ -75,20 +75,20 @@ while [ _$1 != _ ] ; do
is_t2=" -s -t2"
shift
elif [ $1 = -m ] ; then
talmask=1
dotal=1
stdmask=1
dostd=1
shift
elif [ $1 = -t ] ; then
dotal=1
talt=`echo $2 | sed 's/-/_/g'`
talt=`echo "10 k $talt $pixdim3 / $origin3 + p" | dc -`
talroi="$talroi -roi 0 1000000 0 1000000 0 $talt 0 1"
dostd=1
stdt=`echo $2 | sed 's/-/_/g'`
stdt=`echo "10 k $stdt $pixdim3 / $origin3 + p" | dc -`
stdroi="$stdroi -roi 0 1000000 0 1000000 0 $stdt 0 1"
shift 2
elif [ $1 = -b ] ; then
dotal=1
talb=`echo $2 | sed 's/-/_/g'`
talb=`echo "10 k $talb $pixdim3 / $origin3 + p" | dc -`
talroi="$talroi -roi 0 1000000 0 1000000 $talb 1000000 0 1"
dostd=1
stdb=`echo $2 | sed 's/-/_/g'`
stdb=`echo "10 k $stdb $pixdim3 / $origin3 + p" | dc -`
stdroi="$stdroi -roi 0 1000000 0 1000000 $stdb 1000000 0 1"
shift 2
else
Usage
......@@ -122,15 +122,15 @@ ${FSLDIR}/bin/flirt -in ${A}_valid_mask -ref $B -out ${A}_valid_mask_to_${B} -ap
${FSLDIR}/bin/avwmaths ${A}_valid_mask -mul ${B}_valid_mask_to_${A} ${A}_valid_mask_with_$B
${FSLDIR}/bin/avwmaths ${B}_valid_mask -mul ${A}_valid_mask_to_${B} ${B}_valid_mask_with_$A
if [ $dotal = 1 ] ; then
if [ $dostd = 1 ] ; then
echo "" >> ${A}_to_${B}.siena
echo "---------- standard space masking ----------------------------------" >> ${A}_to_${B}.siena
${FSLDIR}/bin/flirt -ref ${FSLDIR}/etc/standard/avg152T1_brain -in ${A}_brain -omat ${A}_to_tal.mat >> ${A}_to_${B}.siena
${FSLDIR}/bin/flirt -ref ${FSLDIR}/etc/standard/avg152T1_brain -in ${B}_brain -omat ${B}_to_tal.mat >> ${A}_to_${B}.siena
${FSLDIR}/bin/convert_xfm -inverse -omat ${A}_to_tal_inv.mat ${A}_to_tal.mat
${FSLDIR}/bin/convert_xfm -inverse -omat ${B}_to_tal_inv.mat ${B}_to_tal.mat
${FSLDIR}/bin/flirt -ref ${FSLDIR}/etc/standard/avg152T1_brain -in ${A}_brain -omat ${A}_to_std.mat >> ${A}_to_${B}.siena
${FSLDIR}/bin/flirt -ref ${FSLDIR}/etc/standard/avg152T1_brain -in ${B}_brain -omat ${B}_to_std.mat >> ${A}_to_${B}.siena
${FSLDIR}/bin/convert_xfm -inverse -omat ${A}_to_std_inv.mat ${A}_to_std.mat
${FSLDIR}/bin/convert_xfm -inverse -omat ${B}_to_std_inv.mat ${B}_to_std.mat
${FSLDIR}/bin/convert_xfm -concat ${B}_to_tal_inv.mat -omat ${A}_to_${B}_tmp.mat ${A}_to_tal.mat
${FSLDIR}/bin/convert_xfm -concat ${B}_to_std_inv.mat -omat ${A}_to_${B}_tmp.mat ${A}_to_std.mat
RMSDIFF=`${FSLDIR}/bin/rmsdiff ${A}_to_${B}.mat ${A}_to_${B}_tmp.mat $A | sed 's/\..*$/ /g'` # last part makes it integer
echo "rmsdiff for standard space transform is $RMSDIFF mm" >> ${A}_to_${B}.siena
if [ $RMSDIFF -ge 10 ] ; then
......@@ -138,19 +138,19 @@ if [ $dotal = 1 ] ; then
echo "Warning! Probably failed consistency check for standard-space registrations!" >> ${A}_to_${B}.siena
fi
if [ $talmask = 1 ] ; then
${FSLDIR}/bin/flirt -in ${FSLDIR}/etc/standard/avg152T1_brain_mask_dil2 -ref $A -out ${A}_talmask -applyxfm -init ${A}_to_tal_inv.mat
${FSLDIR}/bin/flirt -in ${FSLDIR}/etc/standard/avg152T1_brain_mask_dil2 -ref $B -out ${B}_talmask -applyxfm -init ${B}_to_tal_inv.mat
${FSLDIR}/bin/avwmaths ${A}_brain_mask -mas ${A}_talmask ${A}_brain_mask
${FSLDIR}/bin/avwmaths ${B}_brain_mask -mas ${B}_talmask ${B}_brain_mask
if [ $stdmask = 1 ] ; then
${FSLDIR}/bin/flirt -in ${FSLDIR}/etc/standard/avg152T1_brain_mask_dil2 -ref $A -out ${A}_stdmask -applyxfm -init ${A}_to_std_inv.mat
${FSLDIR}/bin/flirt -in ${FSLDIR}/etc/standard/avg152T1_brain_mask_dil2 -ref $B -out ${B}_stdmask -applyxfm -init ${B}_to_std_inv.mat
${FSLDIR}/bin/avwmaths ${A}_brain_mask -mas ${A}_stdmask ${A}_brain_mask
${FSLDIR}/bin/avwmaths ${B}_brain_mask -mas ${B}_stdmask ${B}_brain_mask
fi
if [ "$talroi" != "" ] ; then
${FSLDIR}/bin/avwmaths ${FSLDIR}/etc/standard/avg152T1_brain_mask -mul 0 -add 1 $talroi ${A}_and_${B}_talmask
${FSLDIR}/bin/flirt -in ${A}_and_${B}_talmask -ref $A -out ${A}_talmask -applyxfm -init ${A}_to_tal_inv.mat
${FSLDIR}/bin/flirt -in ${A}_and_${B}_talmask -ref $B -out ${B}_talmask -applyxfm -init ${B}_to_tal_inv.mat
${FSLDIR}/bin/avwmaths ${A}_valid_mask_with_$B -mul ${A}_talmask ${A}_valid_mask_with_$B
${FSLDIR}/bin/avwmaths ${B}_valid_mask_with_$A -mul ${B}_talmask ${B}_valid_mask_with_$A
if [ "$stdroi" != "" ] ; then
${FSLDIR}/bin/avwmaths ${FSLDIR}/etc/standard/avg152T1_brain_mask -mul 0 -add 1 $stdroi ${A}_and_${B}_stdmask
${FSLDIR}/bin/flirt -in ${A}_and_${B}_stdmask -ref $A -out ${A}_stdmask -applyxfm -init ${A}_to_std_inv.mat
${FSLDIR}/bin/flirt -in ${A}_and_${B}_stdmask -ref $B -out ${B}_stdmask -applyxfm -init ${B}_to_std_inv.mat
${FSLDIR}/bin/avwmaths ${A}_valid_mask_with_$B -mul ${A}_stdmask ${A}_valid_mask_with_$B
${FSLDIR}/bin/avwmaths ${B}_valid_mask_with_$A -mul ${B}_stdmask ${B}_valid_mask_with_$A
fi
fi
......@@ -181,18 +181,18 @@ if [ $debug = 0 ] ; then
${B}_brain.* ${B}_brain_mask.* ${B}_brain_skull.* \
${A}_halfwayto_${B}.* ${A}_halfwayto_${B}_mask.* \
${B}_halfwayto_${A}.* ${B}_halfwayto_${A}_mask.* \
${A}_halfwayto_${B}_talmask.* \
${B}_halfwayto_${A}_talmask.* \
${A}_halfwayto_${B}_stdmask.* \
${B}_halfwayto_${A}_stdmask.* \
${A}_halfwayto_${B}_brain.* \
${A}_halfwayto_${B}_brain_seg.* \
${A}_to_${B}_flowneg.* \
${B}_halfwayto_${A}_brain.* \
${B}_halfwayto_${A}_brain_seg.* \
${B}_to_${A}_flowneg.* \
${A}_talmask.* ${B}_talmask.* \
${A}_and_${B}_talmask.* \
${A}_stdmask.* ${B}_stdmask.* \
${A}_and_${B}_stdmask.* \
${A}_valid_mask.* ${B}_valid_mask.* ${A}_valid_mask_to_${B}.* ${B}_valid_mask_to_${A}.* ${A}_valid_mask_with_$B.* ${B}_valid_mask_with_$A.* ${A}_halfwayto_${B}_valid_mask.* ${B}_halfwayto_${A}_valid_mask.*
/bin/rm -f ${A}_to_tal_inv.mat ${B}_to_tal_inv.mat ${A}_to_${B}_tmp.mat \
/bin/rm -f ${A}_to_std_inv.mat ${B}_to_std_inv.mat ${A}_to_${B}_tmp.mat \
${A}_halfwayto_${B}_brain.vol ${B}_halfwayto_${A}_brain.vol \
${B}_to_${A}.mat_avscale
fi
......
......@@ -72,7 +72,7 @@ $FSLDIR/bin/imrm sc${input}.* \
${input}_halfwayto_sc${input}_brain.* \
${input}_halfwayto_sc${input}_brain_seg.* \
${input}_halfwayto_sc${input}_mask.* \
${input}_halfwayto_sc${input}_talmask.* \
${input}_halfwayto_sc${input}_stdmask.* \
sc${input}_halfwayto_${input}.* \
sc${input}_halfwayto_${input}_mask.* \
${input}_to_sc${input}_flow.* \
......
......@@ -27,7 +27,7 @@ void usage()
printf("[-c <corr>] apply self-calibrating correction factor\n");
printf("[-e] erode joint mask a lot instead of dilating it slightly (ie find ventricle surface)\n");
printf("[-i] ignore flow in z (may be good if top of brain is missing)\n");
printf("[-m] apply <input1_basename>_talmask to brain edge points\n");
printf("[-m] apply <input1_basename>_stdmask to brain edge points\n");
/* printf("[-t <n>] ignore top n slices (may be good if top of brain is missing)\n");*/
/* printf("[-b <n>] ignore bottom n slices (may be good if top of brain is missing)\n");*/
printf("[-s <options>] <options> to be passed to segmentation (type \"fast\" to get these)\n\n");
......
#!/bin/sh
# siena_flow2tal - warp flow image into standard space
# siena_flow2std - warp flow image into standard space
#
# Stephen Smith, FMRIB Image Analysis Group
#
......@@ -10,7 +10,7 @@
Usage() {
echo "Usage: siena_flow2tal <fileroot2> <fileroot2> [-d]"
echo "Usage: siena_flow2std <fileroot2> <fileroot2> [-d]"
echo "-d : debug (don't delete intermediate files)"
exit
}
......@@ -37,25 +37,25 @@ for opts in $@ ; do
done
# register to MNI152 if not already done, and create halfway2tal transform
if [ ! -f ${A}_to_tal.mat ] ; then
# 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}/etc/standard/avg152T1_brain -in ${A}_brain -omat ${A}_to_tal.mat
${FSLDIR}/bin/flirt -ref ${FSLDIR}/etc/standard/avg152T1_brain -in ${A}_brain -omat ${A}_to_std.mat
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_tal.mat -concat ${A}_to_tal.mat ${A}_halfwayto_${B}_inv.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/avwmaths ${A}_to_${B}_flow -dil -dil -dil -dil -dil -dil -dil -dil -dil -dil -dil -dil -dil -dil ${A}_to_${B}_flow_dil
${FSLDIR}/bin/avwmaths ${B}_to_${A}_flow -dil -dil -dil -dil -dil -dil -dil -dil -dil -dil -dil -dil -dil -dil ${A}_to_${B}_flow_dilback
${FSLDIR}/bin/avwmaths ${A}_to_${B}_flow_dil -sub ${A}_to_${B}_flow_dilback -div 2 ${A}_to_${B}_flow_dil
/bin/rm ${A}_to_${B}_flow_dilback*
${FSLDIR}/bin/flirt -in ${A}_to_${B}_flow_dil -ref ${FSLDIR}/etc/standard/avg152T1_brain -out ${A}_to_${B}_flow_to_tal -applyxfm -init ${A}_halfwayto_${B}_to_tal.mat
${FSLDIR}/bin/avwmaths ${A}_to_${B}_flow_to_tal -mas ${FSLDIR}/etc/standard/avg152T1_edges ${A}_to_${B}_flow_to_tal
${FSLDIR}/bin/ip ${A}_to_${B}_flow_to_tal ${A}_to_${B}_flow_to_tal 0 -s 10
${FSLDIR}/bin/avwmaths ${A}_to_${B}_flow_to_tal -mas ${FSLDIR}/etc/standard/avg152T1_edges ${A}_to_${B}_flow_to_tal
${FSLDIR}/bin/flirt -in ${A}_to_${B}_flow_dil -ref ${FSLDIR}/etc/standard/avg152T1_brain -out ${A}_to_${B}_flow_to_std -applyxfm -init ${A}_halfwayto_${B}_to_std.mat
${FSLDIR}/bin/avwmaths ${A}_to_${B}_flow_to_std -mas ${FSLDIR}/etc/standard/avg152T1_edges ${A}_to_${B}_flow_to_std
${FSLDIR}/bin/ip ${A}_to_${B}_flow_to_std ${A}_to_${B}_flow_to_std 0 -s 10
${FSLDIR}/bin/avwmaths ${A}_to_${B}_flow_to_std -mas ${FSLDIR}/etc/standard/avg152T1_edges ${A}_to_${B}_flow_to_std
# cleanup
if [ $debug = 0 ] ; then
......
......@@ -49,7 +49,7 @@ regional=0
betopts=""
segopts=""
nseg=3
talroi=""
stdroi=""
origin3=37 # `avwval ${FSLDIR}/etc/standard/avg152T1 origin3`
pixdim3=2 # `avwval ${FSLDIR}/etc/standard/avg152T1 pixdim3`
imtype=-t1
......@@ -75,14 +75,14 @@ while [ _$1 != _ ] ; do
imtype=-t2
shift
elif [ $1 = -t ] ; then
talt=`echo $2 | sed 's/-/_/g'`
talt=`echo "10 k $talt $pixdim3 / $origin3 + p" | dc -`
talroi="$talroi -roi 0 1000000 0 1000000 0 $talt 0 1"
stdt=`echo $2 | sed 's/-/_/g'`
stdt=`echo "10 k $stdt $pixdim3 / $origin3 + p" | dc -`
stdroi="$stdroi -roi 0 1000000 0 1000000 0 $stdt 0 1"
shift 2
elif [ $1 = -b ] ; then
talb=`echo $2 | sed 's/-/_/g'`
talb=`echo "10 k $talb $pixdim3 / $origin3 + p" | dc -`
talroi="$talroi -roi 0 1000000 0 1000000 $talb 1000000 0 1"
stdb=`echo $2 | sed 's/-/_/g'`
stdb=`echo "10 k $stdb $pixdim3 / $origin3 + p" | dc -`
stdroi="$stdroi -roi 0 1000000 0 1000000 $stdb 1000000 0 1"
shift 2
elif [ $1 = -lm ] ; then
lm=$2
......@@ -104,54 +104,54 @@ echo "---------- extract brain --------------------------------------------" >
${FSLDIR}/bin/bet $I ${I}_brain -s $betopts >> ${I}.sienax
echo "" >> ${I}.sienax
echo "---------- register to talairach space using brain and skull --------" >> ${I}.sienax
echo "---------- register to stdairach space using brain and skull --------" >> ${I}.sienax
echo "(do not worry about histogram warnings)" >> ${I}.sienax
${FSLDIR}/bin/pairreg ${FSLDIR}/etc/standard/avg152T1_brain ${I}_brain ${FSLDIR}/etc/standard/avg152T1_skull ${I}_brain_skull ${I}2tal.mat >> ${I}.sienax 2>&1
${FSLDIR}/bin/avscale ${I}2tal.mat ${FSLDIR}/etc/standard/avg152T1 > ${I}2tal.avscale
xscale=`grep Scales ${I}2tal.avscale | awk '{print $4}'`
yscale=`grep Scales ${I}2tal.avscale | awk '{print $5}'`
zscale=`grep Scales ${I}2tal.avscale | awk '{print $6}'`
${FSLDIR}/bin/pairreg ${FSLDIR}/etc/standard/avg152T1_brain ${I}_brain ${FSLDIR}/etc/standard/avg152T1_skull ${I}_brain_skull ${I}2std.mat >> ${I}.sienax 2>&1
${FSLDIR}/bin/avscale ${I}2std.mat ${FSLDIR}/etc/standard/avg152T1 > ${I}2std.avscale
xscale=`grep Scales ${I}2std.avscale | awk '{print $4}'`
yscale=`grep Scales ${I}2std.avscale | awk '{print $5}'`
zscale=`grep Scales ${I}2std.avscale | awk '{print $6}'`
vscale=`echo "10 k $xscale $yscale * $zscale * p"|dc -`
echo "VSCALING $vscale" >> ${I}.sienax
echo "" >> ${I}.sienax
echo "---------- mask with talairach mask ---------------------------------" >> ${I}.sienax
${FSLDIR}/bin/convert_xfm -inverse -omat ${I}2tal_inv.mat ${I}2tal.mat
echo "---------- mask with std mask ---------------------------------------" >> ${I}.sienax
${FSLDIR}/bin/convert_xfm -inverse -omat ${I}2std_inv.mat ${I}2std.mat
MASK=${FSLDIR}/etc/standard/avg152T1_brain_mask_dil
if [ "$talroi" != "" ] ; then
${FSLDIR}/bin/avwmaths $MASK $talroi ${I}_talmaskroi
MASK=${I}_talmaskroi
if [ "$stdroi" != "" ] ; then
${FSLDIR}/bin/avwmaths $MASK $stdroi ${I}_stdmaskroi
MASK=${I}_stdmaskroi
fi
${FSLDIR}/bin/flirt -in $MASK -ref ${I}_brain -out ${I}_talmask -applyxfm -init ${I}2tal_inv.mat
${FSLDIR}/bin/avwmaths ${I}_brain -mask ${I}_talmask ${I}_talmaskbrain
${FSLDIR}/bin/flirt -in $MASK -ref ${I}_brain -out ${I}_stdmask -applyxfm -init ${I}2std_inv.mat
${FSLDIR}/bin/avwmaths ${I}_brain -mask ${I}_stdmask ${I}_stdmaskbrain
if [ $regional = 1 ] ; then
${FSLDIR}/bin/flirt -in ${FSLDIR}/etc/standard/avg152T1_strucseg_periph -ref ${I}_brain -out ${I}_talmask_segperiph -applyxfm -init ${I}2tal_inv.mat
${FSLDIR}/bin/flirt -in ${FSLDIR}/etc/standard/avg152T1_strucseg_periph -ref ${I}_brain -out ${I}_stdmask_segperiph -applyxfm -init ${I}2std_inv.mat
${FSLDIR}/bin/avwmaths ${FSLDIR}/etc/standard/avg152T1_strucseg -thr 4.5 -bin ${I}_tmpmask
${FSLDIR}/bin/flirt -in ${I}_tmpmask -ref ${I}_brain -out ${I}_talmask_segvent -applyxfm -init ${I}2tal_inv.mat
${FSLDIR}/bin/flirt -in ${I}_tmpmask -ref ${I}_brain -out ${I}_stdmask_segvent -applyxfm -init ${I}2std_inv.mat
/bin/rm ${I}_tmpmask*
fi
echo "" >> ${I}.sienax
echo "---------- segment tissue into types --------------------------------" >> ${I}.sienax
if [ $nseg = 2 ] ; then
${FSLDIR}/bin/fast -c 2 $imtype -e -ov $segopts ${I}_talmaskbrain >> ${I}.sienax 2>&1
${FSLDIR}/bin/fast -c 2 $imtype -e -ov $segopts ${I}_stdmaskbrain >> ${I}.sienax 2>&1
echo "" >> ${I}.sienax
echo "---------- convert brain volume into normalised volume --------------" >> ${I}.sienax
S=`${FSLDIR}/bin/avwstats ${I}_talmaskbrain_pve_1 -m -v`
S=`${FSLDIR}/bin/avwstats ${I}_stdmaskbrain_pve_1 -m -v`
xa=`echo $S | awk '{print $1}'`
xb=`echo $S | awk '{print $3}'`
brain=`echo "2 k $xa $xb * $vscale * p" | dc -`
else
if [ _$lm != _ ] ; then
${FSLDIR}/bin/avwmaths_32R $lm -bin -mul -1 -add 1 -mul ${I}_talmaskbrain ${I}_talmaskbrain
${FSLDIR}/bin/avwmaths_32R $lm -bin -mul -1 -add 1 -mul ${I}_stdmaskbrain ${I}_stdmaskbrain
fi
${FSLDIR}/bin/fast $imtype -e -ov $segopts ${I}_talmaskbrain >> ${I}.sienax 2>&1
${FSLDIR}/bin/fast $imtype -e -ov $segopts ${I}_stdmaskbrain >> ${I}.sienax 2>&1
if [ _$lm != _ ] ; then
${FSLDIR}/bin/avwmaths_32R $lm -bin -max ${I}_talmaskbrain_pve_2 ${I}_talmaskbrain_pve_2
${FSLDIR}/bin/avwmaths_32SI $lm -bin -mul 3 -max ${I}_talmaskbrain_seg ${I}_talmaskbrain_seg
${FSLDIR}/bin/avwmaths_32R $lm -bin -max ${I}_stdmaskbrain_pve_2 ${I}_stdmaskbrain_pve_2
${FSLDIR}/bin/avwmaths_32SI $lm -bin -mul 3 -max ${I}_stdmaskbrain_seg ${I}_stdmaskbrain_seg
fi
echo "" >> ${I}.sienax
......@@ -159,29 +159,29 @@ else
echo "" >> ${I}.sienax
echo "tissue volume unnormalised-volume" >> ${I}.sienax
if [ $regional = 1 ] ; then
${FSLDIR}/bin/avwmaths_32R ${I}_talmaskbrain_pve_1 -mas ${I}_talmask_segperiph ${I}_talmaskbrain_pve_1_segperiph
S=`${FSLDIR}/bin/avwstats ${I}_talmaskbrain_pve_1_segperiph -m -v`
${FSLDIR}/bin/avwmaths_32R ${I}_stdmaskbrain_pve_1 -mas ${I}_stdmask_segperiph ${I}_stdmaskbrain_pve_1_segperiph
S=`${FSLDIR}/bin/avwstats ${I}_stdmaskbrain_pve_1_segperiph -m -v`
xa=`echo $S | awk '{print $1}'`
xb=`echo $S | awk '{print $3}'`
uxg=`echo "2 k $xa $xb * 1 / p" | dc -`
xg=`echo "2 k $xa $xb * $vscale * 1 / p" | dc -`
echo "pgrey $xg $uxg (peripheral grey)" >> ${I}.sienax
${FSLDIR}/bin/avwmaths_32R ${I}_talmaskbrain_pve_0 -mas ${I}_talmask_segvent ${I}_talmaskbrain_pve_0_segvent
S=`${FSLDIR}/bin/avwstats ${I}_talmaskbrain_pve_0_segvent -m -v`
${FSLDIR}/bin/avwmaths_32R ${I}_stdmaskbrain_pve_0 -mas ${I}_stdmask_segvent ${I}_stdmaskbrain_pve_0_segvent
S=`${FSLDIR}/bin/avwstats ${I}_stdmaskbrain_pve_0_segvent -m -v`
xa=`echo $S | awk '{print $1}'`
xb=`echo $S | awk '{print $3}'`
uxg=`echo "2 k $xa $xb * 1 / p" | dc -`
xg=`echo "2 k $xa $xb * $vscale * 1 / p" | dc -`
echo "vcsf $xg $uxg (ventricular CSF)" >> ${I}.sienax
fi
S=`${FSLDIR}/bin/avwstats ${I}_talmaskbrain_pve_1 -m -v`
S=`${FSLDIR}/bin/avwstats ${I}_stdmaskbrain_pve_1 -m -v`
xa=`echo $S | awk '{print $1}'`
xb=`echo $S | awk '{print $3}'`
ugrey=`echo "2 k $xa $xb * 1 / p" | dc -`
ngrey=`echo "2 k $xa $xb * $vscale * 1 / p" | dc -`
echo "GREY $ngrey $ugrey" >> ${I}.sienax
S=`${FSLDIR}/bin/avwstats ${I}_talmaskbrain_pve_2 -m -v`
S=`${FSLDIR}/bin/avwstats ${I}_stdmaskbrain_pve_2 -m -v`
xa=`echo $S | awk '{print $1}'`
xb=`echo $S | awk '{print $3}'`
uwhite=`echo "2 k $xa $xb * 1 / p" | dc -`
......@@ -193,16 +193,16 @@ ubrain=`echo "2 k $uwhite $ugrey + 1 / p" | dc -`
nbrain=`echo "2 k $nwhite $ngrey + 1 / p" | dc -`
echo "BRAIN $nbrain $ubrain" >> ${I}.sienax
${FSLDIR}/bin/overlay 1 1 -c ${I} -a ${I}_talmaskbrain_seg 1.9 5 ${I}_render
${FSLDIR}/bin/overlay 1 1 -c ${I} -a ${I}_stdmaskbrain_seg 1.9 5 ${I}_render
if [ $regional = 1 ] ; then
${FSLDIR}/bin/overlay 1 1 -c ${I} -a ${I}_talmaskbrain_pve_1_segperiph 0.3 0.7 ${I}_periph_render
${FSLDIR}/bin/overlay 1 1 -c ${I} -a ${I}_talmaskbrain_pve_0_segvent 0.3 0.7 ${I}_vent_render
${FSLDIR}/bin/overlay 1 1 -c ${I} -a ${I}_stdmaskbrain_pve_1_segperiph 0.3 0.7 ${I}_periph_render
${FSLDIR}/bin/overlay 1 1 -c ${I} -a ${I}_stdmaskbrain_pve_0_segvent 0.3 0.7 ${I}_vent_render
fi
if [ $debug = 0 ] ; then
/bin/rm -f `$FSLDIR/bin/imglob ${I}_brain* ${I}_talmask*`
/bin/rm -f ${I}2tal.avscale ${I}2tal_inv.mat
/bin/rm -f `$FSLDIR/bin/imglob ${I}_brain* ${I}_stdmask*`
/bin/rm -f ${I}2std.avscale ${I}2std_inv.mat
fi
echo "$nbrain"
......
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