cole-trapnell-lab / cufflinks

Boost Software License 1.0
307 stars 116 forks source link

Cufflinks/cuffdiff fails for demo data set #13

Open standage opened 9 years ago

standage commented 9 years ago

I took a 150kb region from H. saltator and simulated Illumina reads from the transcripts encoded in that region. The idea was to use the data for instruction: teach the students basic RNA-seq analysis with Bowtie/Tophat/Cufflinks. See the data set on figshare.

All of the data files are included in the tar.gz file, and the run.sh file shows the processing procedure. If I run the shell script as-is, it fails non-deterministically on one of the Cufflinks commands (never the same one). I can fix this by taking out the --frag-len-mean and --frag-len-std-dev options, which I put in when the program complained that it was having a hard time estimating these from limited data. So without these options, Tophat, Cufflinks, and Cuffmerge will execute successfully, but then Cuffdiff will segfault. Any idea what the issue might be?

I'm using Bowtie2 2.2.4, Tophat 2.0.13, and Cufflinks 2.2.1 on Mac OS 10.10.2.

ctrapnell commented 9 years ago

Are you using the precompiled binaries for Cufflinks?

standage commented 9 years ago

Yes.

ctrapnell commented 8 years ago

So I'm no longer able to reproduce this with Bowtie 2.2.5, TopHat 2.1.0, and the current head of the develop branch. Have you tried with a recent build from source?

standage commented 8 years ago

Sorry, this is hard to test at the moment. I updated Bowtie2 and Tophat, but without updating Cufflinks I'm still seeing the problem. Building from source is a bit more involved, and it may take a few days for me to brave the build instructions.

standage commented 8 years ago

It's been a mess, but I've been able to install the prerequisites (including the outdated Boost 1.55 alongside the latest Boost) without breaking anything else on my system. However, make fails on its final steps--it appears unable to link to the libbam library.

