code: def augustus(args):
      
      p = OptionParser(augustus.__doc__)
      p.add_option("--species", default="maize",
                   help="Use species model for prediction")
      p.add_option("--hintsfile", help="Hint-guided AUGUSTUS")
      p.add_option("--nogff3", default=False, action="store_true",
                   help="Turn --gff3=off")
      p.set_home("augustus")
      p.set_cpus()
      opts, args = p.parse_args(args)
  
      if len(args) != 1:
          sys.exit(not p.print_help())
  
      fastafile, = args
      cpus = opts.cpus
      mhome = opts.augustus_home
      gff3 = not opts.nogff3
      suffix = ".gff3" if gff3 else ".out"
      cfgfile = op.join(mhome, "config/extrinsic/extrinsic.M.RM.E.W.cfg")
  
      outdir = mkdtemp(dir=".")
      fs = split([fastafile, outdir, str(cpus)])
  
      augustuswrap_params = partial(augustuswrap, species=opts.species,
                              gff3=gff3, cfgfile=cfgfile,
                              hintsfile=opts.hintsfile)
      g = Jobs(augustuswrap_params, fs.names)
      g.run()
  
      gff3files = [x.rsplit(".", 1)[0] + suffix for x in fs.names]
      outfile = fastafile.rsplit(".", 1)[0] + suffix
      FileMerger(gff3files, outfile=outfile).merge()
      shutil.rmtree(outdir)
  
      if gff3:
          from jcvi.annotation.reformat import augustus as reformat_augustus
          reformat_outfile = outfile.replace(".gff3", ".reformat.gff3")
          reformat_augustus([outfile, "--outfile={0}".format(reformat_outfile)])
docs: %prog augustus fastafile
  
      Run parallel AUGUSTUS. Final results can be reformatted using
      annotation.reformat.augustus().