def __init__(self, filename, reference=None): if not os.path.isfile(filename) and filename != "-": exit(message("Error: " + filename + " does not exist")) self.filename = filename if reference: self.reference = reference self.reference_file = resolve_reference_genome(reference) cyvcf2.__init__(self, self.filename) # Check if file exists self.n = len(self.samples) # Number of Samples # Meta Data comp = re.compile(r'''^##(?P<key>[^<#]+?)=(?P<val>[^<#]+$)''', re.M) self.metadata = OrderedDict(comp.findall(self.raw_header)) # Contigs self.contigs = OrderedDict( list( zip( re.compile("##contig=<ID=(.*?),").findall(self.raw_header), list( map( int, re.compile("##contig.*length=([^,>]*?)>").findall( self.raw_header)))))) self.info_set = [x for x in self.header_iter() if x.type == "INFO"] self.filter_set = [x for x in self.header_iter() if x.type == "FILTER"] self.format_set = [x for x in self.header_iter() if x.type == "FORMAT"] self.header = copy(self.raw_header)
def __init__(self, filename, reference=None): if not os.path.isfile(filename) and filename != "-": exit(message("Error: " + filename + " does not exist")) self.filename = filename if reference: self.reference = reference self.reference_file = resolve_reference_genome(reference) cyvcf2.__init__(self, self.filename) # Check if file exists self.n = len(self.samples) # Number of Samples # Meta Data comp = re.compile(r'''^##(?P<key>[^<#]+?)=(?P<val>[^<#]+$)''', re.M) self.metadata = OrderedDict(comp.findall(self.raw_header)) # Contigs self.contigs = OrderedDict(zip( re.compile("##contig=<ID=(.*?),").findall(self.raw_header), map(int, re.compile("##contig.*length=([^,>]*?)>").findall(self.raw_header)) )) self.info_set = [x for x in self.header_iter() if x.type == "INFO"] self.filter_set = [x for x in self.header_iter() if x.type == "FILTER"] self.format_set = [x for x in self.header_iter() if x.type == "FORMAT"] self.header = copy(self.raw_header)
def __init__(self, filename, reference=None, use_template="ALT", polymorphic=True): if not filename.startswith("http") and not os.path.isfile( filename) and filename != "-": exit(message(f"Error: {filename} does not exist", color='red')) self.filename = filename self.use_template = use_template self.use_polymorphic = polymorphic if reference: self.reference = reference self.reference_file = resolve_reference_genome(reference) cyvcf2.__init__(self, self.filename) # Check if file exists self.n = len(self.samples) # Number of Samples # Meta Data comp = re.compile(r'''^##(?P<key>[^<#]+?)=(?P<val>[^<#]+$)''', re.M) self.metadata = OrderedDict(comp.findall(self.raw_header)) # Contigs self.contigs = OrderedDict( list( zip( re.compile("##contig=<ID=(.*?),").findall(self.raw_header), list( map( int, re.compile("##contig.*length=(.*?)>").findall( self.raw_header)))))) self.info_set = [x for x in self.header_iter() if x.type == "INFO"] self.filter_set = [x for x in self.header_iter() if x.type == "FILTER"] self.format_set = [x for x in self.header_iter() if x.type == "FORMAT"] self.header = copy(self.raw_header) # Make sure index exists for this VCF. if not self.filename.startswith("http") and not os.path.isfile( self.filename + ".csi"): message("VCF is not indexed; Indexing.") comm = "bcftools index {f}".format(f=self.filename) out = check_output(comm, shell=True) message(out.decode("utf-8")) # Setup use_template if self.use_template not in self.samples + ["REF", "ALT"]: exit(message(self.use_template + " use_template not found."))
def __init__(self, *args, **kwargs): from cyvcf2 import VCF VCF.__init__(self, *args, **kwargs, strict_gt=True) self.sample_mapping = dict(zip(self.samples, range(len(self.samples))))