Differences between revisions 2 and 42 (spanning 40 versions)
Revision 2 as of 2006-02-18 23:51:31
Size: 3269
Editor: c-24-91-130-103
Comment:
Revision 42 as of 2009-06-14 19:37:58
Size: 10972
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Comparing with cross-sectional studies, a longitudinal design can significantly reduce the confounding effect of inter-individual morphological variability by using each subject as his or her own control. As a result, longitudinal imaging studies are getting increased interest and popularity in various aspects of neuroscience.

The standard FreeSurfer pipeline is designed for the processing of individual data set, and thus not optimal for the processing of longitudinal data. How to take into account the subject-wise and temporal correlation in a longitudinal data series and get more robust and reliable cortical and subcortical morphological measurements is an active research area in NMR center.

Although better approaches are constantly being sought, as the result of an early attempt, a longitudinal processing pipeline has been designed for the processing of longitudinal data and has shown large success.
The basic idea of this longitudinal scheme is to borrow the processing results of an early time point to help the processing of
 a later time point. As easily noticed, the FreeSurfer cortical and subcortical segmentation and parcellation procedure
involves solving many complex nonlinear optimization problems, such as the deformable surface reconstruction, the nonlinear atlas-image registration, and the nonlinear spherical registration. These nonlinear optimization problems are usually solved using iterative methods, and the final results are known to be highly sensitive to the selection of a particular starting point (a.k.a. the initialization). It's our belief that by initializing the processing of a new data set in a longitudinal series using the processed results of an early time point, we can reduce the random variation in the processing procedure and improve the robustness and sensitivity of the overall longitudinal analysis. Such an initialization scheme makes sense also because a longitudinal design is often targeted at detecting small or subtle changes.

     
The longitudinal processing scheme is coded in the script called "recon-all-long", as compared to the standard FreeSurfer pipeline as described in the "recon-all" script. In the following, we list the major differences between the two scripts or the two processing streams. The two scripts will ultimatedly be combined as a single one. In the following, we assume that the longitudinal series have two time-points, tp1 and tp2, and tp1 has already been processed using the standard FreeSurfer recon-all. To process tp2 in the longitudinal way, "recon-all-long" can be used and the command reads like
"recon-all-long -long -tp1 tp1 -subjid tp2 ...". "..." represents standard options as used when processing tp1.


Difference 1: The longitudinal scheme requires aligning the image data of tp2 to tp1. Due to the intra-subject correlation of the two data sets, a linear (volume) registration with a dof of 6 or 9 is enough to get a good alignment between them. The alignment/registration is performed using the FSL FLIRT program, and the registration result (a coordinate transformation matrix) will be used to transfer information from tp1 to tp2 in later steps. As can be seen in the recon-all-long script, the alignment is computed by

    
= Longitudinal analysis (FS 4.4) =

The longitudinal stream of FreeSurfer is currently being overhauled. Please stay tuned ...

This page will describe the new version of the Longitudinal stream available in release v4.4.0, while [[LongitudinalProcessingPreV4.4]] describes the old version (pre FS 4.4).

It is advised not to use the old version due to its bias with respect to the base time point (usually tp1).

----

Compared with cross-sectional studies, a longitudinal design can significantly reduce the confounding effect of intra-individual morphological variability by using each subject as his or her own control. As a result, longitudinal imaging studies are getting increased interest and popularity in various aspects of neuroscience. The default FreeSurfer pipeline is designed for the processing of individual data sets (cross-sectionally), and thus not optimal for the processing of longitudinal data series. It is an active research area at the Martinos Center for Biomedical Imaging, how to obtain robust and more reliable cortical and subcortical morphological measurements by incorporating additional (temporal) information in a longitudinal data series.

The longitudinal scheme is designed to be unbiased wrt. any time point. Instead of initializing it with information from a specific time point, a base/template volume is created and run through FreeSurfer. This template can be seen as an initial guess for the segmentation and surface reconstruction. The FreeSurfer cortical and subcortical segmentation and parcellation procedure involves solving many complex nonlinear optimization problems, such as the deformable surface reconstruction, the nonlinear atlas-image registration, and the nonlinear spherical surface registration. These nonlinear optimization problems are usually solved using iterative methods, and the final results are known to be highly sensitive to the selection of a particular starting point (a.k.a. algorithm initialization). It's our belief that by initializing the processing of a new data set in a longitudinal series using the processed results from the unbiased template, we can reduce the random variation in the processing procedure and improve the robustness and sensitivity of the overall longitudinal analysis. Such an initialization scheme makes sense also because a longitudinal design is often targeted at detecting small or subtle changes. Additionally to the base template new probabilistic methods (temporal fusion) were introduced to further reduce the variability of results across time points. For these algorithms it becomes necessary to process all time points cross-sectionally first.

