Exemplo n.º 1
0
    def get_parental_var(self, var, parental_vars, gender, matcher):
        """ get the corresponding parental variant to a childs variant, or
        create a default variant with reference genotype.
        
        Args:
            var: childs var, as Variant object
            parental_vars: list of parental variants
            gender: gender of the parent
            matcher: cnv matcher for parent
        
        Returns:
            returns a Variant object, matched to the proband's variant
        """

        key = var.get_key()

        # if the variant is a CNV, the corresponding variant might not match
        # the start site, so we look a variant that overlaps
        if isinstance(var, CNV) and matcher.has_match(var):
            key = matcher.get_overlap_key(key)

        for parental in parental_vars:
            if key == parental.get_key():
                return parental

        # if the childs variant does not exist in the parents VCF, then we
        # create a default variant for the parent
        if isinstance(var, CNV):
            parental = CNV(var.chrom, var.position, var.variant_id,
                           var.ref_allele, var.alt_allele, var.filter)
        else:
            parental = SNV(var.chrom, var.position, var.variant_id,
                           var.ref_allele, var.alt_allele, var.filter)

        parental.set_gender(gender)
        parental.set_default_genotype()

        return parental
Exemplo n.º 2
0
 def get_parental_var(self, var, parental_vars, gender, matcher):
     """ get the corresponding parental variant to a childs variant, or
     create a default variant with reference genotype.
     
     Args:
         var: childs var, as Variant object
         parental_vars: list of parental variants
         gender: gender of the parent
         matcher: cnv matcher for parent
     
     Returns:
         returns a Variant object, matched to the proband's variant
     """
     
     key = var.get_key()
     
     # if the variant is a CNV, the corresponding variant might not match
     # the start site, so we look a variant that overlaps
     if isinstance(var, CNV) and matcher.has_match(var):
         key = matcher.get_overlap_key(key)
         
     for parental in parental_vars:
         if key == parental.get_key():
             return parental
     
     # if the childs variant does not exist in the parents VCF, then we
     # create a default variant for the parent
     if isinstance(var, CNV):
         parental = CNV(var.chrom, var.position, var.variant_id, var.ref_allele, var.alt_allele, var.filter)
     else:
         parental = SNV(var.chrom, var.position, var.variant_id, var.ref_allele, var.alt_allele, var.filter)
     
     parental.set_gender(gender)
     parental.set_default_genotype()
     
     return parental