Exemple #1
0
def split_MNP_variant(var, include_ref_calls=False):
    if var.type != variant.TYPE_MNP:
        yield var
    else:
        for index, (ref, alt) in enumerate(zip(var.ref, var.alt)):
            if ref != alt or include_ref_calls:
                yield variant.Variant(var.chrom, index + var.pos_from, ref, alt)
Exemple #2
0
 def test_variant_from_vcf(self):
     chrom = "blah"
     pos = 21
     ref = "hell"
     alt = "heaven"
     self.assertEqual(variant_from_vcf(chrom, pos, ref, alt),
                      variant.Variant(chrom, 20, ref, alt))
Exemple #3
0
def variant_from_vcf(chrom_column, pos_column, ref_column, alt_column):
    return variant.Variant(
        chrom_column,
        from_vcf_str(
            pos_column,
            int) - 1,
        ref_column,
        alt_column)
Exemple #4
0
 def test_eq(self):
     reference = variant.Variant("1", 10, "ACGT", "ACC")
     self.assertEqual(reference, variant.Variant("1", 10, "ACGT", "ACC"))
     self.assertNotEqual(reference, variant.Variant("2", 10, "ACGT", "ACC"))
     self.assertNotEqual(reference, variant.Variant("1", 11, "ACGT", "ACC"))
     self.assertNotEqual(reference, variant.Variant("1", 10, "ACGC", "ACC"))
     self.assertNotEqual(reference, variant.Variant("1", 10, "ACGT", "ACT"))
Exemple #5
0
 def test_lt(self):
     reference = variant.Variant("1", 10, "ACGT", "ACC")
     self.assertFalse(reference < reference)
     self.assertGreaterEqual(reference,
                             variant.Variant("1", 10, "ACGT", "ACC"))
     self.assertLess(reference, variant.Variant("2", 10, "ACGT", "ACC"))
     self.assertLess(reference, variant.Variant("1", 11, "ACGT", "ACC"))
     self.assertLess(reference, variant.Variant("1", 10, "CCGT", "ACC"))
     self.assertLess(reference, variant.Variant("1", 10, "ACGT", "ACT"))
Exemple #6
0
 def test_ne(self):
     """
     Note: self.assert[Not]Equal() doesn't work in this case.
     """
     reference = variant.Variant("1", 10, "ACGT", "ACC")
     self.assertFalse(reference != variant.Variant("1", 10, "ACGT", "ACC"))
     self.assertTrue(reference != variant.Variant("2", 10, "ACGT", "ACC"))
     self.assertTrue(reference != variant.Variant("1", 11, "ACGT", "ACC"))
     self.assertTrue(reference != variant.Variant("1", 10, "ACGC", "ACC"))
     self.assertTrue(reference != variant.Variant("1", 10, "ACGT", "ACT"))
Exemple #7
0
 def test_split_MNP_variant(self):
     chrom = "blah"
     pos = 21
     ref = "hell"
     alt = "beli"
     var = variant.Variant(chrom, pos, ref, alt)
     self.assertEqual(list(split_MNP_variant(var)), [
         variant.Variant(chrom, pos, ref[0], alt[0]),
         variant.Variant(chrom, pos + 3, ref[3], alt[3]),
     ])
     self.assertEqual(list(split_MNP_variant(var, include_ref_calls=True)),
                      [
                          variant.Variant(chrom, pos, ref[0], alt[0]),
                          variant.Variant(chrom, pos + 1, ref[1], alt[1]),
                          variant.Variant(chrom, pos + 2, ref[2], alt[2]),
                          variant.Variant(chrom, pos + 3, ref[3], alt[3]),
                      ])
Exemple #8
0
 def with_variant(self, chrom, pos_from, ref, alt):
     return self.with_record(
         self.generate_record_from_variant(
             variant.Variant(chrom, pos_from, ref, alt)))
Exemple #9
0
def trim_variant(var):
    start_offset, ref, alt = trimmed_vcf_ref_alt(var.ref, var.alt)
    return variant.Variant(var.chrom, start_offset + var.pos_from, ref, alt)
Exemple #10
0
 def test_should_overlap_mnp_at_region_end(self):
     mnp = variant.Variant('1', 15, 'ACGT', 'GCGC')
     self.assertTrue(mnp.overlap(ChromInterval('1', 15, 16)))
Exemple #11
0
 def test_as_key(self):
     variant_obj = variant.Variant("1", 10, "ACGT", "ACC")
     expected_key = ("1", 10, 14, "ACGT", "ACC")
     self.assertEqual(hash(expected_key), hash(variant_obj),
                      "Variant hash is broken.")
Exemple #12
0
 def test_should_not_overlap_mnp_after_region(self):
     mnp = variant.Variant('1', 15, 'ACGT', 'GCGC')
     self.assertFalse(mnp.overlap(ChromInterval('1', 19, 20)))
Exemple #13
0
 def test_should_overlap_deletion_at_region_end(self):
     deletion = variant.Variant('1', 15, 'AAAAA', 'A')
     self.assertTrue(deletion.overlap(ChromInterval('1', 15, 16)))
Exemple #14
0
 def test_should_not_overlap_insertion_before_region(self):
     ins = variant.Variant('1', 15, 'A', 'AAAAA')
     self.assertFalse(ins.overlap(ChromInterval('1', 16, 20)))
Exemple #15
0
 def test_should_overlap_insertion_at_region_end(self):
     ins = variant.Variant('1', 15, 'A', 'AAAAA')
     self.assertTrue(ins.overlap(ChromInterval('1', 15, 16)))
Exemple #16
0
 def test_should_not_overlap_deletion_after_region(self):
     deletion = variant.Variant('1', 15, 'AAAAA', 'A')
     self.assertFalse(deletion.overlap(ChromInterval('1', 20, 21)))
Exemple #17
0
 def test_variant_type(self):
     chrom = "1"
     pos_from = 100
     self.assertEqual(
         variant.Variant(chrom, pos_from, 'T', '.').type, variant.TYPE_REF)
     self.assertEqual(
         variant.Variant(chrom, pos_from, 'C', 'C').type, variant.TYPE_REF)
     self.assertEqual(
         variant.Variant(chrom, pos_from, 'CTC', 'CTC').type,
         variant.TYPE_REF)
     self.assertEqual(
         variant.Variant(chrom, pos_from, 'T', 'TA').type, variant.TYPE_INS)
     self.assertEqual(
         variant.Variant(chrom, pos_from, 'CTG', 'CTAG').type,
         variant.TYPE_INS)
     self.assertEqual(
         variant.Variant(chrom, pos_from, 'TA', 'A').type, variant.TYPE_DEL)
     self.assertEqual(
         variant.Variant(chrom, pos_from, 'AT', 'A').type, variant.TYPE_DEL)
     self.assertEqual(
         variant.Variant(chrom, pos_from, 'T', 'A').type, variant.TYPE_SNP)
     self.assertEqual(
         variant.Variant(chrom, pos_from, 'TGT', 'AGT').type,
         variant.TYPE_SNP)
     self.assertEqual(
         variant.Variant(chrom, pos_from, 'TGTT', 'TGAT').type,
         variant.TYPE_SNP)
     self.assertEqual(
         variant.Variant(chrom, pos_from, 'AGTT', 'TGAT').type,
         variant.TYPE_MNP)
     self.assertEqual(
         variant.Variant(chrom, pos_from, 'AGTTATAT', 'TGATAAAT').type,
         variant.TYPE_MNP)
     self.assertEqual(
         variant.Variant(chrom, pos_from, 'A', '<INS:ME_ALU>').type,
         variant.TYPE_SYM)