2424from ..external .due import BibTeX
2525from ..interfaces .base import (traits , TraitedSpec , BaseInterface ,
2626 BaseInterfaceInputSpec , File , isdefined ,
27- InputMultiPath , OutputMultiPath )
27+ InputMultiPath , OutputMultiPath ,
28+ SimpleInterface )
2829from ..utils import NUMPY_MMAP
2930from ..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