Skip to content

Commit 8964e79

Browse files
committed
Update brainsuite.py
1 parent eee86ff commit 8964e79

File tree

1 file changed

+67
-110
lines changed

1 file changed

+67
-110
lines changed

nipype/interfaces/brainsuite.py

Lines changed: 67 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -70,18 +70,13 @@ class Bse(CommandLine):
7070
_cmd = 'bse'
7171

7272
def _gen_filename(self, name):
73-
exec('is_user_defined = isdefined(self.inputs.' + name + ')')
74-
75-
if is_user_defined:
76-
exec("toReturn = os.path.abspath(self.inputs." + name + ")")
77-
78-
return toReturn
73+
inputs = self.inputs.get()
74+
if isdefined(inputs[name]):
75+
return os.path.abspath(inputs[name])
7976

8077
if name == 'outputMRIVolume':
81-
myExtension = '.nii.gz'
82-
return ''.join((os.getcwd(), '/',
83-
getFileName(self.inputs.inputMRIFile),
84-
"___", self._cmd, 'Output_', name, myExtension))
78+
return getFileName(self, self.inputs.inputMRIFile, name, '.nii.gz')
79+
8580
return None
8681

8782
def _list_outputs(self):
@@ -170,15 +165,12 @@ class Bfc(CommandLine):
170165
_cmd = 'bfc'
171166

172167
def _gen_filename(self, name):
173-
exec('is_user_defined = isdefined(self.inputs.' + name + ')')
174-
175-
if is_user_defined:
176-
exec("toReturn = os.path.abspath(self.inputs." + name + ")")
177-
return toReturn
168+
inputs = self.inputs.get()
169+
if isdefined(inputs[name]):
170+
return os.path.abspath(inputs[name])
178171

179172
if name == 'outputMRIVolume':
180-
myExtension = '.nii.gz'
181-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputMRIFile), "___", self._cmd, 'Output_', name, myExtension))
173+
return getFileName(self, self.inputs.inputMRIFile, name, '.nii.gz')
182174

183175
return None
184176

@@ -221,17 +213,12 @@ class Pvc(CommandLine):
221213
_cmd = 'pvc'
222214

223215
def _gen_filename(self, name):
224-
exec('is_user_defined = isdefined(self.inputs.' + name + ')')
225-
if is_user_defined:
226-
exec("toReturn = os.path.abspath(self.inputs." + name + ")")
227-
return toReturn
216+
inputs = self.inputs.get()
217+
if isdefined(inputs[name]):
218+
return os.path.abspath(inputs[name])
228219

229-
if name == 'outputLabelFile':
230-
myExtension = '.nii.gz'
231-
return ''.join((os.getcwd(), '/', self._cmd, 'Output_', name, myExtension))
232-
if name == 'outputTissueFractionFile':
233-
myExtension = '.nii.gz'
234-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputMRIFile), "___", self._cmd, 'Output_', name, myExtension))
220+
if name == 'outputLabelFile' or name == 'outputTissueFractionFile':
221+
return getFileName(self, self.inputs.inputMRIFile, name, '.nii.gz')
235222

236223
return None
237224

@@ -286,18 +273,12 @@ class Cerebro(CommandLine):
286273
_cmd = 'cerebro'
287274

288275
def _gen_filename(self, name):
289-
exec('is_user_defined = isdefined(self.inputs.' + name + ')')
290-
291-
if is_user_defined:
292-
exec("toReturn = os.path.abspath(self.inputs." + name + ")")
293-
return toReturn
276+
inputs = self.inputs.get()
277+
if isdefined(inputs[name]):
278+
return os.path.abspath(inputs[name])
294279

295-
if name == 'outputCerebrumMaskFile':
296-
myExtension = '.nii.gz'
297-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputMRIFile), "___", self._cmd, 'Output_', name, myExtension))
298-
if name == 'outputLabelMaskFile':
299-
myExtension = '.nii.gz'
300-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputMRIFile), "___", self._cmd, 'Output_', name, myExtension))
280+
if name == 'outputCerebrumMaskFile' or name == 'outputLabelMaskFile':
281+
return getFileName(self, self.inputs.inputMRIFile, name, '.nii.gz')
301282

302283
return None
303284

@@ -334,15 +315,12 @@ class Cortex(CommandLine):
334315
_cmd = 'cortex'
335316

