code: def picard_sort(picard, align_bam, sort_order="coordinate",
                  out_file=None, compression_level=None, pipe=False):
      base, ext = os.path.splitext(align_bam)
      if out_file is None:
          out_file = "%s-sort%s" % (base, ext)
      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 = [("INPUT", align_bam),
                          ("OUTPUT", out_file if pipe else tx_out_file),
                          ("TMP_DIR", tmp_dir),
                          ("SORT_ORDER", sort_order)]
                  if compression_level:
                      opts.append(("COMPRESSION_LEVEL", compression_level))
                  picard.run("SortSam", opts, pipe=pipe)
      return out_file