code: def _call_hla(hla_fq, out_dir, data):
      
      bin_dir = os.path.dirname(os.path.realpath(sys.executable))
      out_dir = utils.safe_makedir(out_dir)
      with tx_tmpdir(data, os.path.dirname(out_dir)) as tx_out_dir:
          config_file = os.path.join(tx_out_dir, "config.ini")
          with open(config_file, "w") as out_handle:
              razers3 = os.path.join(bin_dir, "razers3")
              if not os.path.exists(razers3):
                  raise ValueError("Could not find razers3 executable at %s" % (razers3))
              out_handle.write(CONFIG_TMPL.format(razers3=razers3, cores=dd.get_cores(data)))
          resources = config_utils.get_resources("optitype", data["config"])
          if resources.get("options"):
              opts = " ".join([str(x) for x in resources["options"]])
          else:
              opts = ""
          cmd = ("OptiTypePipeline.py -v --dna {opts} -o {tx_out_dir} "
                  "-i {hla_fq} -c {config_file}")
          do.run(cmd.format(**locals()), "HLA typing with OptiType")
          for outf in os.listdir(tx_out_dir):
              shutil.move(os.path.join(tx_out_dir, outf), os.path.join(out_dir, outf))
      out_file = glob.glob(os.path.join(out_dir, "*", "*_result.tsv"))
      assert len(out_file) == 1, "Expected one result file for OptiType, found %s" % out_file
      return out_file[0]
docs: Run OptiType HLA calling for a specific fastq input.