def test_process_bam_raises(): bam = os.path.join(DATA, "no_umi.bam") tbam = os.path.join(DATA, "tmp.bam") with captured_output() as (o, e): process_bam(bam, tbam) if os.path.exists(tbam): os.remove(tbam)
def test_process_bam_mismatches(): tbam = os.path.join(DATA, "tmp.bam") bam = os.path.join(DATA, "ordered_umi.bam") if os.path.exists(tbam): os.remove(tbam) with captured_output() as (out, err): process_bam(bam, tbam, mismatches=1) assert os.path.exists(tbam) it = iter(out.getvalue().split("\n")) assert it.next().strip() == "1\t9\t10\t4\t2" assert it.next().strip() == "1\t11\t12\t2\t1" assert it.next().strip() == "1\t29\t30\t2\t1" bam_reader = Samfile(tbam) it = iter(bam_reader) r = it.next() assert r.pos == 4 assert r.qname == "read8:UMI_ATTCAGGG" r = it.next() assert r.pos == 9 assert r.qname == "read1:UMI_AAAAAGGG" r = it.next() assert r.pos == 9 assert r.qname == "read4:UMI_AAAGGGGG" r = it.next() assert r.pos == 11 assert r.qname == "read5:UMI_ATTTAGGG" bam_reader.close() os.remove(tbam)