def passes_filters(self): """Checks whether a VCF variant passes user defined criteria. Returns: boolean value for whether the variant passes the filters """ # some CNVs are on female Y chrom, which give errors, fail those CNVs try: self.set_genotype() except ValueError: return False # we rely on the CALLSOURCE field to inform us what the CNV has been # called by. Raise an error if this is not present. assert "CALLSOURCE" in self.info track_variant = False if self.get_chrom() == self.debug_chrom and self.get_position() == self.debug_pos: track_variant = True passes = True if "aCGH" in self.info["CALLSOURCE"]: filt = ACGH_CNV(self) passes = filt.filter_cnv(track_variant) elif "EXOME" in self.info["CALLSOURCE"]: # currently return false for all exome-only CNVs, undergoing testing filt = ExomeCNV(self) passes = filt.filter_cnv(track_variant) else: if track_variant: print("CNV is not an aCGH or exome CNV") passes = False return passes
def setUp(self): """ define a default VcfInfo object """ extra = "HGNC=OR5A1;CQ=missense_variant;CONVEX;RC50INTERNALFREQ=0.005;COMMONFORWARDS=0.000;MEANLR2=0.5;MADL2R=0.02" cnv = create_cnv('F', 'deNovo', extra_info=extra) self.var = ExomeCNV(cnv)
def setUp(self): """ define a default VcfInfo object """ chrom = "1" pos = "15000000" snp_id = "." ref = "A" alt = "<DUP>" filt = "PASS" # set up a SNV object, since SNV inherits VcfInfo cnv = CNV(chrom, pos, snp_id, ref, alt, filt) self.var = ExomeCNV(cnv) info = "HGNC=TEST;HGNC_ALL=TEST,OR5A1;CQ=missense_variant;CONVEX;RC50INTERNALFREQ=0.005;COMMONFORWARDS=0.000;MEANLR2=0.5;MADL2R=0.02" format_keys = "inheritance:DP" sample_values = "deNovo:50" self.var.cnv.add_info(info) self.var.cnv.add_format(format_keys, sample_values) self.var.cnv.set_gender("F")
def passes_filters(self): """Checks whether a VCF variant passes user defined criteria. Returns: boolean value for whether the variant passes the filters """ # some CNVs are on female Y chrom, which give errors, fail those CNVs try: self.set_genotype() except ValueError: return False track_variant = False if self.get_chrom() == self.debug_chrom and self.get_position( ) == self.debug_pos: track_variant = True passes = True if "CONVEX" in self.info and "CNSOLIDATE" not in self.info: # currently return false for all exome-only CNVs, undergoing testing filt = ExomeCNV(self) # passes = filt.filter_cnv(track_variant) passes = False elif "CNSOLIDATE" in self.info: filt = ACGH_CNV(self) passes = filt.filter_cnv(track_variant) elif "BREAKDANCER" in self.info: filt = BreakdancerCNV(self) passes = filt.filter_cnv(track_variant) else: if track_variant: print("CNV is not an aCGH or exome CNV") passes = False return passes