Skip to content

Commit 4b8bed7

Browse files
committed
Editing niftyfit to remove duplicate code from base.py and edit the test/interfaces
1 parent 5b30e21 commit 4b8bed7

File tree

8 files changed

+39
-50
lines changed

8 files changed

+39
-50
lines changed

nipype/interfaces/niftyfit/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,5 @@
99
"""
1010

1111
from .asl import FitAsl
12-
from .base import no_niftyfit, get_custom_path
1312
from .dwi import FitDwi, DwiTool
1413
from .qt1 import FitQt1

nipype/interfaces/niftyfit/asl.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
"""
1313

1414
from ..base import TraitedSpec, traits, CommandLineInputSpec
15-
from .base import NiftyFitCommand, get_custom_path
15+
from .base import NiftyFitCommand
16+
from ..niftyreg.base import get_custom_path
1617

1718

1819
class FitAslInputSpec(CommandLineInputSpec):
@@ -31,14 +32,14 @@ class FitAslInputSpec(CommandLineInputSpec):
3132
cbf_file = traits.File(name_source=['source_file'],
3233
name_template='%s_cbf.nii.gz',
3334
argstr='-cbf %s', desc=desc)
34-
desc = 'Filename of the CBF error map.'
3535
error_file = traits.File(name_source=['source_file'],
3636
name_template='%s_error.nii.gz',
37-
argstr='-error %s', desc=desc)
38-
desc = 'Filename of the synthetic ASL data.'
37+
argstr='-error %s',
38+
desc='Filename of the CBF error map.')
3939
syn_file = traits.File(name_source=['source_file'],
4040
name_template='%s_syn.nii.gz',
41-
argstr='-syn %s', desc=desc)
41+
argstr='-syn %s',
42+
desc='Filename of the synthetic ASL data.')
4243

4344
# *** Input options (see also fit_qt1 for generic T1 fitting):
4445
desc = 'Filename of the estimated input T1 map (in ms).'
@@ -150,7 +151,7 @@ class FitAsl(NiftyFitCommand):
150151
-syn asl_syn.nii.gz'
151152
152153
"""
153-
_cmd = get_custom_path('fit_asl')
154+
_cmd = get_custom_path('fit_asl', env_dir='NIFTYFITDIR')
154155
input_spec = FitAslInputSpec
155156
output_spec = FitAslOutputSpec
156157
_suffix = '_fit_asl'

nipype/interfaces/niftyfit/base.py

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,6 @@
2929
warnings.filterwarnings('always', category=UserWarning)
3030

3131

32-
def get_custom_path(command):
33-
"""Get path of niftyfit."""
34-
try:
35-
specific_dir = os.environ['NIFTYFITDIR']
36-
command = os.path.join(specific_dir, command)
37-
return command
38-
except KeyError:
39-
return command
40-
41-
42-
def no_niftyfit(cmd='fit_dwi'):
43-
"""Check if niftyfit is installed."""
44-
if True in [os.path.isfile(os.path.join(path, cmd)) and
45-
os.access(os.path.join(path, cmd), os.X_OK)
46-
for path in os.environ["PATH"].split(os.pathsep)]:
47-
return False
48-
return True
49-
50-
5132
class NiftyFitCommand(CommandLine):
5233
"""
5334
Base support interface for NiftyFit commands.

nipype/interfaces/niftyfit/dwi.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
"""
1313

1414
from ..base import TraitedSpec, traits, isdefined, CommandLineInputSpec
15-
from .base import NiftyFitCommand, get_custom_path
15+
from .base import NiftyFitCommand
16+
from ..niftyreg.base import get_custom_path
1617

1718

1819
class FitDwiInputSpec(CommandLineInputSpec):
@@ -254,7 +255,7 @@ class FitDwi(NiftyFitCommand):
254255
-tenmap2 dwi_tenmap2.nii.gz -v1map dwi_v1map.nii.gz'
255256
256257
"""
257-
_cmd = get_custom_path('fit_dwi')
258+
_cmd = get_custom_path('fit_dwi', env_dir='NIFTYFITDIR')
258259
input_spec = FitDwiInputSpec
259260
output_spec = FitDwiOutputSpec
260261
_suffix = '_fit_dwi'
@@ -430,7 +431,7 @@ class DwiTool(NiftyFitCommand):
430431
-syn dwi_syn.nii.gz -v1map dwi_v1map.nii.gz'
431432
432433
"""
433-
_cmd = get_custom_path('dwi_tool')
434+
_cmd = get_custom_path('dwi_tool', env_dir='NIFTYFITDIR')
434435
input_spec = DwiToolInputSpec
435436
output_spec = DwiToolOutputSpec
436437
_suffix = '_dwi_tool'

nipype/interfaces/niftyfit/qt1.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
"""
1414

