code: def picard_fix_rgs(picard, in_bam, names):
      out_file = "%s-fixrgs.bam" % os.path.splitext(in_bam)[0]
      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", in_bam),
                          ("OUTPUT", tx_out_file),
                          ("SORT_ORDER", "coordinate"),
                          ("RGID", names["rg"]),
                          ("RGLB", names.get("lb", "unknown")),
                          ("RGPL", names["pl"]),
                          ("RGPU", names["pu"]),
                          ("RGSM", names["sample"]),
                          ("TMP_DIR", tmp_dir)]
                  picard.run("AddOrReplaceReadGroups", opts)
      return out_file