Differences between revisions 1 and 2
Revision 1 as of 2026-02-10 12:02:08
Size: 4100
Editor: LiamrSennott
Comment:
Revision 2 as of 2026-02-10 14:26:04
Size: 1346
Editor: YujingHuang
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
mri_warp_convert mri_concatenate_lta
Line 7: Line 7:
Converts non-linear deformation warp fields between different file formats. Some formats may require you to pass an image if the geometry information is missing from the transform file. Concatenates two consecutive LTA transformations into one overall transformation, Out = LTA2*LTA1
Line 10: Line 10:
mri_warp_convert <input-type> <output-type> [options] mri_concatenate_lta [options] lta_1 lta_2 lta_final
Line 13: Line 13:
== Required Flagged Arguments ==
=== Exactly one input is required ===
||Flag ||Description ||
||--inm3z <in.m3z> ||input Freesurfer 3D morph in M3Z format ||
||--inmgzwarp <inwarp.mgz> ||input Freesurfer 3D morph in mgz format ||
||--infsl <in.nii.gz> ||input FSL warp (recommend to use with --insrcgeom) ||
||--inspm <y_rinput.nii> ||input SPM warp (use with --insrcgeom), data format is either abs-ras (default) or abs-crs. use --inwarpformat <> to specify the data format. ||
||--inlps, --initk <in.nii.gz> ||input LPS-to-LPS displacement field (e.g. ITK, ANTs) ||
||--inras <in.nii.gz> ||input RAS-to-RAS displacement field (e.g. NiftyReg) ||
||--invox <in.mgz> ||input file with displacements in source-voxel space ||
== Required Arguments ==
||lta_1 || maps some src1 to dst1 ||
||lta_2 || maps dst1(src2) to dst2 ||
||lta_final || the combined LTA maps: src1 to dst2 = LTA2*LTA1 ||
Line 24: Line 18:
== Optional Arguments ==
||'''Flag'''||'''Description''' ||
||-tal file1 file2 || if lta2 is talairach.xfm specify src (file1) and template (file2) for the talairach xfm. ||
||-invert1 || invert lta_1 before applying it ||
||-invert2 || invert lta_2 before applying it ||
||-invertout || invert output lta ||
||-out_type || set final LTA type: 0 VOX2VOX (default), 1 RAS2RAS ||
||-subject subject || set subject in output lta ||
||-rmsdiff radius outputfile || computes RMS diff between transforms using MJ's formula a radius of 70 is suggested. RMS will be saved in outputfile unless outputfile = nofile Eg, mri_concatenate_lta -rmsdiff 70 rms.dat lta1 lta2, note: no output lta ||
Line 25: Line 28:
=== Exactly one output is required ===
||Flag ||Description ||
||--outm3z <out.m3z> ||output Freesurfer 3D morph in M3Z format ||
||--outmgzwarp <outwarp.mgz> ||output Freesurfer 3D morph in mgz format ||
||--outfsl <out.nii.gz> ||output warp in FSL format ||
||--outlps, --outitk <out.nii.gz> ||output LPS-to-LPS displacement field (e.g. ITK, ANTs) ||
||--outras <out.nii.gz> ||output RAS-to-RAS displacement field (e.g. NiftyReg) ||
||--outvox <out.mgz> ||output file with displacements in source-voxel space ||


== Optional Flagged Arguments ==
||Flag ||Description ||
||-g, --insrcgeom <geom.mgz> ||specify volume geometry of the input to the warp space, i.e., srcgeom shares an RAS space with the warp volume. Usually this is identical to the geom of the warp volume itself (if the warp input is in a format that has such info). This also allows the input to the warp to have a different geometry than the warp itself, though this is probably better handled with -lta1. ||
||-d, --downsample ||downsample output M3Z to spacing of 2. ||
||-lta2 LTA (or -lta2-inv) ||create composite morph for warping a source image -> LTA1 -> GCAM -> LTA2 -> atlas/destination image ||
||--inwarpformat <format> ||specify warp data format: abs-crs, disp-crs, abs-ras, or disp-ras (default is abs-crs). (Only --inspm <> uses this option.) ||
||--outwarpformat <format> ||specify warp data format: abs-crs, disp-crs, abs-ras, or disp-ras (default is abs-crs) ||
||--vg-thresh <vgthresh> ||specify threshold for testing diffs in volume geom ||


