code: def to_vcf(in_file, caller, header_fn, vcf_fn, data, sep="\t"):
      
      out_file = "%s.vcf" % utils.splitext_plus(in_file)[0]
      if not utils.file_exists(out_file + ".gz") and not utils.file_exists(out_file):
          with file_transaction(data, out_file) as tx_out_file:
              with open(in_file) as in_handle:
                  with open(tx_out_file, "w") as out_handle:
                      out_handle.write(_vcf_header.format(caller=caller))
                      out_handle.write("\t".join(["#CHROM", "POS", "ID", "REF", "ALT", "QUAL",
                                                  "FILTER", "INFO", "FORMAT", dd.get_sample_name(data)]) + "\n")
                      header, in_handle = header_fn(in_handle)
                      for line in in_handle:
                          out = vcf_fn(dict(zip(header, line.strip().split(sep))))
                          if out:
                              out_handle.write("\t".join(out) + "\n")
      out_file = vcfutils.bgzip_and_index(out_file, data["config"])
      effects_vcf, _ = effects.add_to_vcf(out_file, data, "snpeff")
      return effects_vcf or out_file
docs: Convert output TitanCNA segs file into bgzipped VCF.