@@ -652,11 +652,15 @@ def _run_interface(self, runtime):
652
652
metadata_file = os .path .abspath ('component_metadata.tsv' )
653
653
else :
654
654
metadata_file = save_metadata
655
+ components_names = np .array (dtype = 'object_' ,
656
+ object = ['dropped' for i in range (len (metadata ['mask' ]))])
657
+ components_names [np .where (metadata ['retained' ])] = (
658
+ components_header )
655
659
self ._results ['metadata_file' ] = metadata_file
656
660
with open (metadata_file , 'w' ) as f :
657
661
f .write ('{}\t {}\t {}\t {}\t {}\n ' .format ('component' ,
658
662
* list (metadata .keys ())))
659
- for i in zip (components_header , * metadata .values ()):
663
+ for i in zip (components_names , * metadata .values ()):
660
664
f .write ('{0[0]}\t {0[1]}\t {0[2]:.10f}\t '
661
665
'{0[3]:.10f}\t {0[4]:.10f}\n ' .format (i ))
662
666
@@ -1296,23 +1300,30 @@ def compute_noise_components(imgseries, mask_images, components_criterion=0.5,
1296
1300
if components is None :
1297
1301
components = u [:, :num_components ]
1298
1302
metadata = OrderedDict ()
1299
- metadata ['mask' ] = np .array ([i ] * num_components )
1300
- metadata ['singular_value' ] = s [: num_components ]
1301
- metadata ['variance_explained' ] = variance_explained [: num_components ]
1303
+ metadata ['mask' ] = np .array ([i ] * len ( s ) )
1304
+ metadata ['singular_value' ] = s
1305
+ metadata ['variance_explained' ] = variance_explained
1302
1306
metadata ['cumulative_variance_explained' ] = (
1303
- cumulative_variance_explained [:num_components ])
1307
+ cumulative_variance_explained )
1308
+ metadata ['retained' ] = np .array (
1309
+ [True if i < num_components
1310
+ else False for i in range (len (s ))], dtype = 'bool' )
1304
1311
else :
1305
1312
components = np .hstack ((components , u [:, :num_components ]))
1306
1313
metadata ['mask' ] = np .hstack ((metadata ['mask' ],
1307
- [i ] * num_components ))
1314
+ [i ] * len ( s ) ))
1308
1315
metadata ['singular_value' ] = (
1309
- np .hstack ((metadata ['singular_value' ], s [: num_components ] )))
1316
+ np .hstack ((metadata ['singular_value' ], s )))
1310
1317
metadata ['variance_explained' ] = (
1311
1318
np .hstack ((metadata ['variance_explained' ],
1312
- variance_explained [: num_components ] )))
1319
+ variance_explained )))
1313
1320
metadata ['cumulative_variance_explained' ] = (
1314
1321
np .hstack ((metadata ['cumulative_variance_explained' ],
1315
- cumulative_variance_explained [:num_components ])))
1322
+ cumulative_variance_explained )))
1323
+ metadata ['retained' ] = np .hstack ((metadata ['retained' ],
1324
+ [True if i < num_components
1325
+ else False
1326
+ for i in range (len (s ))]))
1316
1327
if components is None and num_components != 0 :
1317
1328
if self .inputs .failure_mode == 'error' :
1318
1329
raise ValueError ('No components found' )
0 commit comments