code: def cufflinks(args):
      
      p = OptionParser(cufflinks.__doc__)
      p.add_option("--gtf", help="Reference annotation [default: %default]")
      p.set_cpus()
      opts, args = p.parse_args(args)
  
      if len(args) != 2:
          sys.exit(not p.print_help())
  
      folder, reference = args
      cpus = opts.cpus
      gtf = opts.gtf
      transcripts = "transcripts.gtf"
  
      mm = MakeManager()
      gtfs = []
      for bam in iglob(folder, "*.bam"):
          pf = op.basename(bam).split(".")[0]
          outdir = pf + "_cufflinks"
          cmd = "cufflinks"
          cmd += " -o {0}".format(outdir)
          cmd += " -p {0}".format(cpus)
          if gtf:
              cmd += " -g {0}".format(gtf)
          cmd += " --frag-bias-correct {0}".format(reference)
          cmd += " --multi-read-correct"
          cmd += " {0}".format(bam)
          cgtf = op.join(outdir, transcripts)
          mm.add(bam, cgtf, cmd)
          gtfs.append(cgtf)
  
      assemblylist = "assembly_list.txt"
      cmd = 'find . -name "{0}" > {1}'.format(transcripts, assemblylist)
      mm.add(gtfs, assemblylist, cmd)
  
      mergedgtf = "merged/merged.gtf"
      cmd = "cuffmerge"
      cmd += " -o merged"
      cmd += " -p {0}".format(cpus)
      if gtf:
          cmd += " -g {0}".format(gtf)
      cmd += " -s {0}".format(reference)
      cmd += " {0}".format(assemblylist)
      mm.add(assemblylist, mergedgtf, cmd)
  
      mm.write()
docs: %prog cufflinks folder reference
  
      Run cufflinks on a folder containing tophat results.