def main(args, outs):
with cr_mol_counter.MoleculeCounter.open(args.molecule_h5, 'r') as in_mc:
with cr_mol_counter.MoleculeCounter.open(outs.merged_molecules, 'w') as out_mc:
remapped_gem_groups = remap_gems(in_mc.get_column('gem_group'), args.gem_group_index, args.library_id)
sort_index = np.lexsort([remapped_gem_groups])
for col in cr_mol_counter.MOLECULE_INFO_COLUMNS:
if col == 'gem_group':
arr = remapped_gem_groups
else:
arr = in_mc.get_column(col)
out_mc.add_many(col, arr[sort_index])
for col in cr_mol_counter.MOLECULE_REF_COLUMNS:
array = in_mc.get_ref_column(col)
out_mc.set_ref_column(col, array)
out_metrics = in_mc.get_all_metrics()
gg_metrics = {}
for (gg, metrics) in in_mc.get_metric(cr_mol_counter.GEM_GROUPS_METRIC).iteritems():
for ng, (sid, og) in args.gem_group_index.iteritems():
if sid == args.library_id and og == gg:
gg_metrics[int(ng)] = metrics
out_metrics[cr_mol_counter.GEM_GROUPS_METRIC] = gg_metrics
out_mc.set_all_metrics(out_metrics)
评论列表
文章目录