@@ -652,10 +652,13 @@ 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
+ components_names = np .empty (len (metadata ['mask' ]),
656
+ dtype = 'object_' )
657
+ retained = np .where (metadata ['retained' ])
658
+ not_retained = np .where (np .logical_not (metadata ['retained' ]))
659
+ components_names [retained ] = components_header
660
+ components_names [not_retained ] = ([
661
+ 'dropped{}' .format (i ) for i in range (len (not_retained [0 ]))])
659
662
self ._results ['metadata_file' ] = metadata_file
660
663
with open (metadata_file , 'w' ) as f :
661
664
f .write ('{}\t {}\t {}\t {}\t {}\n ' .format ('component' ,
@@ -1288,7 +1291,7 @@ def compute_noise_components(imgseries, mask_images, components_criterion=0.5,
1288
1291
else :
1289
1292
continue
1290
1293
1291
- variance_explained = [ value ** 2 / np .sum (s ** 2 ) for value in s ]
1294
+ variance_explained = ( s ** 2 ) / np .sum (s ** 2 )
1292
1295
cumulative_variance_explained = np .cumsum (variance_explained )
1293
1296
1294
1297
num_components = int (components_criterion )
@@ -1299,7 +1302,8 @@ def compute_noise_components(imgseries, mask_images, components_criterion=0.5,
1299
1302
num_components = len (s )
1300
1303
1301
1304
num_components = int (num_components )
1302
- # check whether num_components == 0, break if so
1305
+ if num_components == 0 :
1306
+ break
1303
1307
if components is None :
1304
1308
components = u [:, :num_components ]
1305
1309
metadata = OrderedDict ()
@@ -1308,12 +1312,10 @@ def compute_noise_components(imgseries, mask_images, components_criterion=0.5,
1308
1312
metadata ['variance_explained' ] = variance_explained
1309
1313
metadata ['cumulative_variance_explained' ] = (
1310
1314
cumulative_variance_explained )
1311
- metadata ['retained' ] = [
1312
- i < num_components for i in range (len (s ))]
1315
+ metadata ['retained' ] = [i < num_components for i in range (len (s ))]
1313
1316
else :
1314
1317
components = np .hstack ((components , u [:, :num_components ]))
1315
- metadata ['mask' ] = np .hstack ((metadata ['mask' ],
1316
- [i ] * len (s )))
1318
+ metadata ['mask' ] = metadata ['mask' ] + [i ] * len (s )
1317
1319
metadata ['singular_value' ] = (
1318
1320
np .hstack ((metadata ['singular_value' ], s )))
1319
1321
metadata ['variance_explained' ] = (
@@ -1322,15 +1324,13 @@ def compute_noise_components(imgseries, mask_images, components_criterion=0.5,
1322
1324
metadata ['cumulative_variance_explained' ] = (
1323
1325
np .hstack ((metadata ['cumulative_variance_explained' ],
1324
1326
cumulative_variance_explained )))
1325
- metadata ['retained' ] = np .hstack ((metadata ['retained' ],
1326
- [True if i < num_components
1327
- else False
1328
- for i in range (len (s ))]))
1327
+ metadata ['retained' ] = (metadata ['retained' ]
1328
+ + [i < num_components
1329
+ for i in range (len (s ))])
1329
1330
if components is None :
1330
1331
if failure_mode == 'error' :
1331
1332
raise ValueError ('No components found' )
1332
- components = np .ones ((M .shape [0 ], num_components ),
1333
- dtype = np .float32 ) * np .nan
1333
+ components = np .full ((M .shape [0 ], num_components ), np .NaN )
1334
1334
return components , basis , metadata
1335
1335
1336
1336
0 commit comments