Differences between revisions 9 and 10
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:

'''Index'''
<<TableOfContents>>
'''Index''' <<TableOfContents>>
Line 17: Line 14:
mri_cvs_register--mov arg1 --template arg2 mri_cvs_register --mov arg1 --template arg2
Line 21: Line 18:
||--mov subjid|| subjid for subject to be moved / registered||Subject id of the subject (as found in SUBJECTS_DIR) whose scan is to be moved in registration with that of the template. ||
||--template subjid||subjid for subject to be kept fixed (template)|| Subject id of the subject (as found in SUBJECTS_DIR) whose scan is to be used and the template / target for the registration.||
||--mov subjid ||subjid for subject to be moved / registered ||Subject id of the subject (as found in SUBJECTS_DIR) whose scan is to be moved in registration with that of the template. ||
||--template subjid ||subjid for subject to be kept fixed (template) ||Subject id of the subject (as found in SUBJECTS_DIR) whose scan is to be used and the template / target for the registration. ||
Line 25: Line 23:
||  --outdir directory || output directory where all the results are written || Output directory where the resulting morphs should be written. NOTE, the morphs require quite a lot of space so make sure that there is enough disk space available before your analysis. The default location for the output is: $SUBJECTS_DIR/$subjid/cvs  ||
|| --noaseg ||
do not use aseg volumes in the registration pipeline (default is 0) || ||
||  --nocleanup || do not delete temporary files (default is 0) || ||
||  --nolog || do not produce a log file (default is 0) || ||
||  --step1      || only do step 1 (spherical registration) || ||
||  --step2      || only do step 2 (elastic registration) || ||
||  --step3      || only do step 3 (volumetric registration) || ||
||  --version    || print version and exit || ||
||  --help || print (most up-to-date) help and exit || ||
 
||--outdir directory ||output directory where all the results are written ||Output directory where the resulting morphs should be written. NOTE, the morphs require quite a lot of space so make sure that there is enough disk space available before your analysis. The default location for the output is: $SUBJECTS_DIR/$subjid/cvs ||
||--noaseg ||
do not use aseg volumes in the registration pipeline (default is 0) || ||
||--nocleanup ||do not delete temporary files (default is 0) || ||
||--nolog ||do not produce a log file (default is 0) || ||
||--step1 ||only do step 1 (spherical registration) || ||
||--step2 ||only do step 2 (elastic registration) || ||
||--step3 ||only do step 3 (volumetric registration) || ||
||--version ||print version and exit || ||
||--help ||print (most up-to-date) help and exit || ||

