24
24
from ..external .due import BibTeX
25
25
from ..interfaces .base import (traits , TraitedSpec , BaseInterface ,
26
26
BaseInterfaceInputSpec , File , isdefined ,
27
- InputMultiPath , OutputMultiPath )
27
+ InputMultiPath , OutputMultiPath ,
28
+ SimpleInterface )
28
29
from ..utils import NUMPY_MMAP
29
30
from ..utils .misc import normalize_mc_params
30
31
@@ -462,7 +463,7 @@ class CompCorOutputSpec(TraitedSpec):
462
463
metadata_file = File (desc = 'text file containing component metadata' )
463
464
464
465
465
- class CompCor (BaseInterface ):
466
+ class CompCor (SimpleInterface ):
466
467
"""
467
468
Interface with core CompCor computation, used in aCompCor and tCompCor
468
469
@@ -609,9 +610,17 @@ def _run_interface(self, runtime):
609
610
delimiter = '\t ' ,
610
611
header = '\t ' .join (components_header ),
611
612
comments = '' )
613
+ self ._results ['components_file' ] = os .path .abspath (
614
+ self .inputs .components_file )
612
615
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 :
615
624
ftype = {
616
625
'polynomial' : 'Legendre' ,
617
626
'cosine' : 'Cosine'
@@ -638,15 +647,20 @@ def _run_interface(self, runtime):
638
647
header = '\t ' .join (header ),
639
648
comments = '' )
640
649
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
643
656
components_names = np .empty (len (metadata ['mask' ]),
644
657
dtype = 'object_' )
645
658
retained = np .where (metadata ['retained' ])
646
659
not_retained = np .where (np .logical_not (metadata ['retained' ]))
647
660
components_names [retained ] = components_header
648
661
components_names [not_retained ] = ([
649
662
'dropped{}' .format (i ) for i in range (len (not_retained [0 ]))])
663
+ self ._results ['metadata_file' ] = metadata_file
650
664
with open (metadata_file , 'w' ) as f :
651
665
f .write ('{}\t {}\t {}\t {}\t {}\n ' .format ('component' ,
652
666
* list (metadata .keys ())))
@@ -659,26 +673,6 @@ def _run_interface(self, runtime):
659
673
def _process_masks (self , mask_images , timeseries = None ):
660
674
return mask_images
661
675
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
-
682
676
def _make_headers (self , num_col ):
683
677
header = self .inputs .header_prefix if \
684
678
isdefined (self .inputs .header_prefix ) else self ._header
0 commit comments