code: def dedup_bam(in_bam, data):
      
      if _check_dedup(data):
          out_file = os.path.join(utils.safe_makedir(os.path.join(os.getcwd(), "align", dd.get_sample_name(data))),
                                  "%s-dedup%s" % utils.splitext_plus(os.path.basename(in_bam)))
          if not utils.file_exists(out_file):
              with tx_tmpdir(data) as tmpdir:
                  with file_transaction(data, out_file) as tx_out_file:
                      bammarkduplicates = config_utils.get_program("bammarkduplicates", data["config"])
                      base_tmp = os.path.join(tmpdir, os.path.splitext(os.path.basename(tx_out_file))[0])
                      cores, mem = _get_cores_memory(data, downscale=2)
                      cmd = ("{bammarkduplicates} tmpfile={base_tmp}-markdup "
                             "markthreads={cores} I={in_bam} O={tx_out_file}")
                      do.run(cmd.format(**locals()), "De-duplication with biobambam")
          bam.index(out_file, data["config"])
          return out_file
      else:
          return in_bam
docs: Perform non-stream based deduplication of BAM input files using biobambam.