def test_main(self): primer_file_content = \ '''Customer TargetID|Chr|Sense Start|Antisense Start|Sense Sequence|Antisense Sequence primer1|1|101|200|AAGG|CCTT primer2|2|501|600|CGCG|ATAT '''.replace("|", "\t") CIGAR_10M = ((0,10),) readA1 = build_read(query_name = "readA", query_sequence="AGCTTAGCTA", flag = 99, reference_id = 0, reference_start = 100, cigar = CIGAR_10M, next_reference_id =0, next_reference_start=190, template_length=80) readA2 = build_read(query_name = "readA", query_sequence="AGCTTAGCTA", flag = 147, reference_id = 0, reference_start = 190, cigar = CIGAR_10M, next_reference_id = 0, next_reference_start=100, template_length=80) readB1 = build_read(query_name = "readB", query_sequence="AGCTTAGCTA", flag = 0, reference_id = 1, reference_start = 242, cigar = CIGAR_10M, next_reference_id = 0, next_reference_start=0, template_length=0) with TempDirectory() as input_dir, TempDirectory() as output_dir: input_bam_filename = os.path.join(input_dir.path, "input.bam") output_bam_filename = os.path.join(output_dir.path, "output.bam") input_primers_filename = self._create_file(input_dir.path, 'primers.txt', primer_file_content) make_bam_file(input_bam_filename, [readA1, readA2, readB1]) clipper.main(["katana", input_primers_filename, input_bam_filename, output_bam_filename]) actual = self._bam_to_sam(output_bam_filename) self.assertRegexpMatches(actual[0], "readA.*chr1.*105.*4S6M.*191") self.assertRegexpMatches(actual[1], "readA.*chr1.*191.*6M4S.*105") self.assertEquals(2, len(actual))
def test_main(self): primer_file_content = \ '''Customer TargetID|Chr|Sense Start|Antisense Start|Sense Sequence|Antisense Sequence primer1|1|101|200|AAGG|CCTT primer2|2|501|600|CGCG|ATAT '''.replace("|", "\t") CIGAR_10M = ((0, 10), ) readA1 = build_read(query_name="readA", query_sequence="AGCTTAGCTA", flag=99, reference_id=0, reference_start=100, cigar=CIGAR_10M, next_reference_id=0, next_reference_start=190, template_length=80) readA2 = build_read(query_name="readA", query_sequence="AGCTTAGCTA", flag=147, reference_id=0, reference_start=190, cigar=CIGAR_10M, next_reference_id=0, next_reference_start=100, template_length=80) readB1 = build_read(query_name="readB", query_sequence="AGCTTAGCTA", flag=0, reference_id=1, reference_start=242, cigar=CIGAR_10M, next_reference_id=0, next_reference_start=0, template_length=0) with TempDirectory() as input_dir, TempDirectory() as output_dir: input_bam_filename = os.path.join(input_dir.path, "input.bam") output_bam_filename = os.path.join(output_dir.path, "output.bam") input_primers_filename = self._create_file(input_dir.path, 'primers.txt', primer_file_content) make_bam_file(input_bam_filename, [readA1, readA2, readB1]) clipper.main([ "katana", input_primers_filename, input_bam_filename, output_bam_filename ]) actual = self._bam_to_sam(output_bam_filename) self.assertRegexpMatches(actual[0], "readA.*chr1.*105.*4S6M.*191") self.assertRegexpMatches(actual[1], "readA.*chr1.*191.*6M4S.*105") self.assertEquals(2, len(actual))
def test_examples(self): with TempDirectory() as output_dir: input_bam = "chr10.pten.bam" output_bam = "chr10.pten.clipped.bam" output_bai = output_bam + ".bai" input_primer_filename = os.path.join(INPUT_DIR, "primers.txt") input_bam_filename = os.path.join(INPUT_DIR, input_bam) expect_bam_filename = os.path.join(INPUT_DIR, output_bam) expect_bai_filename = os.path.join(INPUT_DIR, output_bai) output_bam_filename = os.path.join(output_dir.path, output_bam) output_bai_filename = os.path.join(output_dir.path, output_bai) clipper.main(["program_name", input_primer_filename, input_bam_filename, output_bam_filename]) self.assertTrue(filecmp.cmp(expect_bam_filename, output_bam_filename), "{} does not match expected".format(output_bam)) self.assertTrue(filecmp.cmp(expect_bai_filename, output_bai_filename), "{} does not match expected".format(output_bai))
def test_examples(self): with TempDirectory() as output_dir: input_bam = "chr10.pten.bam" output_bam = "chr10.pten.clipped.bam" output_bai = output_bam + ".bai" input_primer_filename = os.path.join(INPUT_DIR, "primers.txt") input_bam_filename = os.path.join(INPUT_DIR, input_bam) expect_bam_filename = os.path.join(INPUT_DIR, output_bam) expect_bai_filename = os.path.join(INPUT_DIR, output_bai) output_bam_filename = os.path.join(output_dir.path, output_bam) output_bai_filename = os.path.join(output_dir.path, output_bai) clipper.main([ "program_name", input_primer_filename, input_bam_filename, output_bam_filename ]) self.assertTrue( filecmp.cmp(expect_bam_filename, output_bam_filename), "{} does not match expected".format(output_bam)) self.assertTrue( filecmp.cmp(expect_bai_filename, output_bai_filename), "{} does not match expected".format(output_bai))
"""Katana entry point""" import sys from katana.clipper import main main(sys.argv)