336317
def _gen_filename(self, name):
337-
exec('is_user_defined = isdefined(self.inputs.' + name + ')')
338-
if is_user_defined:
339-
exec("toReturn = os.path.abspath(self.inputs." + name + ")")
340-
return toReturn
318+
inputs = self.inputs.get()
319+
if isdefined(inputs[name]):
320+
return os.path.abspath(inputs[name])
341321

342322
if name == 'outputCerebrumMask':
343-
myExtension = '.nii.gz'
344-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputHemisphereLabelFile), "___", self._cmd, 'Output_', name, myExtension))
345-
323+
return getFileName(self, self.inputs.inputHemisphereLabelFile, name, '.nii.gz')
346324
return None
347325

348326
def _list_outputs(self):
@@ -373,14 +351,14 @@ class Scrubmask(CommandLine):
373351
_cmd = 'scrubmask'
374352

375353
def _gen_filename(self, name):
376-
exec('is_user_defined = isdefined(self.inputs.' + name + ')')
377-
if is_user_defined:
378-
exec("toReturn = os.path.abspath(self.inputs." + name + ")")
379-
return toReturn
354+
inputs = self.inputs.get()
355+
if isdefined(inputs[name]):
356+
return os.path.abspath(inputs[name])
380357

381358
if name == 'outputMaskFile':
382-
myExtension = '.nii.gz'
383-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputMaskFile), "___", self._cmd, 'Output_', name, myExtension))
359+
return getFileName(self, self.inputs.inputMaskFile, name, '.nii.gz')
360+
361+
384362
return None
385363

386364
def _list_outputs(self):
@@ -412,14 +390,12 @@ class Tca(CommandLine):
412390
_cmd = 'tca'
413391

414392
def _gen_filename(self, name):
415-
exec('is_user_defined = isdefined(self.inputs.' + name + ')')
416-
if is_user_defined:
417-
exec("toReturn = os.path.abspath(self.inputs." + name + ")")
418-
return toReturn
393+
inputs = self.inputs.get()
394+
if isdefined(inputs[name]):
395+
return os.path.abspath(inputs[name])
419396

420397
if name == 'outputMaskFile':
421-
myExtension = '.nii.gz'
422-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputMaskFile), "___", self._cmd, 'Output_', name, myExtension))
398+
return getFileName(self, self.inputs.inputMaskFile, name, '.nii.gz')
423399

424400
return None
425401

@@ -448,14 +424,12 @@ class Dewisp(CommandLine):
448424
_cmd = 'dewisp'
449425

450426
def _gen_filename(self, name):
451-
exec('is_user_defined = isdefined(self.inputs.' + name + ')')
452-
if is_user_defined:
453-
exec("toReturn = os.path.abspath(self.inputs." + name + ")")
454-
return toReturn
427+
inputs = self.inputs.get()
428+
if isdefined(inputs[name]):
429+
return os.path.abspath(inputs[name])
455430

456431
if name == 'outputMaskFile':
457-
myExtension = '.nii.gz'
458-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputMaskFile), "___", self._cmd, 'Output_', name, myExtension))
432+
return getFileName(self, self.inputs.inputMaskFile, name, '.nii.gz')
459433

460434
return None
461435

@@ -511,14 +485,12 @@ def _format_arg(self, name, spec, value):
511485
return super(Dfs, self)._format_arg(name, spec, value)
512486

513487
def _gen_filename(self, name):
514-
exec('is_user_defined = isdefined(self.inputs.' + name + ')')
515-
if is_user_defined:
516-
exec("toReturn = os.path.abspath(self.inputs." + name + ")")
517-
return toReturn
488+
inputs = self.inputs.get()
489+
if isdefined(inputs[name]):
490+
return os.path.abspath(inputs[name])
518491

519492
if name == 'outputSurfaceFile':
520-
myExtension = '.dfs'
521-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputVolumeFile), "___", self._cmd, 'Output_', name, myExtension))
493+
return getFileName(self, self.inputs.inputVolumeFile, name, '.dfs')
522494

523495
return None
524496

@@ -572,14 +544,12 @@ class Pialmesh(CommandLine):
572544
_cmd = 'pialmesh'
573545

