Skip to content

Commit fe430f5

Browse files
committed
ensure absolute path to components file
1 parent 67a3276 commit fe430f5

File tree

1 file changed

+20
-26
lines changed

1 file changed

+20
-26
lines changed

nipype/algorithms/confounds.py

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

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

464465

465-
class CompCor(BaseInterface):
466+
class CompCor(SimpleInterface):
466467
"""
467468
Interface with core CompCor computation, used in aCompCor and tCompCor
468469
@@ -609,9 +610,17 @@ def _run_interface(self, runtime):
609610
delimiter='\t',
610611
header='\t'.join(components_header),
611612
comments='')
613+
self._results['components_file'] = os.path.abspath(
614+
self.inputs.components_file)
612615

613-
if self.inputs.pre_filter and self.inputs.save_pre_filter:
614-
pre_filter_file = self._list_outputs()['pre_filter_file']
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:
615624
ftype = {
616625
'polynomial': 'Legendre',
617626
'cosine': 'Cosine'
@@ -638,15 +647,20 @@ def _run_interface(self, runtime):
638647
header='\t'.join(header),
639648
comments='')
640649

641-
if self.inputs.save_metadata:
642-
metadata_file = self._list_outputs()['metadata_file']
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
643656
components_names = np.empty(len(metadata['mask']),
644657
dtype='object_')
645658
retained = np.where(metadata['retained'])
646659
not_retained = np.where(np.logical_not(metadata['retained']))
647660
components_names[retained] = components_header
648661
components_names[not_retained] = ([
649662
'dropped{}'.format(i) for i in range(len(not_retained[0]))])
663+
self._results['metadata_file'] = metadata_file
650664
with open(metadata_file, 'w') as f:
651665
f.write('{}\t{}\t{}\t{}\t{}\n'.format('component',
652666
*list(metadata.keys())))
@@ -659,26 +673,6 @@ def _run_interface(self, runtime):
659673
def _process_masks(self, mask_images, timeseries=None):
660674
return mask_images
661675

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-
682676
def _make_headers(self, num_col):
683677
header = self.inputs.header_prefix if \
684678
isdefined(self.inputs.header_prefix) else self._header

0 commit comments

Comments
 (0)