Source code for vcfparser.vcf_writer

[docs]class VCFWriter: """ A vcf writer to write headerline and datalines into new file """ def __init__(self, filename): self.w_file = open(filename, "a")
[docs] def add_normal_metadata(self, key, value): """ This is used to add normal key value metadata like: fileformat, filedate, refrence """ print(f"##{key}= {value}\n", file=self.w_file)
[docs] def add_info(self, id, num=".", type=".", desc="", key="INFO"): print( f'##{key}=<ID={id},Number={num},Type={type},Description="{desc}">\n', file=self.w_file, )
[docs] def add_format(self, id, num=".", type=".", desc="", key="FORMAT"): print( f'##{key}=<ID={id},Number={num},Type={type},Description="{desc}">\n', file=self.w_file, )
[docs] def add_filter(self, id, desc="", key="FILTER"): print(f'##{key}=<ID={id},Description="{desc}">\n', file=self.w_file)
[docs] def add_filter_long(self, id, num=".", type=".", desc="", key="FILTER"): print( f'##{key}=<ID={id},Number={num},Type={type},Description="{desc}">\n', file=self.w_file, )
[docs] def add_contig(self, id, length, key="contig"): # Example contig: ##contig=<ID=scaffold_591,length=5806> print(f"##{key}=<ID={id}, length={length}>\n", file=self.w_file)
[docs] def add_header_line(self, record_keys): print(f"{record_keys}", sep="\t", file=self.w_file)
[docs] def add_record_value(self, preheader, info, format_, sample_str): print(f"{preheader}", sep="\t", end="\t", file=self.w_file) print(f"{info}", sep="\t", end="\t", file=self.w_file) print(f"{format_}", sep="\t", end="\t", file=self.w_file) print(f"{sample_str}", sep="\t", end="\t", file=self.w_file)