g++  -Wall -Wno-strict-aliasing -g -gdwarf-2 -Wunused -Wuninitialized -ftemplate-depth-1024 -m64 -O3  -DNDEBUG  -pthread -I/usr/local/opt/boost155/include -I/usr/local/include -I/usr/local/include/Eigen/include -L/usr/local/opt/samtools/lib -L/usr/local/opt/boost155/lib -L/usr/local/lib  -L/usr/local/opt/samtools/lib -o gtf_to_sam gtf_to_sam.o libcufflinks.a libgc.a -lboost_thread-mt -lboost_system-mt -lboost_serialization-mt -lbam -lz
...
...
skipping 1000s of lines of warning messages
...
...
Undefined symbols for architecture x86_64:
Undefined symbols for architecture x86_64:
  "_bam_aux2A", referenced from:
  "_bam_aux2A", referenced from:
      BAMHitFactory::get_hit_from_buf(char const*, ReadHit&, bool, char*, char*) in libcufflinks.a(hits.o)
      BAMHitFactory::get_hit_from_buf(char const*, ReadHit&, bool, char*, char*) in libcufflinks.a(hits.o)
  "_bam_aux2i", referenced from:
  "_bam_aux2i", referenced from:
      BAMHitFactory::get_hit_from_buf(char const*, ReadHit&, bool, char*, char*) in libcufflinks.a(hits.o)
      BAMHitFactory::get_hit_from_buf(char const*, ReadHit&, bool, char*, char*) in libcufflinks.a(hits.o)
  "_bam_aux_get", referenced from:
  "_bam_aux_get", referenced from:
      BAMHitFactory::get_hit_from_buf(char const*, ReadHit&, bool, char*, char*) in libcufflinks.a(hits.o)
      BAMHitFactory::get_hit_from_buf(char const*, ReadHit&, bool, char*, char*) in libcufflinks.a(hits.o)
  "_bam_destroy1", referenced from:
  "_bam_destroy1", referenced from:
      _sampileup in libbam.a(sam.o)
      _sampileup in libbam.a(sam.o)
  "_bam_hdr_destroy", referenced from:
  "_bam_hdr_destroy", referenced from:
      _samclose in libbam.a(sam.o)
      _samclose in libbam.a(sam.o)
  "_bam_init1", referenced from:
  "_bam_init1", referenced from:
      _sampileup in libbam.a(sam.o)
      _sampileup in libbam.a(sam.o)
  "_bam_plp_destroy", referenced from:
  "_bam_plp_destroy", referenced from:
      _bam_plbuf_destroy in libbam.a(bam_plbuf.o)
      _bam_plbuf_destroy in libbam.a(bam_plbuf.o)
  "_bam_plp_init", referenced from:
  "_bam_plp_init", referenced from:
      _bam_plbuf_init in libbam.a(bam_plbuf.o)
      _bam_plbuf_init in libbam.a(bam_plbuf.o)
  "_bam_plp_next", referenced from:
  "_bam_plp_next", referenced from:
      _bam_plbuf_push in libbam.a(bam_plbuf.o)
      _bam_plbuf_push in libbam.a(bam_plbuf.o)
  "_bam_plp_push", referenced from:
  "_bam_plp_push", referenced from:
      _bam_plbuf_push in libbam.a(bam_plbuf.o)
      _bam_plbuf_push in libbam.a(bam_plbuf.o)
  "_bam_plp_reset", referenced from:
  "_bam_plp_reset", referenced from:
      _bam_plbuf_reset in libbam.a(bam_plbuf.o)
      _bam_plbuf_reset in libbam.a(bam_plbuf.o)
  "_bgzf_mt", referenced from:
  "_bgzf_mt", referenced from:
      _samthreads in libbam.a(sam.o)
      _samthreads in libbam.a(sam.o)
  "_bgzf_seek", referenced from:
  "_bgzf_seek", referenced from:
      BAMHitFactory::reset() in libcufflinks.a(hits.o)
      BAMHitFactory::undo_hit() in libcufflinks.a(hits.o)
      BAMHitFactory::reset() in libcufflinks.a(hits.o)
      BAMHitFactory::undo_hit() in libcufflinks.a(hits.o)
  "_fai_build", referenced from:
  "_fai_build", referenced from:
      _samfaipath in libbam.a(sam.o)
      _samfaipath in libbam.a(sam.o)
  "_hts_close", referenced from:
  "_hts_close", referenced from:
      _samclose in libbam.a(sam.o)
      _samclose in libbam.a(sam.o)
  "_hts_get_format", referenced from:
  "_hts_get_format", referenced from:
      _samthreads in libbam.a(sam.o)
      _samopen in libbam.a(sam.o)
      _samthreads in libbam.a(sam.o)
      _samopen in libbam.a(sam.o)
  "_hts_open", referenced from:
  "_hts_open", referenced from:
      _samopen in libbam.a(sam.o)
      _samopen in libbam.a(sam.o)
  "_hts_set_fai_filename", referenced from:
  "_hts_set_fai_filename", referenced from:
      _samopen in libbam.a(sam.o)
      _samopen in libbam.a(sam.o)
  "_hts_verbose", referenced from:
  "_hts_verbose", referenced from:
      _samopen in libbam.a(sam.o)
      _samfaipath in libbam.a(sam.o)
      _samopen in libbam.a(sam.o)
      _samfaipath in libbam.a(sam.o)
  "_sam_hdr_read", referenced from:
  "_sam_hdr_read", referenced from:
      _samopen in libbam.a(sam.o)
      _samopen in libbam.a(sam.o)
  "_sam_hdr_write", referenced from:
  "_sam_hdr_write", referenced from:
      _samopen in libbam.a(sam.o)
      _samopen in libbam.a(sam.o)
  "_sam_read1", referenced from:
  "_sam_read1", referenced from:
      BAMHitFactory::next_record(char const*&, unsigned long&) in libcufflinks.a(hits.o)
      BAMHitFactory::next_record(char const*&, unsigned long&) in libcufflinks.a(hits.o)
      _sampileup in libbam.a(sam.o)
      _sampileup in libbam.a(sam.o)
ld: symbol(s) not found for architecture x86_64
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Samtools is installed in the default location, so I have no idea what the issue is.

$ ls /usr/local/include/bam
bam.h         bam_endian.h  bam_plbuf.h   errmod.h      sam.h         sample.h      stats_isize.h
bam2bcf.h     bam_lpileup.h bam_tview.h   kprobaln.h    sam_header.h  samtools.h    version.h
$
$ ls /usr/local/lib/libbam.a 
/usr/local/lib/libbam.a
ajoweida commented 7 years ago

I have now tried to install cufflinks on 2 separate mac systems and ended up with the same problem above. Has this issue been resolved?