The longitudinal processing scheme is coded in the recon-all script via the "-long" flag. '''Use the -help flag for help on its options.'''


== Workflow Summary ==

'''1. cross-sectionally process all time points with the default workflow (tpN is one of the timepoints):'''
{{{
recon-all -all -s <tpNid> -i path_to_tpN_dcm
}}}

'''2. create the base template and process it cross sectionally:'''
{{{
  recon-all -base <baseid> -tp <tp1id> -tp <tp2id> ... -all
}}}
can be started once all norm.mgz files are available from the cross sectional processing of the individual timepoint (step 1).

'''3. longitudinally process all timepoints:'''
{{{
  recon-all -long <tpNid> <baseid> -all
}}}
The longitudinal processing scheme is coded in the recon-all script via the "-long" flag. '''Use the -help flag for help on its options.'''
This step produces output subject data containing '''<tpNid>.long.<baseid>''' in the name (to help distinguish from the default stream).

'''4. Compare results from step 3:''' E.g. calculate differences between <tp1id>.long.<baseid> and <tp2id>.long.<baseid>


 

In the following, we list the major differences between the two processing streams. We assume that the longitudinal series has time-points tpN (tp1, tp2, ...). All already been processed cross sectionally using the standard FreeSurfer recon-all (step 1). First we discuss the construction of the base template (step 2) and then the longitudinal processing of tpN (step 3).

== Creation of Base (Step 2) ==

In step 2 the base template is created. This is done by [[mri_robust_template]], which constructs a mean/median T1.mgz volume together with the transforms that align each tp's T1.mgz volume with the template (see also [[mri_robust_register]] which is used by [[mri_robust_template]] to construct the maps). The longitudinal scheme later requires aligning the image data of tpN to base, thus all time points are aligned to an unbiased common space with the command:
{{{
 mri_robust_template --mov <tpsvols> --lta <tpsltas> --template <baseid>/mri/orig/001.mgz
}}}
where <tpsvols> is a list of the time point's T1.mgz files and <tpsltas> a list of the LTA registrations files that take each tp to the base. These maps are stored in <baseid>/mri/transforms/<tpNid>_to_<baseid>.lta. As also the inverse maps are needed. They are constructed by
{{{
mri_concatenate_lta -invert1 <tpNid>_to_<baseid>.lta identity.nofile <baseid>_to_<tpNid>.lta
}}}
Since all data sets come from the same subject, these rigid registrations with 6 dof (translation,rotation) are sufficient to get a good alignment between the (intensity normalized) images (i.e. the T1 and norm). The registrations and its inverse will be used to transfer information between time points mutually and between time points and the template in the longitudinal stream.

After the registrations and the template T1 volume are created, the T1 template is then processed cross-sectionally with the standard FreeSurfer stream. The only difference is that the norm.mgz is not created in the usual way, but again computed as the mean/median of the norm.mgz of all time points (again with mri_robust_template). The corresponding transforms are more accurate than the transforms obtained from the T1 image. It is possible to start the base construction once the norm.mgz of all time points are available from step 1. After the base is fully processed it will be used to initialize many steps in the longitudinal stream (step 3). Also, the [[eTIV]] of the base can be used as a robust measure for head size (instead of using the [[eTIV]] of the individual time points), as eTIV should not change over time.

== Longitudinal Stream (Step 3) ==

In the -long stream we set {{{NoRandomness = 1}}} (always use same seed for RNG). Affects [[mris_smooth]], [[mris_fix_topology]], [[mris_topo_fixer]], [[mris_sphere]], and [[mris_ca_label]])

=== Input (-i) ===

Copy the {{{orig/00?.mgz}}} from the cross sectionals.

=== Motion Corrections (-motioncor) ===

Copy the {{{rawavg.mgz}}} and {{{orig.mgz}}} from the cross sectionals.

=== NU Intensity Correction (-nuintensitycor) ===

Copy the {{{nu.mgz}}} from the cross sectionals.

=== Talairach (-talairach) ===

Copy the {{{talairach.xfm}}} from the cross sectionals.

Note: the {{{talairach.xfm}}} is used for the [[eTIV]] estimation. It might turn out to be better to use the eTIV from the base template instead of the slighly varying eTIV from the cross sectionals (eTIV should not change over time). In that case the {{{talairach.xfm}}} will be copied from the base to each TP in the future.

