def write_anomalous_read_to_bam(bam,split_reads,span_reads,anom_reads,out):
print('Writing anom reads to file')
split_reads = np.unique(split_reads['query_name'])
span_reads = np.unique(span_reads['query_name'])
anom_reads = np.unique(anom_reads['query_name'])
# need to filter out any reads that were at any point marked as valid supporting reads
anom_reads = np.array([x for x in anom_reads if x not in split_reads])
anom_reads = np.array([x for x in anom_reads if x not in span_reads])
bamf = pysam.AlignmentFile(bam, "rb")
index = pysam.IndexedReads(bamf)
index.build()
anom_bam = pysam.AlignmentFile("%s_anom_reads.bam" % out, "wb", template=bamf)
for read_name in anom_reads:
for read in index.find(read_name):
anom_bam.write(read)
anom_bam.close()
评论列表
文章目录