@@ -578,12 +578,13 @@ def _run_interface(self, runtime):
578
578
579
579
components_file = os .path .join (os .getcwd (),
580
580
self .inputs .components_file )
581
+ components_header = self ._make_headers (components .shape [1 ])
581
582
np .savetxt (
582
583
components_file ,
583
584
components ,
584
585
fmt = b"%.10f" ,
585
586
delimiter = '\t ' ,
586
- header = self . _make_headers ( components . shape [ 1 ] ),
587
+ header = ' \t ' . join ( components_header ),
587
588
comments = '' )
588
589
589
590
if self .inputs .pre_filter and self .inputs .save_pre_filter :
@@ -617,10 +618,11 @@ def _run_interface(self, runtime):
617
618
if self .inputs .save_metadata :
618
619
metadata_file = self ._list_outputs ()['metadata_file' ]
619
620
with open (metadata_file , 'w' ) as f :
620
- f .write ('{}\t {}\t {}\t {}\n ' .format (* list (metadata .keys ())))
621
- for i in zip (* metadata .values ()):
622
- f .write ('{0[0]}\t {0[1]:.10f}\t {0[2]:.10f}\t '
623
- '{0[3]:.10f}\n ' .format (i ))
621
+ f .write ('{}\t {}\t {}\t {}\t {}\n ' .format ('component' ,
622
+ * list (metadata .keys ())))
623
+ for i in zip (components_header , * metadata .values ()):
624
+ f .write ('{0[0]}\t {0[1]}\t {0[2]:.10f}\t '
625
+ '{0[3]:.10f}\t {0[4]:.10f}\n ' .format (i ))
624
626
625
627
return runtime
626
628
@@ -650,10 +652,7 @@ def _make_headers(self, num_col):
650
652
header = self .inputs .header_prefix if \
651
653
isdefined (self .inputs .header_prefix ) else self ._header
652
654
headers = ['{}{:02d}' .format (header , i ) for i in range (num_col )]
653
- return '\t ' .join (headers )
654
-
655
- def _print_metadata (self , x , f ):
656
- f .write ('{0[0]}\t {0[1]:.10f}\t {0[2]:.10f}\t {0[3]:.10f}\n ' .format (x ))
655
+ return headers
657
656
658
657
659
658
class ACompCor (CompCor ):
@@ -1274,26 +1273,28 @@ def compute_noise_components(imgseries, mask_images, components_criterion=0.5,
1274
1273
elif components_criterion == - 1 :
1275
1274
num_components = len (s )
1276
1275
else :
1277
- num_components = components_criterion
1276
+ num_components = int ( components_criterion )
1278
1277
if components is None :
1279
1278
components = u [:, :num_components ]
1280
1279
metadata = {
1281
- 'mask' : np .array ([i ] * len (s )),
1282
- 'singular_values' : s ,
1283
- 'variance_explained' : variance_explained ,
1284
- 'cumulative_variance_explained' : cumulative_variance_explained
1280
+ 'mask' : np .array ([i ] * num_components ),
1281
+ 'singular_values' : s [:num_components ],
1282
+ 'variance_explained' : variance_explained [:num_components ],
1283
+ 'cumulative_variance_explained' :
1284
+ cumulative_variance_explained [:num_components ]
1285
1285
}
1286
1286
else :
1287
1287
components = np .hstack ((components , u [:, :num_components ]))
1288
- metadata ['mask' ] = np .hstack ((metadata ['mask' ], [i ] * len (s )))
1288
+ metadata ['mask' ] = np .hstack ((metadata ['mask' ],
1289
+ [i ] * num_components ))
1289
1290
metadata ['singular_values' ] = (
1290
- np .hstack ((metadata ['singular_values' ], s )))
1291
+ np .hstack ((metadata ['singular_values' ], s [: num_components ] )))
1291
1292
metadata ['variance_explained' ] = (
1292
1293
np .hstack ((metadata ['variance_explained' ],
1293
- variance_explained )))
1294
+ variance_explained [: num_components ] )))
1294
1295
metadata ['cumulative_variance_explained' ] = (
1295
1296
np .hstack ((metadata ['cumulative_variance_explained' ],
1296
- cumulative_variance_explained )))
1297
+ cumulative_variance_explained [: num_components ] )))
1297
1298
if components is None and num_components != 0 :
1298
1299
if self .inputs .failure_mode == 'error' :
1299
1300
raise ValueError ('No components found' )
0 commit comments