= Examples =
== Example 1 ==
Convert FSL warp to M3Z (FreeSurfer):
{{{
mri_warp_convert --infsl fsl.nii.gz --outm3z out.m3z --insrcgeom src.nii.gz
}}}

== Example 2 ==
Convert ITK warp (e.g. ANTs) to M3Z (FreeSurfer):
{{{
mri_warp_convert --initk itk.nii.gz --outm3z out.m3z --insrcgeom src.nii.gz
}}}

== Example 3 ==
Convert ANTS antsRegistrationSyN.sh or antsRegistrationSyNQuick.shboutput to M3Z (FreeSurfer):
{{{
antsRegistrationSyNQuick.sh -d 3 -m mov.mgz -f targ.mgz -o reg.
}}}
{{{
ConvertTransformFile 3 ants.reg0GenericAffine.mat ants.reg0GenericAffine.txt --hm --ras
}}}
{{{
lta_convert --src mov.mgz --trg targ.mgz --inniftyreg ants.reg0GenericAffine.txt --outlta ants.reg0GenericAffine.lta
}}}
{{{
mri_warp_convert --lta1-inv ants.reg0GenericAffine.lta --initk ants.reg1Warp.nii.gz --outm3z out.m3z --insrcgeom targ.mgz
}}}
* Note that the insrcgeom is the target, not the mov; this is needed to work with --lta1-inv.

== Example 4 ==
Convert M3Z (FreeSurfer) to ITK warp (e.g. ANTs):
{{{
mri_warp_convert --inm3z in.m3z --outitk out.nii.gz
}}}

== Example 5 ==
Convert M3Z (FreeSurfer) to mgz warp (FreeSurfer) in absolute CRS:
{{{
mri_warp_convert --inm3z in.m3z --outmgzwarp outwarp.mgz --outwarpformat abs-crs
}}}

= See Also =
[[mri_convert]] [[lta_convert]]
You can use 'identity.nofile' as the filename for lta2 e.g.: mri_concatenate_lta -invert1 lta1.lta identity.nofile inv1.lta

Index

Name

mri_concatenate_lta

Description

Concatenates two consecutive LTA transformations into one overall transformation, Out = LTA2*LTA1

Synopsis

mri_concatenate_lta [options] lta_1 lta_2 lta_final

Arguments

Required Arguments

lta_1

maps some src1 to dst1

lta_2

maps dst1(src2) to dst2

lta_final

the combined LTA maps: src1 to dst2 = LTA2*LTA1

Optional Arguments

Flag

Description

-tal file1 file2

if lta2 is talairach.xfm specify src (file1) and template (file2) for the talairach xfm.

-invert1

invert lta_1 before applying it

-invert2

invert lta_2 before applying it

-invertout

invert output lta

-out_type

set final LTA type: 0 VOX2VOX (default), 1 RAS2RAS

-subject subject

set subject in output lta

-rmsdiff radius outputfile

computes RMS diff between transforms using MJ's formula a radius of 70 is suggested. RMS will be saved in outputfile unless outputfile = nofile Eg, mri_concatenate_lta -rmsdiff 70 rms.dat lta1 lta2, note: no output lta

You can use 'identity.nofile' as the filename for lta2 e.g.: mri_concatenate_lta -invert1 lta1.lta identity.nofile inv1.lta

Reporting Bugs

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

mri_concatenate_lta (last edited 2026-02-10 18:38:07 by YujingHuang)