Differences between revisions 7 and 23 (spanning 16 versions)
Revision 7 as of 2011-03-24 19:36:14
Size: 4049
Editor: LouisVinke
Comment:
Revision 23 as of 2017-03-21 10:59:57
Size: 5252
Comment: updated links to point to 6.0 diffusion page
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
||Return to [[FsTutorial/Diffusion|Diffusion]] || ||Return to [[FsTutorial/DiffusionV6.0|Diffusion]] ||
##||Return to [[FsTutorial/Diffusion_DtiIntegration|Diffusion and DTI Integration]] ||

Be sure to source FreeSurfer before trying to run any of the following scripts.

=== subjects.csh ===
Use this script to set the 'SUBJECTS_DIR' and 'TUTORIAL_DIR' parameters, as well as assigning various subject data sub-sets (normal subjects, lesioned subjects, both groups). The 'TUTORIAL_DATA' represents the file path of where the tutorial data is being stored.

{{{
 #!/bin/tcsh -ef
 #

setenv SUBJECTS_DIR $TUTORIAL_DATA/diffusion_recons
setenv TUTORIAL_DIR $TUTORIAL_DATA/diffusion_tutorial
Line 5: Line 18:
Be sure to source FreeSurfer before trying to run any of the following scripts. set SUBJECTS = (Diff001 Diff002 Diff003 Diff004 Diff005 Diff006 Diff007 Diff008 Diff009 Diff010)
set LESION_SUBJECTS = (LDiff006 LDiff007 LDiff008 LDiff009 LDiff010)
set SUBJECTS_AND_LESION_SUBJECTS = (Diff001 Diff002 Diff003 Diff004 Diff005 LDiff006 LDiff007 LDiff008 LDiff009 LDiff010)
}}}
Line 7: Line 23:
subjects.csh === DiffPreproc.csh ===
{{{
 #!/bin/tcsh –ef
 #
Line 9: Line 28:
DiffPreproc.csh source subjects.csh
Line 11: Line 30:
Output: dwi.nii, dwi.mghdti.bvecs, dwi.mghdti.bvals, dwi-ec.nii, lowb.nii, bvecs.dat, bvals.dat, eigvec[123].nii, eigvals.nii, tensor.nii, dwirvar.nii, ivc.nii, adc.nii, radialdiff.nii, vr.nii, ra.nii, fa.nii.

----
{{{#!/bin/tcsh –ef
source $SUBJECTS_DIR/scripts/subjects.csh
# Run dt_recon on all subjects
Line 19: Line 33:
  set outdir = $SUBJECTS_DIR/$subj/LZDiff <-----!!*****!!   set outdir = $TUTORIAL_DIR/$subj/dtrecon
Line 21: Line 35:
  set dicomfile = $SUBEJCTS_DIR/$subj/orig/*-1.dcm   set dicomfile = $TUTORIAL_DIR/$subj/orig/*-1.dcm
Line 27: Line 41:
----
Line 29: Line 42:
||Return to [[FsTutorial/Diffusion|Diffusion]] || Output: dwi.nii, dwi.mghdti.bvecs, dwi.mghdti.bvals, dwi-ec.nii, lowb.nii, bvecs.dat, bvals.dat, eigvec[123].nii, eigvals.nii, tensor.nii, dwirvar.nii, ivc.nii, adc.nii, radialdiff.nii, vr.nii, ra.nii, fa.nii, fa-tal.nii, register.dat.
||Return to [[FsTutorial/DiffusionV6.0|Diffusion]] ||
Line 32: Line 46:
=== AlignAnat2Diff.csh ===
{{{
 #!/bin/tcsh -ef
 #
Line 33: Line 51:
source subjects.csh
Line 34: Line 53:
AlignAnat2Diff.csh

Outputs: wmparc2diff.mgz, aparc+aseg2diff.mgz

----
{{{#!/bin/tcsh -ef
source $SUBJECTS_DIR/scripts/subjects.csh
# Loop through each subject
Line 44: Line 56:
  set outdir = $SUBJECTS_DIR/$subj/LZDiff <-----!!*****!!   set outdir = $TUTORIAL_DIR/$subj/dtrecon
Line 46: Line 58:
  # For each subject's wmparc and aparc+aseg volumes resample them to diffusion space
Line 49: Line 62:
    set cmd = (mri_vol2vol --mov $outdir/lowb.nii --targ $vol --inv --interp nearest\     set cmd = (mri_vol2vol --mov $outdir/lowb.nii --targ $vol --inv --interp nearest \
Line 57: Line 70:
----
Line 59: Line 71:
||Return to [[FsTutorial/Diffusion|Diffusion]] || Output: wmparc2diff.mgz, aparc+aseg2diff.mgz.
||Return to [[FsTutorial/DiffusionV6.0|Diffusion]] ||
Line 62: Line 75:
=== DiffMasking.csh ===
{{{
 #!/bin/tcsh -ef
 #
Line 63: Line 80:
source subjects.csh
Line 64: Line 82:
DiffMasking.csh

Outputs: fa-masked.mgz, adc-masked.mgz, ivc-masked.mgz

----
{{{#!/bin/tcsh -ef
source $SUBJECTS_DIR/scripts/subjects.csh
# Loop through each subject
Line 74: Line 85:
  set outdir = $SUBJECTS_DIR/$subj/LZDiff <-----!!*****!!   set outdir = $TUTORIAL_DIR/$subj/dtrecon
Line 76: Line 87:
  # Use wmparc2diff.mgz to mask out noise in the fa.nii, adc.nii, and ivc.nii volumes
Line 77: Line 89:
    set cmd = (mri_mask $outdir/$vol.nii $SUBJECTS_DIR/$subj/mri/wmparc2diff.mgz\     set cmd = (mri_mask $outdir/$vol.nii $SUBJECTS_DIR/$subj/mri/wmparc2diff.mgz \
Line 85: Line 97:
----

||Return to [[FsTutorial/Diffusion|Diffusion]] ||
Output: fa-masked.mgz, adc-masked.mgz, ivc-masked.mgz.
||Return to [[FsTutorial/DiffusionV6.0|Diffusion]] ||
Line 90: Line 101:
=== AlignAnatCVSToAvg.csh ===
{{{
 #!/bin/tcsh -ef
 #
Line 91: Line 106:
source subjects.csh
Line 92: Line 108:
AlignAnatCVSToAvg.csh set interp = trilin
set template = $SUBJECTS_DIR/cvs_avg35/mri/norm.mgz
Line 94: Line 111:
Outputs: fa.ANAT+CVS-to-avg35.v2v.mgz, adc.ANAT+CVS-to-avg35.v2v.mgz, ivc.ANAT+CVS-to-avg35.v2v.mgz

----
{{{#!/bin/tcsh -ef
source $SUBJECTS_DIR/scripts/subjects.csh

set interp = trilin
set template = /autofs/cluster/con_001/users/lilla/CVS_atlas/buckner35rerun/avg35rerun/mri/norm.mgz <-----!!*****!!
# Loop through each subject
Line 105: Line 114:
  set outdir = $SUBJECTS_DIR/$subj/LZDiff <-----!!*****!!
  set morph = $SUBJECTS_DIR/$subj/cvs/fullCVSmorph-to-avg35template.m3z <-----!!*****!!
  set outdir = $TUTORIAL_DIR/$subj/dtrecon
  set morph = $SUBJECTS_DIR/$subj/cvs/fullCVSmorph-to-avg35template.m3z
Line 108: Line 117:
# Resample the fa-masked.mgz, adc-masked.mgz, and ivc-masked.mgz to common CVS space
Line 109: Line 119:
    set vol = $outdir/${vol}-masked.mgz  # any volume in diffusion space (i.e. fa.nii or adc.nii)     set vol = $outdir/${vol}-masked.mgz
Line 111: Line 121:
    set outvol = ${vol:r}.ANAT+CVS-to-avg35.v2v.mgz     set outvol = ${vol:r}.ANAT+CVS-to-avg35.mgz
Line 113: Line 123:
    set cmd = ( mri_vol2vol --targ $template --m3z $morph --noDefM3zPath --reg $outdir/register.dat --mov $vol\
  --o $outvol --interp $interp --no-save-reg )
    set cmd = (mri_vol2vol --targ $template --m3z $morph --noDefM3zPath \
               
--reg $outdir/register.dat --mov $vol \
               --o $outvol --interp $interp --no-save-reg)
Line 121: Line 132:
----

||Return to [[FsTutorial/Diffusion|Diffusion]] ||
Output: fa-masked.ANAT+CVS-to-avg35.v2v.mgz, adc-masked.ANAT+CVS-to-avg35.v2v.mgz, ivc-masked.ANAT+CVS-to-avg35.v2v.mgz.
||Return to [[FsTutorial/DiffusionV6.0|Diffusion]] ||
Line 126: Line 136:
=== GroupAnalysis.csh ===
{{{
 #!/bin/tcsh -ef
Line 127: Line 140:
source subjects.csh
Line 128: Line 142:
GroupAnalysis.csh set outdir = $TUTORIAL_DIR/GLM
mkdir -p $outdir
Line 130: Line 145:
Outputs: gender_age.fa-masked.CVS-to-avg35.glmdir, dof.dat, mri_glmfit.log, y.fsgd, X.mat, contrast/Xg.dat, contrast/rstd.mgz, contrast/rvar.mgz, contrast/beta.mgz, contrast/fwhm.dat, contrast/sar1.mgz, contrast/mask.mgz # Assemble input for group analysis
set type = CVS-to-avg35 # alternatively could be 'TAL' or 'MNI'
set prefix = fa-masked # alternatively could be adc-masked or ivc-masked
set inputfiles = ()
Line 132: Line 150:
----
{{{
set outdir = $SUBJECTS_DIR/diffusion_tutorial/GLM
set type = CVS-to-avg35 # alternatively could be TAL-to-avg35 or MNI-to-avg35
set prefix = fa-masked #alternatively could be adc-masked or ivc-masked
set inputfiles = ($outdir/../*/LZDiff/${prefix}.ANAT+${type}.v2v.mgz) <-----!!*****!!
foreach subj ($SUBJECTS)
  set inputfiles=($inputfiles $TUTORIAL_DIR/$subj/dtrecon/${prefix}.ANAT+${type}.mgz)
end
Line 139: Line 154:
set cmd = (mri_concat --i $inputfiles --o $outdir/GroupAnalysis.{$prefix}.${type}.Input.mgz) set cmd = (mri_concat --i $inputfiles --o $outdir/GroupAnalysis.${prefix}.${type}.Input.mgz)
Line 143: Line 158:
# Create average of the input images for visualization
Line 147: Line 163:
set cmd = ( mri_glmfit --y $outdir/GroupAnalysis.{$prefix}.${type}.Input.mgz --fsgd group_analysis.fsgd\
            dods --C contrast.mtx --glmdir $outdir/gender_age.{$prefix}.${type}.glmdir --mgz)
set cmd = (mri_glmfit --y $outdir/GroupAnalysis.{$prefix}.${type}.Input.mgz \
          --fsgd group_analysis.fsgd dods --C contrast.mtx \
         
--glmdir $outdir/gender_age.{$prefix}.${type}.glmdir --mgz)
Line 152: Line 169:
---- Output: gender_age.fa-masked.CVS-to-avg35.glmdir, dof.dat, mri_glmfit.log, y.fsgd, X.mat, contrast/Xg.dat, contrast/rstd.mgz, contrast/rvar.mgz, contrast/beta.mgz, contrast/fwhm.dat, contrast/sar1.mgz, contrast/mask.mgz.
||Return to [[FsTutorial/DiffusionV6.0|Diffusion]] ||

Return to Diffusion

Be sure to source FreeSurfer before trying to run any of the following scripts.

subjects.csh

Use this script to set the 'SUBJECTS_DIR' and 'TUTORIAL_DIR' parameters, as well as assigning various subject data sub-sets (normal subjects, lesioned subjects, both groups). The 'TUTORIAL_DATA' represents the file path of where the tutorial data is being stored.

 #!/bin/tcsh -ef
 #

setenv  SUBJECTS_DIR $TUTORIAL_DATA/diffusion_recons
setenv TUTORIAL_DIR  $TUTORIAL_DATA/diffusion_tutorial


set SUBJECTS = (Diff001 Diff002 Diff003 Diff004 Diff005 Diff006 Diff007 Diff008 Diff009 Diff010)
set LESION_SUBJECTS = (LDiff006 LDiff007 LDiff008 LDiff009 LDiff010)
set SUBJECTS_AND_LESION_SUBJECTS = (Diff001 Diff002 Diff003 Diff004 Diff005 LDiff006 LDiff007 LDiff008 LDiff009 LDiff010)

DiffPreproc.csh

 #!/bin/tcsh –ef
 #

source subjects.csh

# Run dt_recon on all subjects
foreach subj ($SUBJECTS)
  echo $subj
  set outdir = $TUTORIAL_DIR/$subj/dtrecon
  mkdir -p $outdir
  set dicomfile = $TUTORIAL_DIR/$subj/orig/*-1.dcm
  set cmd = (dt_recon --i $dicomfile --s $subj --o $outdir)
  echo $cmd
  eval $cmd
end

Output: dwi.nii, dwi.mghdti.bvecs, dwi.mghdti.bvals, dwi-ec.nii, lowb.nii, bvecs.dat, bvals.dat, eigvec[123].nii, eigvals.nii, tensor.nii, dwirvar.nii, ivc.nii, adc.nii, radialdiff.nii, vr.nii, ra.nii, fa.nii, fa-tal.nii, register.dat.

Return to Diffusion

AlignAnat2Diff.csh

 #!/bin/tcsh -ef
 #

source subjects.csh

# Loop through each subject
foreach subj ($SUBJECTS)
  echo $subj
  set outdir = $TUTORIAL_DIR/$subj/dtrecon

  # For each subject's wmparc and aparc+aseg volumes resample them to diffusion space
  foreach vol (wmparc aparc+aseg)
    set vol = $SUBJECTS_DIR/$subj/mri/$vol.mgz
    set vol2diff = ${vol:r}2diff.mgz
    set cmd = (mri_vol2vol --mov $outdir/lowb.nii --targ $vol --inv --interp nearest \
               --o $vol2diff --reg $outdir/register.dat --no-save-reg)
    echo $cmd
    eval $cmd
  end

end

Output: wmparc2diff.mgz, aparc+aseg2diff.mgz.

Return to Diffusion

DiffMasking.csh

 #!/bin/tcsh -ef
 #

source subjects.csh

# Loop through each subject
foreach subj ($SUBJECTS)
  echo $subj
  set outdir = $TUTORIAL_DIR/$subj/dtrecon

  # Use wmparc2diff.mgz to mask out noise in the fa.nii, adc.nii, and ivc.nii volumes
  foreach vol (fa adc ivc)
    set cmd = (mri_mask $outdir/$vol.nii $SUBJECTS_DIR/$subj/mri/wmparc2diff.mgz \
               $outdir/${vol}-masked.mgz)
    echo $cmd
    eval $cmd
  end

end

Output: fa-masked.mgz, adc-masked.mgz, ivc-masked.mgz.

Return to Diffusion

AlignAnatCVSToAvg.csh

 #!/bin/tcsh -ef
 #

source subjects.csh

set interp = trilin  
set template = $SUBJECTS_DIR/cvs_avg35/mri/norm.mgz

# Loop through each subject
foreach subj ($SUBJECTS)
  echo $subj
  set outdir = $TUTORIAL_DIR/$subj/dtrecon
  set morph = $SUBJECTS_DIR/$subj/cvs/fullCVSmorph-to-avg35template.m3z

# Resample the fa-masked.mgz, adc-masked.mgz, and ivc-masked.mgz to common CVS space
  foreach vol (fa adc ivc)
    set vol = $outdir/${vol}-masked.mgz
    echo $vol
    set outvol = ${vol:r}.ANAT+CVS-to-avg35.mgz
    echo $outvol
    set cmd = (mri_vol2vol --targ $template --m3z $morph --noDefM3zPath \
               --reg $outdir/register.dat --mov $vol \
               --o $outvol --interp $interp --no-save-reg)
    echo $cmd
    eval $cmd
  end

end

Output: fa-masked.ANAT+CVS-to-avg35.v2v.mgz, adc-masked.ANAT+CVS-to-avg35.v2v.mgz, ivc-masked.ANAT+CVS-to-avg35.v2v.mgz.

Return to Diffusion

GroupAnalysis.csh

 #!/bin/tcsh -ef

source subjects.csh

set outdir = $TUTORIAL_DIR/GLM
mkdir -p $outdir

# Assemble input for group analysis
set type = CVS-to-avg35    # alternatively could be 'TAL' or 'MNI'
set prefix = fa-masked     # alternatively could be adc-masked or ivc-masked
set inputfiles = ()

foreach subj ($SUBJECTS)
  set inputfiles=($inputfiles $TUTORIAL_DIR/$subj/dtrecon/${prefix}.ANAT+${type}.mgz)
end

set cmd = (mri_concat --i $inputfiles --o $outdir/GroupAnalysis.${prefix}.${type}.Input.mgz)
echo $cmd
eval $cmd

# Create average of the input images for visualization
set cmd = (mri_average $inputfiles $outdir/Average.{$prefix}.${type}.Input.mgz)
echo $cmd
eval $cmd

set cmd = (mri_glmfit --y $outdir/GroupAnalysis.{$prefix}.${type}.Input.mgz \
          --fsgd group_analysis.fsgd dods --C contrast.mtx \
          --glmdir $outdir/gender_age.{$prefix}.${type}.glmdir --mgz)
echo $cmd
eval $cmd

Output: gender_age.fa-masked.CVS-to-avg35.glmdir, dof.dat, mri_glmfit.log, y.fsgd, X.mat, contrast/Xg.dat, contrast/rstd.mgz, contrast/rvar.mgz, contrast/beta.mgz, contrast/fwhm.dat, contrast/sar1.mgz, contrast/mask.mgz.

Return to Diffusion

FsTutorial/Diffusion/DTIscripts (last edited 2017-03-21 10:59:57 by AllisonMoreau)