extending_nifti > Proposed (minor) update for NIFTI sform values
Feb 28, 2019  07:02 PM | paul taylor
Proposed (minor) update for NIFTI sform values
Hello-

We have recently been coming across some issues with the NIFTI sform encoding -- namely, what to do with standard spaces that are neither Talairach nor MNI?

The problem involves the practical ambiguity of the "sform=2" code (see the current "Defined codes" below): sform=2 is used both for data sets that are not in a standard space ("coordinates aligned to another file's") and for data sets that are in some standard space (when that standard space is neither MNI nor Talairach "coordinates aligned ... to anatomical 'truth'"). Therefore, when we come across an sform=2, we are at a loss for knowing whether it is in an original/native space or a standard/template one. 

At present, the only sform codes to denote data in a template space assume that it is either Talairach (sform=3) or MNI (sform=4).

Given the proliferation of coordinate spaces that are neither Talairach nor MNI (e.g., pediatric and infant templates; templates of local populations/ethnic backgrounds; several macaque templates and other non-humans; etc.), it seems worthwhile to resolve this ambiguity.
We have a fairly straightforward proposal that would not break existing sform meanings, but which would allow for non-ambiguity moving forward. Specifically, we suggest introducing the definition that sform=5 be used for "coordinates in any template coordinate space" (non-MNI and non-Talairach standard spaces):

#define NIFTI_XFORM_GEN_STANDARD 5
Normalized coordinates (for any general standard template space).

As part of this, we would recommend that, moving forward, people not use sform=2 for standardized/normalized space dsets.

While this shouldn't break any meanings of existing NIFTI files, as far as we know, we think it is likely that it will be necessary to update the Nibabel software to deal with this. At present, it looks like sform values there are "assert"ed, so that if sform=5 were to appear in a dset, it would break the Python reader. We certainly don't like breaking people's codes, but we hope that this could be easily fixed.

The current "Defined codes" at the bottom, from here:
https://nifti.nimh.nih.gov/nifti-1/docum...
-------------------------------------------------------------
#define NIFTI_XFORM_UNKNOWN 0
Arbitrary coordinates (Method 1).

#define NIFTI_XFORM_SCANNER_ANAT 1
Scanner-based anatomical coordinates

#define NIFTI_XFORM_ALIGNED_ANAT 2
Coordinates aligned to another file's, or to anatomical "truth".

#define NIFTI_XFORM_TALAIRACH 3
Coordinates aligned to Talairach-Tournoux Atlas; (0,0,0)=AC, etc.

#define NIFTI_XFORM_MNI_152 4
MNI 152 normalized coordinates.
--------------------------------------------------------------

Threaded View

TitleAuthorDate
Proposed (minor) update for NIFTI sform values
paul taylor Feb 28, 2019
Christopher Markiewicz Apr 2, 2019
Guillaume Flandin Mar 18, 2019
paul taylor Mar 18, 2019
Mark Jenkinson Mar 16, 2019
paul taylor Mar 16, 2019
Christopher Markiewicz Mar 8, 2019
Richard Reynolds Mar 8, 2019
doug greve Mar 1, 2019
Richard Reynolds Feb 28, 2019
Christopher Markiewicz Feb 28, 2019
Satrajit Ghosh Feb 28, 2019
paul taylor Feb 28, 2019