def mark_dupes_group_cb(self, gene_id, umis, dupe_type):
total_counts = sum(umis.values())
total_umis = len(umis)
if any([count > 1 for count in umis.itervalues()]):
umi_hamming_distance = 0
else:
umi_hamming_distance = cr_utils.get_kmers_hamming_distance(umis.keys())
for reference in [cr_utils.get_genome_from_str(gene_id, self.genomes), cr_constants.MULTI_REFS_PREFIX]:
if total_counts > 0:
reads_per_dupe_group_histogram = self._get_metric_attr(
'reads_per_dupe_group_histogram', reference, dupe_type)
reads_per_dupe_group_histogram.add(total_counts)
if total_umis > 0:
umis_per_dupe_group_histogram = self._get_metric_attr(
'umis_per_dupe_group_histogram', reference, dupe_type)
umis_per_dupe_group_histogram.add(total_umis)
reads_per_molecule_histogram = self._get_metric_attr(
'reads_per_molecule_histogram', reference, dupe_type)
for count in umis.itervalues():
reads_per_molecule_histogram.add(count)
if umi_hamming_distance is not None:
umi_hamming_distance_per_dupe_group_histogram = self._get_metric_attr(
'umi_hamming_distance_per_dupe_group_histogram', reference, dupe_type)
umi_hamming_distance_per_dupe_group_histogram.add(umi_hamming_distance)
评论列表
文章目录