This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Tophat on Debian Jessie installlation problem

I have a problem building tophat 2.1.0 on Debian jessie. Running configure does not seem to produce errors (see below) but running make causes fails with

#some output omitted here

Makefile:1347: recipe for target 'reads.o' failed
make[2]: *** [reads.o] Error 1
make[2]: Leaving directory '/home/pommy/inst/tophat-2.1.0/src'
Makefile:313: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/pommy/inst/tophat-2.1.0'
Makefile:253: recipe for target 'all' failed
make: *** [all] Error 2

Here are the configuration results

  • tophat 2.1.0 Configuration Results
  C++ compiler:        g++ -Wall -Wno-strict-aliasing -g -gdwarf-2 -Wuninitialized  -O3  -DNDEBUG -I./samtools-0.1.18 -pthread -I/home/pommy/include -I./SeqAn-1.3
  Linker flags:        -L./samtools-0.1.18 -L/home/pommy/lib
  BOOST libraries:     -lboost_thread -lboost_system
  GCC version:         gcc (Debian 4.9.2-10) 4.9.2
  Host System type:    x86_64-unknown-linux-gnu
  Install prefix:      /home/pommy
  Install eprefix:     ${prefix}
rna-seq software-error

The real error is in the omitted output. Try to locate it to find out what fails.

Ok here is the whole part corresponding to reads.o compilation. I don't understand where is the actual error

The cause is on the line that has the word 'error'. It could be an issue with the version of GCC you're using for compiling. In my experience, newer versions tend to be stricter and turn what was warnings for older versions into errors. Otherwise, it looks like it could be a bug in the software. You may want to contact the developers.

I think that it is probably related to TopHat's issue 7 on Github. On Debian, we solved it by building TopHat with a more recent version of SeqAn. I am preparing a backport for Jessie and will let you know when it is available.

Backport done (see my answer below)... and I just saw that TopHat 2.1.1 was released in the meantime !

3 answers

Solution found here: https://github.com/infphilo/tophat/pull/13

I managed compiling a fork that uses a newer SeqAn version:

git clone https://github.com/wookietreiber/tophat.git
cd tophat
git checkout update-seqan
./bootstrap
./configure <insert your options here>
make
make install

(See also https://groups.google.com/forum/#!topic/tuxedo-tools-users/M7Z9zLuu8o4)

For the record, I confirm the error for me on Debian:

                                                           ^
In file included from ./SeqAn-1.3/seqan/file.h:56:0,
                 from ./SeqAn-1.3/seqan/score/score_matrix.h:40,
                 from ./SeqAn-1.3/seqan/score.h:48,
                 from ./SeqAn-1.3/seqan/find.h:45,
                 from reads.cpp:22:
./SeqAn-1.3/seqan/file/file_generated_forwards.h: At global scope:
./SeqAn-1.3/seqan/file/file_generated_forwards.h:927:66: error: invalid abstract return type 'seqan::FileFormat<TFile, TData, TMeta, void>'
 template <typename TFile, typename TData, typename TMeta> inline FileFormat<TFile, TData, TMeta, void> guessFileFormat(TFile & file, TData & data);        // "projects/library/seqan/file/file_format_guess.h"(65)
                                                                  ^

No problem compiling the same program on Ubuntu 14.04.

On Debian, gcc version is "(Debian 4.9.2-10) 4.9.2"

On Ubuntu, it is "(Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4"

For everybody's convenience, there is now a backport of tophat 2.1.0 for Jessie.

Log in to answer this question.