Beispiel #1
0
 def __init__(self, var_template: dict, transcript: Transcript):
     try:
         Variant.__init__(self, var_template, transcript)
         self.element = self.impact["ELEMENT"]
         self.pos = self.impact["START"]
         self.check_mei()
         # make mei
         region_range = self.get_region_range()
         if self.pos == "ANY": # pick any position within the ranges
             self.pos = random.choice(region_range)
         self.id = "_".join(["mei", str(self.pos+1), self.element])
         self.ref = self.get_seq(self.transcript.chrom, self.pos, self.pos+1, self.transcript.genome)
         self.alt = "<INS:MEI:"+self.element+">"
         self.zygosity = var_template["ZYGOSITY"]
     except Exception as e:
         raise(e)
 def __init__(self, var_template: dict, transcript: Transcript):
     try:
         Variant.__init__(self, var_template, transcript)
         self.chrom = self.transcript.get_chr()
         self.pos = self.impact["START"]
         self.end = self.impact["END"]
         self.copy_change = self.impact["COPY_CHANGE"]
         self.check_cnv()
         self.ref = self.get_anchor_position()
         if self.copy_change < 0:  # deletion
             self.alt = "<DEL>"
         else:
             self.alt = "<DUP:TANDEM>"
         self.id = "CNV_" + str(self.pos)
     except Exception as e:
         raise (e)
    def test_bad_formatting(self):
        variant = {
            "TYPE": "INDEL",
            "REGION": "INTRONIC",
            "CHECK": -8332,
            "ZYGOSITY": "HETEROZYGOUS"
        }

        with self.assertRaises(KeyError):
            Variant(variant, self.transcript)
Beispiel #4
0
 def __init__(self, var_template: dict, transcript: Transcript):
     try:
         Variant.__init__(self, var_template, transcript)
         self.id = self.impact["CLINVAR_ID"]
         clinvar = get_clinvar(self.transcript.get_genome(), self.id)
         if clinvar != []:
             self.pos = clinvar['start']
             self.ref = clinvar['qualifiers']['ref']
             self.alt = clinvar['qualifiers']['alt']
         else:  # no valid clinvar result
             raise ValueError("type must be CLINVAR_ID")
         if self.type != "CLINVAR":  # check type
             raise ValueError("type must be CLINVAR")
         if (len(self.ref) > 1):  # check location
             self.check_location(self.pos, self.pos + len(self.ref))
         elif (len(self.ref) == 1):
             self.check_location(self.pos)
     except Exception as e:
         raise (e)
 def test_region_pass(self):
     variant = {
         "TYPE": "INDEL",
         "REGION": "2:126-245",
         "IMPACT": {
             "INDEL_AMOUNT": -400,
             "LOCATION": "ANY"
         },
         "ZYGOSITY": "HETEROZYGOUS"
     }
     good_var = Variant(variant, self.transcript)
 def test_type_fail(self):
     variant = {
         "TYPE": "TEST",
         "REGION": "INTRONIC",
         "IMPACT": {
             "INDEL_AMOUNT": -400,
             "LOCATION": "ANY"
         },
         "ZYGOSITY": "HETEROZYGOUS"
     }
     with self.assertRaises(ValueError):
         Variant(variant, self.transcript)
 def test_region_fail2(self):
     variant = {
         "TYPE": "INDEL",
         "REGION": "2:126-245a",
         "IMPACT": {
             "INDEL_AMOUNT": -400,
             "LOCATION": "ANY"
         },
         "ZYGOSITY": "HETEROZYGOUS"
     }
     with self.assertRaises(ValueError):
         Variant(variant, self.transcript)
Beispiel #8
0
 def __init__(self, var_template, transcript: Transcript):
     """ initialize snv variant """
     try:
         Variant.__init__(self, var_template, transcript)
         self.snv_type = self.impact["SNV_TYPE"]
         self.pos = self.impact["START"]
         self.check_snv()
         if self.region == "CODING":
             if self.pos == "ANY":
                 var_dict = self.get_random_coding_SNV()
             else:
                 var_dict = self.get_directed_coding_SNV(self.pos)
         else:
             var_dict = self.get_non_coding_SNV(
             )  # just make change to this
         if var_dict == False:
             raise Exception("Specified SNV cannot be made")
         self.pos = var_dict["pos"]
         self.ref = str(var_dict["ref"])
         self.alt = str(var_dict["alt"])
     except Exception as e:
         raise (e)
Beispiel #9
0
 def __init__(self, var_template, transcript: Transcript):
     try:
         Variant.__init__(self, var_template, transcript)
         self.chrom = self.transcript.get_chr()
         STR = get_str(self.transcript.get_genome(),
                       int(self.impact["STR_ID"]))
         self.start = int(STR["start"])
         self.end = int(STR["end"])
         self.length = self.impact["LENGTH"]
         self.motif = STR["qualifiers"]["motif"]
         self.check_str()
         # get deletion/insersion
         if self.length > 0:  # insersion
             var_dict = self.get_expantion()
         if self.length < 0:  # deletion
             var_dict = self.get_retraction()
         self.pos = var_dict["pos"]
         self.ref = str(var_dict["ref"])
         self.alt = str(var_dict["alt"])
         self.id = "_".join(["str", str(self.pos), str(self.length)])
     except Exception as e:
         raise (e)
class VariantMethodTests(unittest.TestCase):
    XKR8_uid = get_all_transcripts("XKR8", "grch38")[0]["qualifiers"]["uid"]
    transcript = Transcript(XKR8_uid, "grch38")

    good_var = {
        "TYPE": "INDEL",
        "REGION": "INTRONIC",
        "IMPACT": {
            "INDEL_AMOUNT": -100,
            "LOCATION": "ANY"
        },
        "ZYGOSITY": "HETEROZYGOUS"
    }
    good_var = Variant(good_var, transcript)

    def test_get_type(self):
        self.assertEqual(self.good_var.get_type(), "INDEL")

    def test_get_region(self):
        self.assertEqual(self.good_var.get_region(), "INTRONIC")
Beispiel #11
0
 def make_variant(self, var, transcript):
     if var == "None":
         return None
     var_type = var["TYPE"]
     if var_type == "SNV":
         variant = SNV(var, transcript)
     elif var_type == "INDEL":
         variant = Indel(var, transcript)
     elif var_type == "STR":
         variant = ShortTandemRepeat(var, transcript)
     elif var_type == "MEI":
         variant = MEI(var, transcript)
     elif var_type == "CLINVAR":
         variant = ClinVar(var, transcript)
     elif var_type == "CNV":
         variant = CopyNumberVariant(var, transcript)
     elif var_type == "CLINGEN":
         variant = CopyNumberVariant(var, transcript)
     else:
         variant = Variant(var, transcript)
     return variant