def test_all_primers(self): primer_pair1 = util.PrimerPair(target_id="target_1", chrom="chr42", sense_primer_region=(100, 108), antisense_primer_region=(145, 150)) primer_pair2 = util.PrimerPair(target_id="target_1", chrom="chr42", sense_primer_region=(200, 208), antisense_primer_region=(245, 250)) actual_primers = util.PrimerPair._all_primers self.assertEquals(primer_pair1, actual_primers[('chr42', 100, True)]) self.assertEquals(primer_pair1, actual_primers[('chr42', 150, False)]) self.assertEquals(primer_pair2, actual_primers[('chr42', 200, True)]) self.assertEquals(primer_pair2, actual_primers[('chr42', 250, False)]) self.assertEquals(4, len(actual_primers))
def test_init(self): primer_pair = util.PrimerPair(target_id="target_1", chrom="chr42", sense_primer_region=(100, 110), antisense_primer_region=(140, 150)) self.assertEquals("target_1", primer_pair.target_id) self.assertEquals("chr42", primer_pair.chrom) self.assertEquals(100, primer_pair.sense_start) self.assertEquals(110, primer_pair._query_region_start) self.assertEquals(140, primer_pair._query_region_end) self.assertEquals(False, primer_pair.is_unmatched)
def test_softclip_primers(self): primer_pair = util.PrimerPair(target_id="target_1", chrom="chr42", sense_primer_region=(100, 110), antisense_primer_region=(140, 150)) expect_clipped_cigar = MockCigarUtil(reference_start=42, cigar="75X") mock_cigar = MockCigarUtil( _softclip_target_return=expect_clipped_cigar) actual_clipped_cigar = primer_pair.softclip_primers(mock_cigar) self.assertEquals([(110, 140)], mock_cigar._softclip_targets_calls) self.assertEquals(expect_clipped_cigar, actual_clipped_cigar)
def test_get_primer_pair_noMatch(self): util.PrimerPair._all_primers = {} util.PrimerPair(target_id="target_1", chrom="chr42", sense_primer_region=(100, 110), antisense_primer_region=(140, 150)) read = MockRead(reference_name="chrX", is_positive_strand=True, reference_start=42, reference_end=142, cigarstring="75M") actual_primer_pair = util.PrimerPair.get_primer_pair(read) self.assertIsInstance(actual_primer_pair, util._NullPrimerPair)
def test_get_primer_pair_matchNegativeStrand(self): util.PrimerPair._all_primers = {} util.PrimerPair(target_id="target_2", chrom="chr42", sense_primer_region=(100, 110), antisense_primer_region=(140, 150)) read = MockRead(reference_name="chr42", is_positive_strand=False, reference_start=42, reference_end=150, cigarstring="75M") actual_primer_pair = util.PrimerPair.get_primer_pair(read) self.assertEquals("target_2", actual_primer_pair.target_id)