Skip to content

Commit 67a3276

Browse files
committed
(CompCor) try BaseInterface
1 parent 797801e commit 67a3276

File tree

1 file changed

+26
-20
lines changed

1 file changed

+26
-20
lines changed

nipype/algorithms/confounds.py

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@
2424
from ..external.due import BibTeX
2525
from ..interfaces.base import (traits, TraitedSpec, BaseInterface,
2626
BaseInterfaceInputSpec, File, isdefined,
27-
InputMultiPath, OutputMultiPath,
28-
SimpleInterface)
27+
InputMultiPath, OutputMultiPath)
2928
from ..utils import NUMPY_MMAP
3029
from ..utils.misc import normalize_mc_params
3130

@@ -463,7 +462,7 @@ class CompCorOutputSpec(TraitedSpec):
463462
metadata_file = File(desc='text file containing component metadata')
464463

465464

466-
class CompCor(SimpleInterface):
465+
class CompCor(BaseInterface):
467466
"""
468467
Interface with core CompCor computation, used in aCompCor and tCompCor
469468
@@ -610,17 +609,9 @@ def _run_interface(self, runtime):
610609
delimiter='\t',
611610
header='\t'.join(components_header),
612611
comments='')
613-
self._results['components_file'] = os.path.abspath(
614-
self.inputs.components_file)
615612

616-
save_pre_filter = self.inputs.save_pre_filter
617-
if save_pre_filter:
618-
if isinstance(save_pre_filter, bool):
619-
pre_filter_file = os.path.abspath('pre_filter.tsv')
620-
else:
621-
pre_filter_file = save_pre_filter
622-
self._results['pre_filter_file'] = pre_filter_file
623-
if self.inputs.pre_filter and save_pre_filter:
613+
if self.inputs.pre_filter and self.inputs.save_pre_filter:
614+
pre_filter_file = self._list_outputs()['pre_filter_file']
624615
ftype = {
625616
'polynomial': 'Legendre',
626617
'cosine': 'Cosine'
@@ -647,20 +638,15 @@ def _run_interface(self, runtime):
647638
header='\t'.join(header),
648639
comments='')
649640

650-
save_metadata = self.inputs.save_metadata
651-
if save_metadata:
652-
if isinstance(save_metadata, bool):
653-
metadata_file = os.path.abspath('component_metadata.tsv')
654-
else:
655-
metadata_file = save_metadata
641+
if self.inputs.save_metadata:
642+
metadata_file = self._list_outputs()['metadata_file']
656643
components_names = np.empty(len(metadata['mask']),
657644
dtype='object_')
658645
retained = np.where(metadata['retained'])
659646
not_retained = np.where(np.logical_not(metadata['retained']))
660647
components_names[retained] = components_header
661648
components_names[not_retained] = ([
662649
'dropped{}'.format(i) for i in range(len(not_retained[0]))])
663-
self._results['metadata_file'] = metadata_file
664650
with open(metadata_file, 'w') as f:
665651
f.write('{}\t{}\t{}\t{}\t{}\n'.format('component',
666652
*list(metadata.keys())))
@@ -673,6 +659,26 @@ def _run_interface(self, runtime):
673659
def _process_masks(self, mask_images, timeseries=None):
674660
return mask_images
675661

662+
def _list_outputs(self):
663+
664+
outputs = self._outputs().get()
665+
outputs['components_file'] = os.path.abspath(
666+
self.inputs.components_file)
667+
668+
save_pre_filter = self.inputs.save_pre_filter
669+
if save_pre_filter:
670+
if isinstance(save_pre_filter, bool):
671+
save_pre_filter = os.path.abspath('pre_filter.tsv')
672+
outputs['pre_filter_file'] = save_pre_filter
673+
674+
save_metadata = self.inputs.save_metadata
675+
if save_metadata:
676+
if isinstance(save_metadata, bool):
677+
save_metadata = os.path.abspath('component_metadata.tsv')
678+
outputs['metadata_file'] = save_metadata
679+
680+
return outputs
681+
676682
def _make_headers(self, num_col):
677683
header = self.inputs.header_prefix if \
678684
isdefined(self.inputs.header_prefix) else self._header

0 commit comments

Comments
 (0)