You can use this script (should be in $FSLDIR/src/fdt/facalc) :
bn=<input basename> (e.g. dti)
ob=<output basename>
FA :
${FSLDIR}/bin/fslmaths ${bn}_L1 -add ${bn}_L2 -add ${bn}_L3 -div 3 tmpMD
${FSLDIR}/bin/fslmaths ${bn}_L1 -sqr tmpL1sq
${FSLDIR}/bin/fslmaths ${bn}_L2 -sqr tmpL2sq
${FSLDIR}/bin/fslmaths ${bn}_L3 -sqr tmpL3sq
${FSLDIR}/bin/fslmaths ${bn}_L1 -sub tmpMD -sqr tmpl1subsq
${FSLDIR}/bin/fslmaths ${bn}_L2 -sub tmpMD -sqr tmpl2subsq
${FSLDIR}/bin/fslmaths ${bn}_L3 -sub tmpMD -sqr tmpl3subsq
${FSLDIR}/bin/fslmaths tmpL1sq -add tmpL2sq -add tmpL3sq denom
${FSLDIR}/bin/fslmaths tmpl1subsq -add tmpl2subsq -add tmpl3subsq -mul 1.5 numer
${FSLDIR}/bin/fslmaths numer -div denom -sqrt ${ob}_FA
MO:
${FSLDIR}/bin/fslmaths ${bn}_L1 -sub tmpMD tmpE1
${FSLDIR}/bin/fslmaths ${bn}_L2 -sub tmpMD tmpE2
${FSLDIR}/bin/fslmaths ${bn}_L3 -sub tmpMD tmpE3
${FSLDIR}/bin/fslmaths tmpE3 -mul -2 -add tmpE1 -add tmpE2 tmpN1
${FSLDIR}/bin/fslmaths tmpE1 -mul -2 -add tmpE2 -add tmpE3 tmpN2
${FSLDIR}/bin/fslmaths tmpE2 -mul -2 -add tmpE1 -add tmpE3 tmpN3
${FSLDIR}/bin/fslmaths tmpN1 -mul tmpN2 -mul tmpN3 -mul -1 tmpN
${FSLDIR}/bin/fslmaths tmpE1 -sub tmpE2 -sub tmpE3 -mul tmpE1 tmpD
${FSLDIR}/bin/fslmaths tmpE2 -sub tmpE3 -mul tmpE2 -add tmpD tmpD
${FSLDIR}/bin/fslmaths tmpE3 -mul tmpE3 -add tmpD
${FSLDIR}/bin/fslmaths tmpD -thr 0 -sqrt tmpD
${FSLDIR}/bin/fslmaths tmpD -mul tmpD -mul tmpD -mul 2 tmpD
${FSLDIR}/bin/fslmaths tmpN -div tmpD -max -1 -min 1 ${ob}_MO
${FSLDIR}/bin/imrm tmpMD tmpL1sq tmpL2sq tmpL3sq tmpl1subsq tmpl2subsq tmpl3subsq numer denom tmpE1 tmpE2 tmpE3 tmpD tmpN1 tmpN2 tmpN3
On 15 Mar 2011, at 15:05, Riccardo Navarra wrote:
> Trying to get FA and MO from equation, I used [13] and [14] as in Spherical Invariant Set (Ennis DB, Kindlmann G. Magn Reson Med. 2006 Jan;55(1):136-46. ). Well, ok FA but my MO's wrong. Here is script:
>
> #!/bin/bash
> # 3 * mu1 = l1 + l2 + l3
> fslmaths dti_L1 -add dti_L2 -add dti_L3 tmp
> fslmaths tmp -div 3 mu1
>
> # normaAtilde = sqrt ( (l1-mu1)^2 + (l2-mu1)^2 + (l3-mu1)^2 )
> fslmaths dti_L1 -sub mu1 tmp
> fslmaths tmp -mul tmp tmp1
> fslmaths dti_L2 -sub mu1 tmp
> fslmaths tmp -mul tmp tmp2
> fslmaths dti_L3 -sub mu1 tmp
> fslmaths tmp -mul tmp tmp3
> fslmaths tmp1 -add tmp2 -add tmp3 tmp
> fslmaths tmp -sqrt normAtilde
>
> # normA = sqrt ( l1^2 + l2^2 + l3^2 )
> fslmaths dti_L1 -mul dti_L1 tmp1
> fslmaths dti_L2 -mul dti_L2 tmp2
> fslmaths dti_L3 -mul dti_L3 tmp3
> fslmaths tmp1 -add tmp2 -add tmp3 tmp
> fslmaths tmp -sqrt normA
>
> # FA = sqrt(3/2)* normAtilde/normA [13]
> fslmaths normAtilde -div normA -mul 1.225 dti_FAcalcd
>
> # MODE = l1*l2*l3 / normAtilde
> fslmaths dti_L1 -mul dti_L2 -mul dti_L3 tmp1
> fslmaths normAtilde -mul normAtilde -mul normAtilde tmp2
> fslmaths tmp1 -div tmp2 dti_MOcalcd
>
> imrm tmp*
> exit 0
>
>
> Tnx,
>
> Riccardo
>
--
Saad Jbabdi
University of Oxford, FMRIB Centre
JR Hospital, Headington, OX3 9DU, UK
(+44)1865-222466 (fax 717)
www.fmrib.ox.ac.uk/~saad
|