=== Normalization (-normalization) ===

Copy the {{{T1.mgz}}} from the cross sectionals.

=== Skull Strip (-skullstrip) ===

Use the OR of all brain masks from the cross sectionals to make sure that no brain is clipped.

''(internal note: this can be done in the -base run in the future)''

=== EM (GCA) Registration (-gcareg) ===

The {{{talairach.lta}}} is constructed from the base by concatenation with the map from the current TP to the base.

''(internal note: in the future maybe use the nu.mgz's from all TPS to construct the registration simultaneously (in the -base))''

=== CA Normalize (-canorm) ===

The normalization is initialized with the {{{aseg.mgz}}} of the base mapped to the current TP. Thus all TP's use basically the same control points for the normalization.

''(internal note: in the future maybe find the control points by looking at all nu.mgz's simultaneously (in the -base))''

=== CA Nonlinear Registration (-careg) ===

Uses the {{{talairach.m3z}}} from the base as initialization (after concatenation). Also different flags:
{{{
mri_ca_register -levels 2 -A 1 -l $longbasedir/mri/transforms/talairach.m3z $subjdir/mri/transforms/$longbasetotpN_regfile
}}}

=== CA Nonlinear Registration Inverse (-careginv) ===

No change.

=== Remove Neck (-rmneck) ===

No change.

=== EM Registration (with skull but no neck) (-skull-lta) ===

No change.

=== CA Label (-calabel) ===

Registers this TP to all others. Then creates {{{aseg.fused.mgz}}} by incorporating information of all TPS. Finally uses the fused aseg as initialization to mri_ca_label to construct the final labels.

''(internal notes: 1. Registrations can be done through the base, probably not much less accurate, but faster. 2. In the future maybe labeling all TPS simultaneously?)''

=== Normalization 2 (-normalization2) ===

No change.

=== Mask Brain Final Surface (-maskbfs) ===

No change.

=== WM Segmentation (-segmentation) ===

Transfer WM edits and deletions from base to TP.

=== Cut/Fill (-fill) ===

No change.

=== Tessellate (-tesselate) ===

Skipped.

=== Orig Surface Smoothing 1 (-smooth1) ===

Skipped.

=== Inflation 1 (-inflate1) ===

Skipped.

=== QSphere (-qsphere) ===

Skipped.

=== Automatic Topology Fixer (-fix) ===

Skipped.

=== Final Surfaces (-finalsurfs) ===

Map and use {{{?h.white}}} and {{{?h.pial}}} to initialize white, pial and orig in TP.

=== Surface Volume (-surfvolume) ===

No change.

=== Orig Surface Smoothing 2 (-smooth2) ===

No change.

=== Inflate 2 (-inflate2) ===

No change.

=== ASeg Stats (-segstats) ===

No change.

=== Cortical Ribbon Mask (-cortribbon) ===

No change.

=== Spherical Inflation (-sphere) ===

{{{?h.sphere}}} copied from base.


=== Ipsilateral Surface Registation (Spherical Morph) (-surfreg) ===

Extra flags to [[mris_register]]:
{{{
-nosulc -norot $longbasedir/surf/$hemi.sphere.reg
}}}

=== Jacobian (-jacobian_white) ===

No change.

=== Average Curvature (-avgcurv) ===

No change.

=== Cortical Parcellation (-cortparc) ===

Extra flags with [[mris_ca_label]]:
{{{
-long -R $longbasedir/surf/$hemi.aparc.annot
}}}

=== Parcellation Statistics (-parcstats) ===

No change.

=== Cortical Parcellation 2 (-cortparc) ===

Extra flags with [[mris_ca_label]]:
{{{
-long -R $longbasedir/surf/$hemi.aparc.a2005s.annot
}}}

=== Parcellation Statistics (-parcstats) ===

No change.

=== Add Parcellation to ASeg (-aparc2aseg) ===

No change.

=== Update WMparc(-wmparc) ===

No change.


----
MartinReuter

Longitudinal analysis (FS 4.4)

The longitudinal stream of FreeSurfer is currently being overhauled. Please stay tuned ...

This page will describe the new version of the Longitudinal stream available in release v4.4.0, while LongitudinalProcessingPreV4.4 describes the old version (pre FS 4.4).

It is advised not to use the old version due to its bias with respect to the base time point (usually tp1).


Compared with cross-sectional studies, a longitudinal design can significantly reduce the confounding effect of intra-individual morphological variability by using each subject as his or her own control. As a result, longitudinal imaging studies are getting increased interest and popularity in various aspects of neuroscience. The default FreeSurfer pipeline is designed for the processing of individual data sets (cross-sectionally), and thus not optimal for the processing of longitudinal data series. It is an active research area at the Martinos Center for Biomedical Imaging, how to obtain robust and more reliable cortical and subcortical morphological measurements by incorporating additional (temporal) information in a longitudinal data series.

The longitudinal scheme is designed to be unbiased wrt. any time point. Instead of initializing it with information from a specific time point, a base/template volume is created and run through FreeSurfer. This template can be seen as an initial guess for the segmentation and surface reconstruction. The FreeSurfer cortical and subcortical segmentation and parcellation procedure involves solving many complex nonlinear optimization problems, such as the deformable surface reconstruction, the nonlinear atlas-image registration, and the nonlinear spherical surface registration. These nonlinear optimization problems are usually solved using iterative methods, and the final results are known to be highly sensitive to the selection of a particular starting point (a.k.a. algorithm initialization). It's our belief that by initializing the processing of a new data set in a longitudinal series using the processed results from the unbiased template, we can reduce the random variation in the processing procedure and improve the robustness and sensitivity of the overall longitudinal analysis. Such an initialization scheme makes sense also because a longitudinal design is often targeted at detecting small or subtle changes. Additionally to the base template new probabilistic methods (temporal fusion) were introduced to further reduce the variability of results across time points. For these algorithms it becomes necessary to process all time points cross-sectionally first.

The longitudinal processing scheme is coded in the recon-all script via the "-long" flag. Use the -help flag for help on its options.

1. Workflow Summary

1. cross-sectionally process all time points with the default workflow (tpN is one of the timepoints):

recon-all -all -s <tpNid> -i path_to_tpN_dcm

2. create the base template and process it cross sectionally:

  recon-all -base <baseid> -tp <tp1id> -tp <tp2id> ... -all

can be started once all norm.mgz files are available from the cross sectional processing of the individual timepoint (step 1).

3. longitudinally process all timepoints:

  recon-all -long <tpNid> <baseid> -all

The longitudinal processing scheme is coded in the recon-all script via the "-long" flag. Use the -help flag for help on its options. This step produces output subject data containing <tpNid>.long.<baseid> in the name (to help distinguish from the default stream).

4. Compare results from step 3: E.g. calculate differences between <tp1id>.long.<baseid> and <tp2id>.long.<baseid>

In the following, we list the major differences between the two processing streams. We assume that the longitudinal series has time-points tpN (tp1, tp2, ...). All already been processed cross sectionally using the standard FreeSurfer recon-all (step 1). First we discuss the construction of the base template (step 2) and then the longitudinal processing of tpN (step 3).

2. Creation of Base (Step 2)

In step 2 the base template is created. This is done by mri_robust_template, which constructs a mean/median T1.mgz volume together with the transforms that align each tp's T1.mgz volume with the template (see also mri_robust_register which is used by mri_robust_template to construct the maps). The longitudinal scheme later requires aligning the image data of tpN to base, thus all time points are aligned to an unbiased common space with the command:

 mri_robust_template --mov <tpsvols> --lta <tpsltas> --template <baseid>/mri/orig/001.mgz 

where <tpsvols> is a list of the time point's T1.mgz files and <tpsltas> a list of the LTA registrations files that take each tp to the base. These maps are stored in <baseid>/mri/transforms/<tpNid>_to_<baseid>.lta. As also the inverse maps are needed. They are constructed by

mri_concatenate_lta -invert1 <tpNid>_to_<baseid>.lta identity.nofile <baseid>_to_<tpNid>.lta

Since all data sets come from the same subject, these rigid registrations with 6 dof (translation,rotation) are sufficient to get a good alignment between the (intensity normalized) images (i.e. the T1 and norm). The registrations and its inverse will be used to transfer information between time points mutually and between time points and the template in the longitudinal stream.

After the registrations and the template T1 volume are created, the T1 template is then processed cross-sectionally with the standard FreeSurfer stream. The only difference is that the norm.mgz is not created in the usual way, but again computed as the mean/median of the norm.mgz of all time points (again with mri_robust_template). The corresponding transforms are more accurate than the transforms obtained from the T1 image. It is possible to start the base construction once the norm.mgz of all time points are available from step 1. After the base is fully processed it will be used to initialize many steps in the longitudinal stream (step 3). Also, the eTIV of the base can be used as a robust measure for head size (instead of using the eTIV of the individual time points), as eTIV should not change over time.

3. Longitudinal Stream (Step 3)

In the -long stream we set NoRandomness = 1 (always use same seed for RNG). Affects mris_smooth, mris_fix_topology, mris_topo_fixer, mris_sphere, and mris_ca_label)

3.1. Input (-i)

Copy the orig/00?.mgz from the cross sectionals.

3.2. Motion Corrections (-motioncor)

Copy the rawavg.mgz and orig.mgz from the cross sectionals.

3.3. NU Intensity Correction (-nuintensitycor)

Copy the nu.mgz from the cross sectionals.

3.4. Talairach (-talairach)

Copy the talairach.xfm from the cross sectionals.

Note: the talairach.xfm is used for the eTIV estimation. It might turn out to be better to use the eTIV from the base template instead of the slighly varying eTIV from the cross sectionals (eTIV should not change over time). In that case the talairach.xfm will be copied from the base to each TP in the future.

3.5. Normalization (-normalization)

Copy the T1.mgz from the cross sectionals.

3.6. Skull Strip (-skullstrip)

Use the OR of all brain masks from the cross sectionals to make sure that no brain is clipped.

(internal note: this can be done in the -base run in the future)

3.7. EM (GCA) Registration (-gcareg)

The talairach.lta is constructed from the base by concatenation with the map from the current TP to the base.

(internal note: in the future maybe use the nu.mgz's from all TPS to construct the registration simultaneously (in the -base))

3.8. CA Normalize (-canorm)

The normalization is initialized with the aseg.mgz of the base mapped to the current TP. Thus all TP's use basically the same control points for the normalization.

(internal note: in the future maybe find the control points by looking at all nu.mgz's simultaneously (in the -base))

3.9. CA Nonlinear Registration (-careg)

Uses the talairach.m3z from the base as initialization (after concatenation). Also different flags:

mri_ca_register -levels 2 -A 1 -l $longbasedir/mri/transforms/talairach.m3z  $subjdir/mri/transforms/$longbasetotpN_regfile

3.10. CA Nonlinear Registration Inverse (-careginv)

No change.

3.11. Remove Neck (-rmneck)

No change.

3.12. EM Registration (with skull but no neck) (-skull-lta)

No change.

3.13. CA Label (-calabel)

Registers this TP to all others. Then creates aseg.fused.mgz by incorporating information of all TPS. Finally uses the fused aseg as initialization to mri_ca_label to construct the final labels.

(internal notes: 1. Registrations can be done through the base, probably not much less accurate, but faster. 2. In the future maybe labeling all TPS simultaneously?)

3.14. Normalization 2 (-normalization2)

No change.

3.15. Mask Brain Final Surface (-maskbfs)

No change.

3.16. WM Segmentation (-segmentation)

Transfer WM edits and deletions from base to TP.

3.17. Cut/Fill (-fill)

No change.

3.18. Tessellate (-tesselate)

Skipped.

3.19. Orig Surface Smoothing 1 (-smooth1)

Skipped.

3.20. Inflation 1 (-inflate1)

Skipped.

3.21. QSphere (-qsphere)

Skipped.

3.22. Automatic Topology Fixer (-fix)

Skipped.

3.23. Final Surfaces (-finalsurfs)

Map and use ?h.white and ?h.pial to initialize white, pial and orig in TP.

3.24. Surface Volume (-surfvolume)

No change.

3.25. Orig Surface Smoothing 2 (-smooth2)

No change.

3.26. Inflate 2 (-inflate2)

No change.

3.27. ASeg Stats (-segstats)

No change.

3.28. Cortical Ribbon Mask (-cortribbon)

No change.

3.29. Spherical Inflation (-sphere)

?h.sphere copied from base.

3.30. Ipsilateral Surface Registation (Spherical Morph) (-surfreg)

Extra flags to mris_register:

-nosulc -norot $longbasedir/surf/$hemi.sphere.reg

3.31. Jacobian (-jacobian_white)

No change.

3.32. Average Curvature (-avgcurv)

No change.

3.33. Cortical Parcellation (-cortparc)

Extra flags with mris_ca_label:

-long -R $longbasedir/surf/$hemi.aparc.annot

3.34. Parcellation Statistics (-parcstats)

No change.

3.35. Cortical Parcellation 2 (-cortparc)

Extra flags with mris_ca_label:

-long -R $longbasedir/surf/$hemi.aparc.a2005s.annot

3.36. Parcellation Statistics (-parcstats)

No change.

3.37. Add Parcellation to ASeg (-aparc2aseg)

No change.

3.38. Update WMparc(-wmparc)

No change.


MartinReuter

LongitudinalProcessing (last edited 2021-05-03 07:53:08 by DevaniCordero)