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