574546
def _gen_filename(self, name):
575-
exec('is_user_defined = isdefined(self.inputs.' + name + ')')
576-
if is_user_defined:
577-
exec("toReturn = os.path.abspath(self.inputs." + name + ")")
578-
return toReturn
547+
inputs = self.inputs.get()
548+
if isdefined(inputs[name]):
549+
return os.path.abspath(inputs[name])
579550

580551
if name == 'outputSurfaceFile':
581-
myExtension = '.dfs'
582-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputSurfaceFile), "___", self._cmd, 'Output_', name, myExtension))
552+
return getFileName(self, self.inputs.inputSurfaceFile, name, '.dfs')
583553

584554
return None
585555

@@ -624,14 +594,12 @@ class Skullfinder(CommandLine):
624594
_cmd = 'skullfinder'
625595

626596
def _gen_filename(self, name):
627-
exec('is_user_defined = isdefined(self.inputs.' + name + ')')
628-
if is_user_defined:
629-
exec("toReturn = os.path.abspath(self.inputs." + name + ")")
630-
return toReturn
597+
inputs = self.inputs.get()
598+
if isdefined(inputs[name]):
599+
return os.path.abspath(inputs[name])
631600

632601
if name == 'outputLabelFile':
633-
myExtension = '.nii.gz'
634-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputMRIFile), "___", self._cmd, 'Output_', name, myExtension))
602+
return getFileName(self, self.inputs.inputMRIFile, name, '.nii.gz')
635603

636604
return None
637605

@@ -671,42 +639,31 @@ class Hemisplit(CommandLine):
671639
_cmd = 'hemisplit'
672640

673641
def _gen_filename(self, name):
674-
exec('is_user_defined = isdefined(self.inputs.' + name + ')')
675-
if is_user_defined:
676-
exec("toReturn = os.path.abspath(self.inputs." + name + ")")
677-
return toReturn
678-
679-
if name == 'outputLeftHemisphere':
680-
myExtension = '.dfs'
681-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputSurfaceFile), "___", self._cmd, 'Output_', name, myExtension))
682-
if name == 'outputRightHemisphere':
683-
myExtension = '.dfs'
684-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputSurfaceFile), "___", self._cmd, 'Output_', name, myExtension))
685-
if name == 'outputLeftPialHemisphere':
686-
myExtension = '.dfs'
687-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputSurfaceFile), "___", self._cmd, 'Output_', name, myExtension))
688-
if name == 'outputRightPialHemisphere':
689-
myExtension = '.dfs'
690-
return ''.join((os.getcwd(), '/', getFileName(self.inputs.inputSurfaceFile), "___", self._cmd, 'Output_', name, myExtension))
642+
inputs = self.inputs.get()
643+
if isdefined(inputs[name]):
644+
return os.path.abspath(inputs[name])
645+
646+
647+
if (name == 'outputLeftHemisphere'
648+
or name == 'outputRightHemisphere'
649+
or name == 'outputLeftPialHemisphere'
650+
or name == 'outputRightPialHemisphere'):
651+
return getFileName(self, self.inputs.inputSurfaceFile, name, '.dfs')
691652

692653
return None
693654

694655
def _list_outputs(self):
695656
return l_outputs(self)
696657

697-
698-
# removes directory of a pathway to a file, removes extension, returns file name
699-
# up to first occurence of three consecutive underscore characters (if any)
700-
# ex: /home/abc/testData___bseOutput_output_file.nii.gz --> testData
701-
def getFileName(string):
702-
underscoreRegex = regex.compile("[_]{3}")
658+
# used to generate file names for outputs
659+
# removes pathway and extension of inputName, returns concatenation of]
660+
# inputName, command, name, and extension
661+
def getFileName(self, inputName, name, extension):
662+
fullInput = os.path.basename(inputName)
703663
dotRegex = regex.compile("[^.]+")
704-
slashRegex = regex.compile("[^/]+")
705-
arr = underscoreRegex.split(string)
706-
arr2 = dotRegex.findall(arr[0])
707-
arr3 = slashRegex.findall(arr2[0])
708-
return arr3[len(arr3) - 1]
709-
664+
inputNoExtension = dotRegex.findall(fullInput)[0]
665+
return os.path.abspath(
666+
''.join((inputNoExtension, '_', self._cmd, '_', name, extension)))
710667

711668
def l_outputs(self):
712669
outputs = self.output_spec().get()

0 commit comments

Comments
 (0)