Skip to content

Commit ac050de

Browse files
authored
Merge pull request #2095 from rmarkello/afni_model
[ENH]: Add AFNI 3dDeconvolve/3dREMLfit interfaces
2 parents 94a11f0 + 44c4dd1 commit ac050de

File tree

5 files changed

+575
-3
lines changed

5 files changed

+575
-3
lines changed

nipype/interfaces/afni/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,4 @@
2121
Eval, FWHMx,
2222
MaskTool, Merge, Notes, Refit, Resample, TCat, TStat, To3D,
2323
Unifize, ZCutUp, GCOR,)
24+
from .model import (Deconvolve, Remlfit)

nipype/interfaces/afni/base.py

Lines changed: 49 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
from sys import platform
1111

1212
from ... import logging
13-
from ...utils.filemanip import split_filename
13+
from ...utils.filemanip import split_filename, fname_presuffix
14+
1415
from ..base import (
1516
CommandLine, traits, CommandLineInputSpec, isdefined, File, TraitedSpec)
1617
from ...external.due import BibTeX
@@ -70,7 +71,7 @@ def version():
7071
return tuple(v)
7172

7273
@classmethod
73-
def outputtype_to_ext(cls, outputtype):
74+
def output_type_to_ext(cls, outputtype):
7475
"""Get the file extension for the given output type.
7576
7677
Parameters
@@ -217,7 +218,7 @@ def set_default_output_type(cls, outputtype):
217218

218219
def _overload_extension(self, value, name=None):
219220
path, base, _ = split_filename(value)
220-
return os.path.join(path, base + Info.outputtype_to_ext(self.inputs.outputtype))
221+
return os.path.join(path, base + Info.output_type_to_ext(self.inputs.outputtype))
221222

222223
def _list_outputs(self):
223224
outputs = super(AFNICommand, self)._list_outputs()
@@ -231,6 +232,51 @@ def _list_outputs(self):
231232
outputs[name] = outputs[name] + "+orig.BRIK"
232233
return outputs
233234

235+
def _gen_fname(self, basename, cwd=None, suffix=None, change_ext=True,
236+
ext=None):
237+
"""Generate a filename based on the given parameters.
238+
239+
The filename will take the form: cwd/basename<suffix><ext>.
240+
If change_ext is True, it will use the extentions specified in
241+
<instance>intputs.output_type.
242+
243+
Parameters
244+
----------
245+
basename : str
246+
Filename to base the new filename on.
247+
cwd : str
248+
Path to prefix to the new filename. (default is os.getcwd())
249+
suffix : str
250+
Suffix to add to the `basename`. (defaults is '' )
251+
change_ext : bool
252+
Flag to change the filename extension to the FSL output type.
253+
(default True)
254+
255+
Returns
256+
-------
257+
fname : str
258+
New filename based on given parameters.
259+
260+
"""
261+
262+
if basename == '':
263+
msg = 'Unable to generate filename for command %s. ' % self.cmd
264+
msg += 'basename is not set!'
265+
raise ValueError(msg)
266+
if cwd is None:
267+
cwd = os.getcwd()
268+
if ext is None:
269+
ext = Info.output_type_to_ext(self.inputs.outputtype)
270+
if change_ext:
271+
if suffix:
272+
suffix = ''.join((suffix, ext))
273+
else:
274+
suffix = ext
275+
if suffix is None:
276+
suffix = ''
277+
fname = fname_presuffix(basename, suffix=suffix,
278+
use_ext=False, newpath=cwd)
279+
return fname
234280

235281
def no_afni():
236282
""" Checks if AFNI is available """

0 commit comments

Comments
 (0)