Line 43: Line 42:
(a) Full CVS (with both (i) and (ii))
nlalign-afteraseg-norm.m3z : the morph resulting from (ii) of step (3) (intensity-based non-linear registration); it is NOT combined with the elastic registration morph
nlalign-afteraseg-norm.mgz : the morphed norm.mgz file; it is the final result of CVS and contains contributions from ALL registration steps (combination of the elatic morph and the two m3z files)
(a) Full CVS (with both (i) and (ii)) nlalign-afteraseg-norm.m3z : the morph resulting from (ii) of step (3) (intensity-based non-linear registration); it is NOT combined with the elastic registration morph nlalign-afteraseg-norm.mgz : the morphed norm.mgz file; it is the final result of CVS and contains contributions from ALL registration steps (combination of the elatic morph and the two m3z files)
Line 47: Line 44:
nlalign-aseg.m3z : the morph resulting from (i) of step (3) (aseg-based non-linear registration); it is NOT combined with the elastic registration morph
nlalign-aseg.mgz : the morphed aseg.mgz file; it is the result of CVS up to (i) of step (3) and contains contributions from registration steps of the elatic morph and the above m3z file
nlalign-aseg.m3z : the morph resulting from (i) of step (3) (aseg-based non-linear registration); it is NOT combined with the elastic registration morph nlalign-aseg.mgz : the morphed aseg.mgz file; it is the result of CVS up to (i) of step (3) and contains contributions from registration steps of the elatic morph and the above m3z file
Line 50: Line 46:
el_reg_toTEMPLATE_aseg.mgz : the elastic morph applied to aseg.mgz
el_reg_toTEMPLATE.tm3d : the elastic morph that combines correspondences recovered in steps (1) and (2)
el_reg_toTEMPLATE.mgz : the elastic morph applied to norm.mgz
el_reg_toTEMPLATE_aseg.mgz : the elastic morph applied to aseg.mgz el_reg_toTEMPLATE.tm3d : the elastic morph that combines correspondences recovered in steps (1) and (2) el_reg_toTEMPLATE.mgz : the elastic morph applied to norm.mgz
Line 56: Line 50:
nlalign-norm.m3z : the morph resulting from step(3) (intensity-based non-linear registration); it is NOT combined with the elastic registration morph
nlalign-norm.mgz : the morphed norm.mgz file; it is the final result of CVS and contains contributions from ALL registration steps (combination of the elatic morph and the above m3z file)
nlalign-norm.m3z : the morph resulting from step(3) (intensity-based non-linear registration); it is NOT combined with the elastic registration morph nlalign-norm.mgz : the morphed norm.mgz file; it is the final result of CVS and contains contributions from ALL registration steps (combination of the elatic morph and the above m3z file)
Line 59: Line 52:
el_reg_toTEMPLATE.tm3d : the elastic morph that combines correspondences recovered in steps (1) and (2)
el_reg_toTEMPLATE.mgz : the elastic morph applied to norm.mgz
el_reg_toTEMPLATE.tm3d : the elastic morph that combines correspondences recovered in steps (1) and (2) el_reg_toTEMPLATE.mgz : the elastic morph applied to norm.mgz
Line 64: Line 56:
(a)
el_reg_toTEMPLATE.tm3d : the elastic morph that combines correspondences recovered in steps (1) and (2)
combined_elreg_aseg.tm3d : the morph that combines correspondences recovered in steps (1), (2) and (3) (i)
combined_elreg_afteraseg-norm.tm3d : the morph that combines correspondences recovered in steps (1), (2), (3) (i) and (3) (ii)
(b)
el_reg_toTEMPLATE.tm3d : the elastic morph that combines correspondences recovered in steps (1) and (2)
combined_elreg_norm.tm3d : the morph that combines correspondences recovered in steps (1), (2) and (3) (ii)
(a) el_reg_toTEMPLATE.tm3d : the elastic morph that combines correspondences recovered in steps (1) and (2) combined_elreg_aseg.tm3d : the morph that combines correspondences recovered in steps (1), (2) and (3) (i) combined_elreg_afteraseg-norm.tm3d : the morph that combines correspondences recovered in steps (1), (2), (3) (i) and (3) (ii) (b) el_reg_toTEMPLATE.tm3d : the elastic morph that combines correspondences recovered in steps (1) and (2) combined_elreg_norm.tm3d : the morph that combines correspondences recovered in steps (1), (2) and (3) (ii)
Line 74: Line 60:
If you want to reconstruct the resulting warp (as it was deleted to save space after the processing) and apply it to a new volume,
you would need to call two functions. If the warp combined*tm3d does not exist run both (1) an d(2) , if it already exists, just run (2).
If you want to reconstruct the resulting warp (as it was deleted to save space after the processing) and apply it to a new volume, you would need to call two functions. If the warp combined*tm3d does not exist run both (1) an d(2) , if it already exists, just run (2).
Line 77: Line 62:
(1)
createMorph --out fullCVSmorph.tm3d --template template.mgz \
             --subject movingvol.mgz --in gcam nlalign-afteraseg-norm.m3z \
             morph el_reg_toTEMPLATE.tm3d
(1) createMorph --out fullCVSmorph.tm3d --template template.mgz \
Line 82: Line 64:
(2)
applyMorph --template template.mgz --transform fullCVSmorph.tm3d \
vol movingvol.mgz outputvol.mgz linear
 . --subject movingvol.mgz --in gcam nlalign-afteraseg-norm.m3z \ morph el_reg_toTEMPLATE.tm3d

(2) applyMorph --template template.mgz --transform fullCVSmorph.tm3d \ vol movingvol.mgz outputvol.mgz linear
Line 88: Line 70:
Note, the longest processing step in the CVS pipeline at the moment is the volumetric registration which might
take about 15 hrs. The rest takes about 2 hours.
Note, the longest processing step in the CVS pipeline at the moment is the volumetric registration which might take about 15 hrs. The rest takes about 2 hours.
Line 93: Line 74:
You will not be able to use fsaverage as a template as it does not have a
corresponding surface and volumetric atlas. We are in the process of
building and releasing a CVS atlas, but it is not ready yet, so for now
the best thing to do would be to register all your subjects to a randomly
selected one.
You will not be able to use fsaverage as a template as it does not have a corresponding surface and volumetric atlas. We are in the process of building and releasing a CVS atlas, but it is not ready yet, so for now the best thing to do would be to register all your subjects to a randomly selected one.
Line 114: Line 91:
Report bugs to <analysis-bugs@nmr.mgh.harvard.edu> Report bugs to < analysis-bugs@nmr.mgh.harvard.edu >

Index

Name

mri_cvs_register - registers MRI scans of two subjects (or a subject and the CVS atlas) using the combined volume and surface-based registration method, CVS. Make sure that SUBJECTS_DIR is properly set before calling this script!

Synopsis

mri_cvs_register --mov arg1 --template arg2

Arguments

Required Flagged Arguments

--mov subjid

subjid for subject to be moved / registered

Subject id of the subject (as found in SUBJECTS_DIR) whose scan is to be moved in registration with that of the template.

--template subjid

subjid for subject to be kept fixed (template)

Subject id of the subject (as found in SUBJECTS_DIR) whose scan is to be used and the template / target for the registration.

Optional Flagged Arguments

--outdir directory

output directory where all the results are written

Output directory where the resulting morphs should be written. NOTE, the morphs require quite a lot of space so make sure that there is enough disk space available before your analysis. The default location for the output is: $SUBJECTS_DIR/$subjid/cvs

--noaseg

do not use aseg volumes in the registration pipeline (default is 0)

