def test_build_read_transformations(self): primer_pair = clipper.PrimerPair(target_id="target_1", chrom="chr42", sense_primer_region=(100,102), antisense_primer_region=(148,150)) read1 = MockRead(query_name="read1-sense", is_positive_strand=True, reference_name="chr42", reference_start=100, reference_end=150, cigarstring="10M", is_paired=True, is_unmapped=False, key=111) read2 = MockRead(query_name="read2-antisense", is_positive_strand=False, reference_name="chr42", reference_start=140, reference_end=150, cigarstring="10M", is_paired=False, is_unmapped=False, key=222) read3 = MockRead(query_name="read3", is_positive_strand=True, reference_name="chr42", reference_start=333, reference_end=343, cigarstring="10M", is_paired=True, is_unmapped=False, key=333) filter_builder = lambda transform: [] read_iter = iter([read1, read2, read3]) actual_read_transforms = _build_read_transformations(read_iter, filter_builder) self.assertEquals(3, len(actual_read_transforms)) filter_builder=lambda x: [] transform1 = ReadTransformation(read1, primer_pair, MockCigarUtil(reference_start=102, cigar="2S8M"), filter_builder) transform2 = ReadTransformation(read2, primer_pair, MockCigarUtil(reference_start=140, cigar="8M2S"), filter_builder) transform3 = ReadTransformation(read3, clipper.PrimerPair.NULL, MockCigarUtil(reference_start=333, cigar="10M"), filter_builder) self.assertEquals(transform1, actual_read_transforms[111]) self.assertEquals(transform2, actual_read_transforms[222]) self.assertEquals(transform3, actual_read_transforms[333])
def test_build_read_transformations(self): primer_pair = clipper.PrimerPair(target_id="target_1", chrom="chr42", sense_primer_region=(100, 102), antisense_primer_region=(148, 150)) read1 = MockRead(query_name="read1-sense", is_positive_strand=True, reference_name="chr42", reference_start=100, reference_end=150, cigarstring="10M", is_paired=True, is_unmapped=False, key=111) read2 = MockRead(query_name="read2-antisense", is_positive_strand=False, reference_name="chr42", reference_start=140, reference_end=150, cigarstring="10M", is_paired=False, is_unmapped=False, key=222) read3 = MockRead(query_name="read3", is_positive_strand=True, reference_name="chr42", reference_start=333, reference_end=343, cigarstring="10M", is_paired=True, is_unmapped=False, key=333) filter_builder = lambda transform: [] read_iter = iter([read1, read2, read3]) actual_read_transforms = _build_read_transformations( read_iter, filter_builder) self.assertEquals(3, len(actual_read_transforms)) filter_builder = lambda x: [] transform1 = ReadTransformation( read1, primer_pair, MockCigarUtil(reference_start=102, cigar="2S8M"), filter_builder) transform2 = ReadTransformation( read2, primer_pair, MockCigarUtil(reference_start=140, cigar="8M2S"), filter_builder) transform3 = ReadTransformation( read3, clipper.PrimerPair.NULL, MockCigarUtil(reference_start=333, cigar="10M"), filter_builder) self.assertEquals(transform1, actual_read_transforms[111]) self.assertEquals(transform2, actual_read_transforms[222]) self.assertEquals(transform3, actual_read_transforms[333])
def test_build_read_transformations2_addsFilters(self): clipper.PrimerPair(target_id="target_1", chrom="chr42", sense_primer_region=(100, 102), antisense_primer_region=(148, 150)) clipper.PrimerPair(target_id="target_2", chrom="chr42", sense_primer_region=(200, 202), antisense_primer_region=(248, 250)) read1 = MockRead(query_name="readA", is_positive_strand=True, reference_name="chr42", reference_start=100, reference_end=150, cigarstring="50M", is_paired=True, is_unmapped=False, key=111) read2 = MockRead(query_name="readB", is_positive_strand=False, reference_name="chr42", reference_start=200, reference_end=250, cigarstring="50M", is_paired=False, is_unmapped=False, key=222) read_iter = iter([read1, read2]) filter_builder = lambda transform: [ str(transform.reference_start), transform.primer_pair.target_id ] actual_read_transforms = _build_read_transformations( read_iter, filter_builder) self.assertEquals(2, len(actual_read_transforms)) self.assertEquals(("102", "target_1"), actual_read_transforms[111].filters) self.assertEquals(("202", "target_2"), actual_read_transforms[222].filters)
def test_build_read_transformations2_addsFilters(self): clipper.PrimerPair(target_id="target_1", chrom="chr42", sense_primer_region=(100,102), antisense_primer_region=(148,150)) clipper.PrimerPair(target_id="target_2", chrom="chr42", sense_primer_region=(200,202), antisense_primer_region=(248,250)) read1 = MockRead(query_name="readA", is_positive_strand=True, reference_name="chr42", reference_start=100, reference_end=150, cigarstring="50M", is_paired=True, is_unmapped=False, key=111) read2 = MockRead(query_name="readB", is_positive_strand=False, reference_name="chr42", reference_start=200, reference_end=250, cigarstring="50M", is_paired=False, is_unmapped=False, key=222) read_iter = iter([read1, read2]) filter_builder = lambda transform: [str(transform.reference_start), transform.primer_pair.target_id] actual_read_transforms = _build_read_transformations(read_iter, filter_builder) self.assertEquals(2, len(actual_read_transforms)) self.assertEquals(("102", "target_1"), actual_read_transforms[111].filters) self.assertEquals(("202", "target_2"), actual_read_transforms[222].filters)