Skip to content

Commit 970da02

Browse files
committed
ENH: Add ITK-LTA conversion test
Also, finally fixes nipy#64.
1 parent 4acfdbc commit 970da02

File tree

4 files changed

+32
-17
lines changed

4 files changed

+32
-17
lines changed

nitransforms/linear.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def __init__(self, matrix=None, reference=None):
6666
raise TypeError('Matrix is not square.')
6767
self._matrix = matrix
6868

69-
if np.any(self._matrix[3, :] != (0, 0, 0, 1)):
69+
if not np.allclose(self._matrix[3, :], (0, 0, 0, 1)):
7070
raise ValueError("Matrix does not represent a valid transform.")
7171

7272
def __eq__(self, other):
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,28 @@
1-
# transform file /home/oesteban/tmp/fmriprep-ds005/fprep-work/fmriprep_wf/single_subject_01_wf/anat_preproc_wf/surface_recon_wf/fsnative2t1w_xfm/T1_robustreg.lta
2-
# created by oesteban on Sat Mar 14 19:28:37 2020
3-
41
type = 1 # LINEAR_RAS_TO_RAS
52
nxforms = 1
63
mean = 129.0000 157.0000 132.0000
74
sigma = 10000.0000
85
1 4 4
9-
9.999999403953552e-01 -1.698292035143822e-04 1.542967074783519e-04 -1.678466796875000e-04
10-
1.698438863968477e-04 9.999999403953552e-01 -9.513227996649221e-05 -1.318359375000000e-02
11-
-1.542805403005332e-04 9.515848068986088e-05 9.999999403953552e-01 -6.271362304687500e-03
12-
0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 9.999999403953552e-01
6+
1.000000000000000e+00 1.698439009487629e-04 -1.542805694043636e-04 1.691182987997308e-04
7+
-1.698292180662975e-04 1.000000000000000e+00 9.515849524177611e-05 1.318416278809309e-02
8+
1.542967220302671e-04 -9.513228724244982e-05 1.000000000000000e+00 6.270134821534157e-03
9+
0.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00 1.000000000000000e+00
1310
src volume info
1411
valid = 1 # volume info valid
15-
filename = /oak/stanford/groups/russpold/data/openfmri/derivatives/ds000005/freesurfer-6.0.1/sub-01/mri/T1.mgz
16-
volume = 256 256 256
17-
voxelsize = 1.000000000000000e+00 1.000000000000000e+00 1.000000000000000e+00
18-
xras = -9.999999403953552e-01 0.000000000000000e+00 0.000000000000000e+00
19-
yras = 0.000000000000000e+00 0.000000000000000e+00 -9.999999403953552e-01
20-
zras = 0.000000000000000e+00 9.999999403953552e-01 0.000000000000000e+00
21-
cras = -9.999847412109375e-01 -5.000015258789062e+00 -1.000038146972656e+00
22-
dst volume info
23-
valid = 1 # volume info valid
2412
filename = /oak/stanford/groups/russpold/data/openfmri/ds000005/sub-01/anat/sub-01_T1w.nii.gz
2513
volume = 160 192 192
2614
voxelsize = 1.000000000000000e+00 1.333333015441895e+00 1.333333015441895e+00
2715
xras = 1.000000000000000e+00 0.000000000000000e+00 0.000000000000000e+00
2816
yras = 0.000000000000000e+00 1.000000000000000e+00 0.000000000000000e+00
2917
zras = 0.000000000000000e+00 0.000000000000000e+00 1.000000000000000e+00
3018
cras = -1.000000000000000e+00 -5.000030517578125e+00 -1.000030517578125e+00
19+
dst volume info
20+
valid = 1 # volume info valid
21+
filename = /oak/stanford/groups/russpold/data/openfmri/derivatives/ds000005/freesurfer-6.0.1/sub-01/mri/T1.mgz
22+
volume = 256 256 256
23+
voxelsize = 1.000000000000000e+00 1.000000000000000e+00 1.000000000000000e+00
24+
xras = -9.999999403953552e-01 0.000000000000000e+00 0.000000000000000e+00
25+
yras = 0.000000000000000e+00 0.000000000000000e+00 -9.999999403953552e-01
26+
zras = 0.000000000000000e+00 9.999999403953552e-01 0.000000000000000e+00
27+
cras = -9.999847412109375e-01 -5.000015258789062e+00 -1.000038146972656e+00
28+
fscale 0.100000
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#Insight Transform File V1.0
2+
#Transform 0
3+
Transform: AffineTransform_double_3_3
4+
Parameters: 1 -0.00016982921806629747 -0.00015429673658218235 0.00016984390094876289 1 9.5132294518407434e-05 0.00015428056940436363 -9.5158495241776109e-05 1 0.00016784669423941523 0.013183594681322575 -0.0062713632360100746
5+
FixedParameters: 0 0 0
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# emacs: -*- mode: python-mode; py-indent-offset: 4; indent-tabs-mode: nil -*-
2+
# vi: set ft=python sts=4 ts=4 sw=4 et:
3+
"""Conversions between formats."""
4+
import numpy as np
5+
import pytest
6+
from .. import linear as _l
7+
8+
def test_conversions(data_path):
9+
lta = _l.load(data_path / "regressions" / "robust_register.lta", fmt="lta")
10+
itk = _l.load(data_path / "regressions" / "robust_register.tfm", fmt="itk")
11+
12+
assert np.allclose(lta.matrix, itk.matrix)

0 commit comments

Comments
 (0)