--nocleanup

do not delete temporary files (default is 0)

--nolog

do not produce a log file (default is 0)

--step1

only do step 1 (spherical registration)

--step2

only do step 2 (elastic registration)

--step3

only do step 3 (volumetric registration)

--version

print version and exit

--help

print (most up-to-date) help and exit

Outputs

See below.

Description

The CVS registration stream consists of 3 steps: (1) surface-based registration, (2) elastic registration and (3) volumetric regsitration. By default, in the current implementation of the script, step (3) consists of two steps: (i) registration using aseg volumes and (ii) registration using intensity volumes. This combination of the non-linear volumetric registrations proved to be very robust and accurate, butthe (i) step could be eliminated if quicker execution time is required by using the "--noaseg" flag.

Relevant files that you should have in your directory (most recent on the top and the oldest in the bottom):

(a) Full CVS (with both (i) and (ii)) nlalign-afteraseg-norm.m3z : the morph resulting from (ii) of step (3) (intensity-based non-linear registration); it is NOT combined with the elastic registration morph nlalign-afteraseg-norm.mgz : the morphed norm.mgz file; it is the final result of CVS and contains contributions from ALL registration steps (combination of the elatic morph and the two m3z files)

nlalign-aseg.m3z : the morph resulting from (i) of step (3) (aseg-based non-linear registration); it is NOT combined with the elastic registration morph nlalign-aseg.mgz : the morphed aseg.mgz file; it is the result of CVS up to (i) of step (3) and contains contributions from registration steps of the elatic morph and the above m3z file

el_reg_toTEMPLATE_aseg.mgz : the elastic morph applied to aseg.mgz el_reg_toTEMPLATE.tm3d : the elastic morph that combines correspondences recovered in steps (1) and (2) el_reg_toTEMPLATE.mgz : the elastic morph applied to norm.mgz

(b) shorter version of CVS (using only (ii) in step (3) of the algorithm):

nlalign-norm.m3z : the morph resulting from step(3) (intensity-based non-linear registration); it is NOT combined with the elastic registration morph nlalign-norm.mgz : the morphed norm.mgz file; it is the final result of CVS and contains contributions from ALL registration steps (combination of the elatic morph and the above m3z file)

el_reg_toTEMPLATE.tm3d : the elastic morph that combines correspondences recovered in steps (1) and (2) el_reg_toTEMPLATE.mgz : the elastic morph applied to norm.mgz

If you ran the mri_cvs_registration script with the "--nocleanup" option then you will see two more files called combined*tm3d. These files take up a lot of memory so by default are deleted. They can be recreated in case the cvs morph needs to be applied to another volume at a later time. The morphs left behind when using the "--nocleanup" option are:

(a) el_reg_toTEMPLATE.tm3d : the elastic morph that combines correspondences recovered in steps (1) and (2) combined_elreg_aseg.tm3d : the morph that combines correspondences recovered in steps (1), (2) and (3) (i) combined_elreg_afteraseg-norm.tm3d : the morph that combines correspondences recovered in steps (1), (2), (3) (i) and (3) (ii) (b) el_reg_toTEMPLATE.tm3d : the elastic morph that combines correspondences recovered in steps (1) and (2) combined_elreg_norm.tm3d : the morph that combines correspondences recovered in steps (1), (2) and (3) (ii)

***********

If you want to reconstruct the resulting warp (as it was deleted to save space after the processing) and apply it to a new volume, you would need to call two functions. If the warp combined*tm3d does not exist run both (1) an d(2) , if it already exists, just run (2).

(1) createMorph --out fullCVSmorph.tm3d --template template.mgz \

  • --subject movingvol.mgz --in gcam nlalign-afteraseg-norm.m3z \ morph el_reg_toTEMPLATE.tm3d

(2) applyMorph --template template.mgz --transform fullCVSmorph.tm3d \ vol movingvol.mgz outputvol.mgz linear

************

Note, the longest processing step in the CVS pipeline at the moment is the volumetric registration which might take about 15 hrs. The rest takes about 2 hours.

************

You will not be able to use fsaverage as a template as it does not have a corresponding surface and volumetric atlas. We are in the process of building and releasing a CVS atlas, but it is not ready yet, so for now the best thing to do would be to register all your subjects to a randomly selected one.

Bugs

None

See Also

mris_register, mri_nl_align, mris_resample, mri_cvs_check, mri_cvs_data_copy

Links

FreeSurfer

References

G.M. Postelnicu*, L. Zöllei*, B. Fischl: "Combined Volumetric and Surface Registration", IEEE Transactions on Medical Imaging (TMI), Vol 28 (4), April 2009, p. 508-522

L. Zöllei, A. Stevens, K. Huber, S. Kakunoori, B. Fischl: "Improved Tractography Alignment Using Combined Volumetric and Surface Registration", NeuroImage 51 (2010), 206-213

Reporting Bugs

Report bugs to < analysis-bugs@nmr.mgh.harvard.edu >

Author/s

LillaZollei

mri_cvs_register (last edited 2018-02-05 12:34:44 by MorganFogarty)