code: def _delly_count_evidence_filter(in_file, data):
      
      filtname = "DVSupport"
      filtdoc = "FMT/DV < 4 || (SR < 1 && PE < 5) || (SR < 5 && PE < 1)"
      out_file = "%s-filter%s" % utils.splitext_plus(in_file)
      cur_out_file = out_file.replace(".vcf.gz", ".vcf")
      if not utils.file_exists(out_file):
          with file_transaction(data, cur_out_file) as tx_out_file:
              with utils.open_gzipsafe(in_file) as in_handle:
                  with open(tx_out_file, "w") as out_handle:
                      inp = vcf.Reader(in_handle, in_file)
                      inp.filters["DVSupport"] = vcf.parser._Filter(filtname, filtdoc)
                      outp = vcf.Writer(out_handle, inp)
                      for rec in inp:
                          sr = rec.INFO.get("SR", 0)
                          pe = rec.INFO.get("PE", 0)
                          call = rec.samples[0].data
                          dv = call.DV if hasattr(call, "DV") else 0
                          if dv < 4 or (sr < 1 and pe < 5) or (sr < 5 and pe < 1):
                              rec.add_filter(filtname)
                          outp.write_record(rec)
      if out_file.endswith(".vcf.gz"):
          out_file = vcfutils.bgzip_and_index(cur_out_file, data["config"])
      return out_file
docs: Filter delly outputs based on read support (DV) and evidence (split and paired).
  
      We require DV > 4 and either both paired end and split read evidence or
      5 or more evidence for either individually.