Skip to content

Commit df8d607

Browse files
authored
Merge pull request #1523 from TheChymera/bru
new bru2nii PR
2 parents adc6ed1 + 6d368b3 commit df8d607

File tree

4 files changed

+99
-0
lines changed

4 files changed

+99
-0
lines changed

nipype/interfaces/bru2nii.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
2+
"""The bru2nii module provides basic functions for dicom conversion
3+
4+
Change directory to provide relative paths for doctests
5+
>>> import os
6+
>>> filepath = os.path.dirname( os.path.realpath( __file__ ) )
7+
>>> datadir = os.path.realpath(os.path.join(filepath, '../testing/data'))
8+
>>> os.chdir(datadir)
9+
"""
10+
11+
from nipype.interfaces.base import (CommandLine, CommandLineInputSpec, traits, TraitedSpec, isdefined, File, Directory)
12+
import os
13+
14+
15+
16+
class Bru2InputSpec(CommandLineInputSpec):
17+
input_dir = Directory(desc = "Input Directory", exists=True, mandatory=True, position=-1, argstr="%s")
18+
actual_size = traits.Bool(argstr='-a', desc="Keep actual size - otherwise x10 scale so animals match human.")
19+
force_conversion = traits.Bool(argstr='-f', desc="Force conversion of localizers images (multiple slice orientations).")
20+
append_protocol_name = traits.Bool(argstr='-p', desc="Append protocol name to output filename.")
21+
output_filename = traits.Str(argstr="-o %s", desc="Output filename ('.nii' will be appended)", genfile=True)
22+
23+
class Bru2OutputSpec(TraitedSpec):
24+
nii_file = File(exists=True)
25+
26+
class Bru2(CommandLine):
27+
"""Uses bru2nii's Bru2 to convert Bruker files
28+
29+
Examples
30+
========
31+
32+
>>> from nipype.interfaces.bru2nii import Bru2
33+
>>> converter = Bru2()
34+
>>> converter.inputs.input_dir = "brukerdir"
35+
>>> converter.cmdline # doctest: +ELLIPSIS
36+
'Bru2 -o .../nipype/nipype/testing/data/brukerdir brukerdir'
37+
"""
38+
input_spec = Bru2InputSpec
39+
output_spec = Bru2OutputSpec
40+
_cmd = "Bru2"
41+
42+
def _list_outputs(self):
43+
outputs = self._outputs().get()
44+
if isdefined(self.inputs.output_filename):
45+
output_filename1 = self.inputs.output_filename
46+
else:
47+
output_filename1 = self._gen_filename('output_filename')
48+
outputs["nii_file"] = output_filename1+".nii"
49+
return outputs
50+
51+
def _gen_filename(self, name):
52+
if name == 'output_filename':
53+
outfile = os.path.join(os.getcwd(),os.path.basename(os.path.normpath(self.inputs.input_dir)))
54+
return outfile
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# AUTO-GENERATED by tools/checkspecs.py - DO NOT EDIT
2+
from ...testing import assert_equal
3+
from ..bru2nii import Bru2
4+
5+
6+
def test_Bru2_inputs():
7+
input_map = dict(actual_size=dict(argstr='-a',
8+
),
9+
append_protocol_name=dict(argstr='-p',
10+
),
11+
args=dict(argstr='%s',
12+
),
13+
environ=dict(nohash=True,
14+
usedefault=True,
15+
),
16+
force_conversion=dict(argstr='-f',
17+
),
18+
ignore_exception=dict(nohash=True,
19+
usedefault=True,
20+
),
21+
input_dir=dict(argstr='%s',
22+
mandatory=True,
23+
position=-1,
24+
),
25+
output_filename=dict(argstr='-o %s',
26+
genfile=True,
27+
),
28+
terminal_output=dict(nohash=True,
29+
),
30+
)
31+
inputs = Bru2.input_spec()
32+
33+
for key, metadata in list(input_map.items()):
34+
for metakey, value in list(metadata.items()):
35+
yield assert_equal, getattr(inputs.traits()[key], metakey), value
36+
37+
38+
def test_Bru2_outputs():
39+
output_map = dict(nii_file=dict(),
40+
)
41+
outputs = Bru2.output_spec()
42+
43+
for key, metadata in list(output_map.items()):
44+
for metakey, value in list(metadata.items()):
45+
yield assert_equal, getattr(outputs.traits()[key], metakey), value

nipype/testing/data/brukerdir/fid

Whitespace-only changes.

nipype/testing/data/brukerdir/pdata/1/2dseq

Whitespace-only changes.

0 commit comments

Comments
 (0)