def load_genotypes(self, Structural_Variant=None, SVs=None, Ped=None, ids=None, gen=None, no_anno=None, tmp_dir=None): svs = BedTool( list( set([(format_chrom(x[0]), x[1], x[2]) for x in Structural_Variant.raw]))).sort() if no_anno == False: Annot = Annotation() Annot.check_overlap(svs, Structural_Variant.raw, gen, tmp_dir) self.Annotations = Annot for locus in SVs: Variant = SVs[locus] self.quals[locus] = Variant.med_ref, Variant.med_alt self.filters[ locus] = Variant.standard_filter, Variant.denovo_filter for sample_id in ids: gt = './.' if (locus[0] == 'chrX' or locus[0] == 'chrY') and Ped.males.get( sample_id ) != None and Structural_Variant.par[locus] == False: gt = '.' if Variant.gt.get(locus + (sample_id, )) != None: gt = Variant.gt[locus + (sample_id, )] for allele in gt.split(':').pop(0).split('/'): if allele == '.': continue if self.allele_freq.get(locus) == None: self.allele_freq[locus] = [int(allele), 1] else: self.allele_freq[locus] = [ self.allele_freq[locus][0] + int(allele), self.allele_freq[locus][1] + 1 ] if self.genotypes.get(locus) == None: self.genotypes[locus] = [gt] else: self.genotypes[locus].append(gt)