def genes_alignments(outdir):
genes_align = {}
align_file = pysam.Samfile(outdir+'ORFs_on_genes_align.sam', 'rb')
for rec in align_file:
if rec.cigarstring is not None:
gene_in_contig_len = int(re.findall(r'_len_(\d+)', rec.reference_name)[0])
total_match = sum([i[1] for i in rec.cigar if i[0] == 0])
conf = float(re.findall(r'_conf_([0-9]*\.[0-9]*)', rec.reference_name)[0])
if gene_in_contig_len / total_match > 0.98:
if genes_align.get(rec.reference_name) is None:
genes_align[rec.reference_name] = conf, set()
genes_align[rec.reference_name][1].add(rec.qname)
return genes_align
评论列表
文章目录