code: def assemble_transcripts(run_parallel, samples):
      
      assembler = dd.get_in_samples(samples, dd.get_transcript_assembler)
      data = samples[0][0]
      if assembler:
          if "cufflinks" in assembler:
              samples = run_parallel("cufflinks_assemble", samples)
          if "stringtie" in assembler:
              samples = run_parallel("run_stringtie_expression", samples)
          if "stringtie" in assembler and stringtie.supports_merge(data):
              samples = run_parallel("stringtie_merge", [samples])
          else:
              samples = run_parallel("cufflinks_merge", [samples])
      return samples
docs: assembly strategy rationale implemented as suggested in
      http://www.nature.com/nprot/journal/v7/n3/full/nprot.2012.016.html
  
      run Cufflinks in without a reference GTF for each individual sample
      merge the assemblies with Cuffmerge using a reference GTF