code: def picard_merge(picard, in_files, out_file=None,
                   merge_seq_dicts=False):
      
      if out_file is None:
          out_file = "%smerge.bam" % os.path.commonprefix(in_files)
      if not file_exists(out_file):
          with tx_tmpdir(picard._config) as tmp_dir:
              with file_transaction(picard._config, out_file) as tx_out_file:
                  opts = [("OUTPUT", tx_out_file),
                          ("SORT_ORDER", "coordinate"),
                          ("MERGE_SEQUENCE_DICTIONARIES",
                           "true" if merge_seq_dicts else "false"),
                          ("USE_THREADING", "true"),
                          ("TMP_DIR", tmp_dir)]
                  for in_file in in_files:
                      opts.append(("INPUT", in_file))
                  picard.run("MergeSamFiles", opts)
      return out_file
docs: Merge multiple BAM files together with Picard.