예제 #1
0
    def test_change_chroms_mismatch(self):

        self.exon.add_sequence(self.test_seq)

        variant1 = veffects.VariantRecord("2L", 118, "T", "C", 118)
        variant2 = veffects.VariantRecord("3L", 118, "T", "C", 118)

        variants = [variant1, variant2]

        self.assertRaises(ValueError, self.exon.add_sequence, variants)
예제 #2
0
    def test_overlapping_variant_error(self):

        self.exon.add_sequence(self.test_seq)

        variant1 = veffects.VariantRecord("2L", 117, "AT", "A", 118)
        variant2 = veffects.VariantRecord("2L", 115, "GAATA", "G", 119)

        variants = [variant1, variant2]

        self.exon.variants = variants

        self.assertRaises(veffects.OverlappingVariantError, self.exon.change)
예제 #3
0
    def test_multi_base_ref_alelle(self):

        self.exon.add_sequence(self.test_seq)

        variant1 = veffects.VariantRecord("2L", 118, "TA", "AA", 119)
        variant2 = veffects.VariantRecord("2L", 127, "ATA", "CTA", 129)

        variants = [variant1, variant2]

        self.exon.variants = variants

        self.exon.change()

        test_changed_seq = "CGATATGAAAATGACCAGCTATGAGT"

        self.assertEqual(self.exon.changed_sequence, test_changed_seq)
예제 #4
0
    def test_change_allele_out_of_bounds(self):

        self.exon.add_sequence(self.test_seq)

        variant1 = veffects.VariantRecord("2L", 4, "G", "GGGG", 4)

        self.assertRaises(ValueError, self.exon.add_sequence, [variant1])
예제 #5
0
    def test_change_ref_alleles_mismatch(self):

        self.exon.add_sequence(self.test_seq)

        variant1 = veffects.VariantRecord("2L", 131, "GGG", "G", 133)

        self.assertRaises(ValueError, self.exon.add_sequence, [variant1])
예제 #6
0
    def test_change(self):

        self.exon.add_sequence(self.test_seq)

        variant1 = veffects.VariantRecord("2L", 110, "GA", "G", 111)
        variant2 = veffects.VariantRecord("2L", 118, "T", "C", 118)
        variant3 = veffects.VariantRecord("2L", 125, "A", "AAAAAAA", 125)
        variant4 = veffects.VariantRecord("2L", 131, "GAG", "G", 133)

        variants = [variant1, variant2, variant3, variant4]

        self.exon.variants = variants

        test_changed_seq = "CGTATGAACATGACCAAAAAAAGATATGT"

        self.exon.change()

        self.assertEqual(self.exon.changed_sequence, test_changed_seq)
예제 #7
0
    def setUp(self):

        test_seq = "ATGCTTCATCAGCAGCAGCCCGGGGCCTAG"
        self.transcript = veffects.Transcript("2L", test_seq)

        exon1 = veffects.ExonSequence("2L", "foo", 1, "+", 5, 18)  #14
        exon2 = veffects.ExonSequence("2L", "foo", 2, "+", 50, 55)  #6
        exon3 = veffects.ExonSequence("2L", "foo", 3, "+", 70, 74)  #5
        exon4 = veffects.ExonSequence("2L", "foo", 4, "+", 103, 107)  #5

        self.exons = [exon1, exon2, exon3, exon4]

        variant1 = veffects.VariantRecord("2L", 15, "A", "AA", 15)
        variant2 = veffects.VariantRecord("2L", 16, "GCA", "G", 18)
        variant3 = veffects.VariantRecord("2L", 52, "A", "AAAAA", 52)
        variant4 = veffects.VariantRecord("2L", 70, "CGG", "C", 72)

        self.variants = [variant1, variant2, variant3, variant4]
예제 #8
0
    def test_catches_overlapping_variants(self):
        ##pass a set of variants that overlaps an exon boundary
        ##and make sure a VariantOverlapsExonBoundaryError is raised

        for exon in self.exons:

            self.transcript.add_exon(exon)

        variant5 = veffects.VariantRecord("2L", 4, "CAT", "C", 6)

        self.assertRaises(veffects.VariantCrossesExonBoundaryError,
                          self.transcript.check_for_overlapping_variants,
                          [variant5])