1515
from ..base import TraitedSpec, File, traits, CommandLineInputSpec
16-
from .base import get_custom_path, NiftyFitCommand
16+
from .base import NiftyFitCommand
17+
from ..niftyreg.base import get_custom_path
1718

1819

1920
class FitQt1InputSpec(CommandLineInputSpec):
@@ -169,7 +170,7 @@ class FitQt1(NiftyFitCommand):
169170
-res TI4D_res.nii.gz -syn TI4D_syn.nii.gz -t1map TI4D_t1map.nii.gz'
170171
171172
"""
172-
_cmd = get_custom_path('fit_qt1')
173+
_cmd = get_custom_path('fit_qt1', env_dir='NIFTYFITDIR')
173174
input_spec = FitQt1InputSpec
174175
output_spec = FitQt1OutputSpec
175176
_suffix = '_fit_qt1'

nipype/interfaces/niftyfit/tests/test_asl.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,21 @@
44

55
import pytest
66

7-
from nipype.interfaces.niftyfit import no_niftyfit, get_custom_path, FitAsl
7+
from nipype.interfaces.niftyfit import FitAsl
8+
from nipype.interfaces.niftyreg import no_nifty_package, get_custom_path
89
from nipype.testing import example_data
910

1011

11-
@pytest.mark.skipif(no_niftyfit(cmd='fit_asl'),
12+
@pytest.mark.skipif(no_nifty_package(cmd='fit_asl'),
1213
reason="niftyfit is not installed")
1314
def test_fit_asl():
1415
""" Testing FitAsl interface."""
1516
# Create the test node
1617
fit_asl = FitAsl()
1718

1819
# Check if the command is properly defined
19-
assert fit_asl.cmd == get_custom_path('fit_asl')
20+
cmd = get_custom_path('fit_asl', env_dir='NIFTYFIT_DIR')
21+
assert fit_asl.cmd == cmd
2022

2123
# test raising error with mandatory args absent
2224
with pytest.raises(ValueError):
@@ -29,7 +31,7 @@ def test_fit_asl():
2931

3032
cmd_tmp = '{cmd} -source {in_file} -cbf {cbf} -error {error} -syn {syn}'
3133
expected_cmd = cmd_tmp.format(
32-
cmd=get_custom_path('fit_asl'),
34+
cmd=cmd,
3335
in_file=in_file,
3436
cbf='asl_cbf.nii.gz',
3537
error='asl_error.nii.gz',
@@ -52,7 +54,7 @@ def test_fit_asl():
5254
cmd_tmp = '{cmd} -source {in_file} -cbf {cbf} -error {error} \
5355
-seg {seg} -sig -syn {syn} -t1map {t1map}'
5456
expected_cmd = cmd_tmp.format(
55-
cmd=get_custom_path('fit_asl'),
57+
cmd=cmd,
5658
in_file=in_file,
5759
t1map=t1map,
5860
seg=seg,

nipype/interfaces/niftyfit/tests/test_dwi.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,21 @@
33

44
import pytest
55

6-
from nipype.interfaces.niftyfit import (no_niftyfit, get_custom_path, FitDwi,
7-
DwiTool)
6+
from nipype.interfaces.niftyfit import FitDwi, DwiTool
7+
from nipype.interfaces.niftyreg import no_nifty_package, get_custom_path
88
from nipype.testing import example_data
99

1010

11-
@pytest.mark.skipif(no_niftyfit(cmd='fit_dwi'),
11+
@pytest.mark.skipif(no_nifty_package(cmd='fit_dwi'),
1212
reason="niftyfit is not installed")
1313
def test_fit_dwi():
1414
""" Testing FitDwi interface."""
1515
# Create a node object
1616
fit_dwi = FitDwi()
1717

1818
# Check if the command is properly defined
19-
assert fit_dwi.cmd == get_custom_path('fit_dwi')
19+
cmd = get_custom_path('fit_dwi', env_dir='NIFTYFITDIR')
20+
assert fit_dwi.cmd == cmd
2021

2122
# test raising error with mandatory args absent
2223
with pytest.raises(ValueError):
@@ -36,7 +37,7 @@ def test_fit_dwi():
3637
{nodiff} -res {res} -rgbmap {rgb} -syn {syn} -tenmap2 {ten2} -v1map {v1}'
3738

3839
expected_cmd = cmd_tmp.format(
39-
cmd=get_custom_path('fit_dwi'),
40+
cmd=cmd,
4041
in_file=in_file,
4142
bval=bval_file,
4243
bvec=bvec_file,
@@ -55,15 +56,16 @@ def test_fit_dwi():
5556
assert fit_dwi.cmdline == expected_cmd
5657

5758

58-
@pytest.mark.skipif(no_niftyfit(cmd='dwi_tool'),
59+
@pytest.mark.skipif(no_nifty_package(cmd='dwi_tool'),
5960
reason="niftyfit is not installed")
6061
def test_dwi_tool():
6162
""" Testing DwiTool interface."""
6263
# Create a node object
6364
dwi_tool = DwiTool()
6465

6566
# Check if the command is properly defined
66-
assert dwi_tool.cmd == get_custom_path('dwi_tool')
67+
cmd = get_custom_path('dwi_tool', env_dir='NIFTYFITDIR')
68+
assert dwi_tool.cmd == cmd
6769

6870
# test raising error with mandatory args absent
6971
with pytest.raises(ValueError):
@@ -86,7 +88,7 @@ def test_dwi_tool():
8688
-mask {mask} -dti -famap {fa} -logdti2 {log} -mcmap {mc} -mdmap {md} \
8789
-rgbmap {rgb} -syn {syn} -v1map {v1}'
8890
expected_cmd = cmd_tmp.format(
89-
cmd=get_custom_path('dwi_tool'),
91+
cmd=cmd,
9092
in_file=in_file,
9193
bval=bval_file,
9294
bvec=bvec_file,

nipype/interfaces/niftyfit/tests/test_qt1.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,21 @@
44

55
import pytest
66

7-
from nipype.interfaces.niftyfit import no_niftyfit, get_custom_path, FitQt1
7+
from nipype.interfaces.niftyfit import FitQt1
8+
from nipype.interfaces.niftyreg import no_nifty_package, get_custom_path
89
from nipype.testing import example_data
910

1011

11-
@pytest.mark.skipif(no_niftyfit(cmd='fit_qt1'),
12+
@pytest.mark.skipif(no_nifty_package(cmd='fit_qt1'),
1213
reason="niftyfit is not installed")
1314
def test_fit_qt1():
1415
""" Testing FitQt1 interface."""
1516
# Create a node object
1617
fit_qt1 = FitQt1()
1718

1819
# Check if the command is properly defined
19-
assert fit_qt1.cmd == get_custom_path('fit_qt1')
20+
cmd = get_custom_path('fit_qt1', env_dir='NIFTYFITDIR')
21+
assert fit_qt1.cmd == cmd
2022

2123
# test raising error with mandatory args absent
2224
with pytest.raises(ValueError):
@@ -29,7 +31,7 @@ def test_fit_qt1():
2931
cmd_tmp = '{cmd} -source {in_file} -comp {comp} -error {error} -m0map \
3032
{map0} -mcmap {cmap} -res {res} -syn {syn} -t1map {t1map}'
3133
expected_cmd = cmd_tmp.format(
32-
cmd=get_custom_path('fit_qt1'),
34+
cmd=cmd,
3335
in_file=in_file,
3436
comp='TI4D_comp.nii.gz',
3537
map0='TI4D_m0map.nii.gz',
@@ -51,7 +53,7 @@ def test_fit_qt1():
5153
-comp {comp} -error {error} -m0map {map0} -mcmap {cmap} -res {res} \
5254
-syn {syn} -t1map {t1map}'
5355
expected_cmd = cmd_tmp.format(
54-
cmd=get_custom_path('fit_qt1'),
56+
cmd=cmd,
5557
in_file=in_file,
5658
comp='TI4D_comp.nii.gz',
5759
map0='TI4D_m0map.nii.gz',
@@ -73,7 +75,7 @@ def test_fit_qt1():
7375
-flips 2.0 4.0 8.0 -m0map {map0} -mcmap {cmap} -res {res} -SPGR -syn {syn} \
7476
-t1map {t1map}'
7577
expected_cmd = cmd_tmp.format(
76-
cmd=get_custom_path('fit_qt1'),
78+
cmd=cmd,
7779
in_file=in_file,
7880
comp='TI4D_comp.nii.gz',
7981
map0='TI4D_m0map.nii.gz',

0 commit comments

Comments
 (0)