Tophat on Debian Jessie installlation problem
3
1
Entering edit mode
9.2 years ago
Pommy ▴ 10

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 • 3.6k views
ADD COMMENT
2
Entering edit mode

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.

ADD REPLY
0
Entering edit mode

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

ADD REPLY
0
Entering edit mode

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

ADD REPLY
0
Entering edit mode

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

make all-recursive
make[1]: Entering directory '/home/pommy/inst/tophat-2.1.0'
Making all in src
make[2]: Entering directory '/home/pommy/inst/tophat-2.1.0/src'
Makefile:1598: warning: overriding recipe for target 'libbam.a'
Makefile:1129: warning: ignoring old recipe for target 'libbam.a'
g++ -DHAVE_CONFIG_H -I. -I.. -Wall -Wno-strict-aliasing -g -gdwarf-2 -Wuninitialized -O3 -DNDEBUG -I./samtools-0.1.18 -pthread -I/home/pommy/include -I./SeqAn-1.3 -MT reads.o -MD -MP -MF .deps/reads.Tpo -c -o reads.o reads.cpp
In file included from ./SeqAn-1.3/seqan/basic.h:83:0,
from ./SeqAn-1.3/seqan/sequence.h:50,
from ./SeqAn-1.3/seqan/find.h:43,
from reads.cpp:22:
./SeqAn-1.3/seqan/basic/basic_holder.h: In function 'typename seqan::Reference<seqan::Holder<TValue, seqan::Tristate> >::Type seqan::value(seqan::Holder<TValue, seqan::Tristate>&)':
./SeqAn-1.3/seqan/basic/basic_holder.h:992:35: warning: typedef 'THolder' locally defined but not used [-Wunused-local-typedefs]
typedef Holder<TValue, Tristate> THolder;
^
./SeqAn-1.3/seqan/basic/basic_holder.h: In function 'void seqan::assignValue(seqan::Holder<TValue, seqan::Tristate>&, const TSource&)':
./SeqAn-1.3/seqan/basic/basic_holder.h:1022:58: warning: typedef 'THostValue' locally defined but not used [-Wunused-local-typedefs]
typedef typename Value<Holder<TValue, Tristate> >::Type THostValue;
^
./SeqAn-1.3/seqan/basic/basic_holder.h: In function 'void seqan::setValue(seqan::Holder<TValue, seqan::Tristate2>&, TValue&)':
./SeqAn-1.3/seqan/basic/basic_holder.h:1520:59: warning: typedef 'THolderType' locally defined but not used [-Wunused-local-typedefs]
typedef typename Value<Holder<TValue, Tristate2> >::Type THolderType;
^
./SeqAn-1.3/seqan/basic/basic_holder.h: In function 'typename seqan::Reference<seqan::Holder<TValue, seqan::Tristate2> >::Type seqan::value(seqan::Holder<TValue, seqan::Tristate2>&)':
./SeqAn-1.3/seqan/basic/basic_holder.h:1545:59: warning: typedef 'THolderType' locally defined but not used [-Wunused-local-typedefs]
typedef typename Value<Holder<TValue, Tristate2> >::Type THolderType;
^
./SeqAn-1.3/seqan/basic/basic_holder.h: In function 'void seqan::assignValue(seqan::Holder<TValue, seqan::Tristate2>&, const TSource&)':
./SeqAn-1.3/seqan/basic/basic_holder.h:1569:59: warning: typedef 'THostValue' locally defined but not used [-Wunused-local-typedefs]
typedef typename Value<Holder<TValue, Tristate2> >::Type THostValue;
^
In file included from ./SeqAn-1.3/seqan/basic.h:88:0,
from ./SeqAn-1.3/seqan/sequence.h:50,
from ./SeqAn-1.3/seqan/find.h:43,
from reads.cpp:22:
./SeqAn-1.3/seqan/basic/basic_allocator_chunkpool.h: In function 'void seqan::deallocate(seqan::Allocator<seqan::ChunkPool<SIZE, MAX_COUNT, TParentAllocator> >&, TValue*, TSize, seqan::Tag<TUsage>)':
./SeqAn-1.3/seqan/basic/basic_allocator_chunkpool.h:239:67: warning: typedef 'TAllocator' locally defined but not used [-Wunused-local-typedefs]
typedef Allocator<ChunkPool<SIZE, MAX_COUNT, TParentAllocator> > TAllocator;
^
In file included from ./SeqAn-1.3/seqan/sequence.h:73:0,
from ./SeqAn-1.3/seqan/find.h:43,
from reads.cpp:22:
./SeqAn-1.3/seqan/sequence/sequence_lexical.h: In function 'void seqan::compare_(seqan::Lexical<TSpec>&, TLeft&, TRight&)':
./SeqAn-1.3/seqan/sequence/sequence_lexical.h:260:38: warning: typedef 'TLeftValue' locally defined but not used [-Wunused-local-typedefs]
typedef typename Value<TLeft>::Type TLeftValue;
^
./SeqAn-1.3/seqan/sequence/sequence_lexical.h:261:39: warning: typedef 'TRightValue' locally defined but not used [-Wunused-local-typedefs]
typedef typename Value<TRight>::Type TRightValue;
^
In file included from ./SeqAn-1.3/seqan/sequence.h:87:0,
from ./SeqAn-1.3/seqan/find.h:43,
from reads.cpp:22:
./SeqAn-1.3/seqan/sequence/string_base.h: In function 'void seqan::assign(seqan::String<TValue, TSpec>&, const TSource&, seqan::Tag<TUsage>)':
./SeqAn-1.3/seqan/sequence/string_base.h:919:47: warning: typedef 'TTarget' locally defined but not used [-Wunused-local-typedefs]
typedef String<TTargetValue, TTargetSpec> TTarget;
^
./SeqAn-1.3/seqan/sequence/string_base.h: In function 'void seqan::assign(seqan::String<TValue, TSpec>&, const TSource&, TSize, seqan::Tag<TUsage>)':
./SeqAn-1.3/seqan/sequence/string_base.h:929:47: warning: typedef 'TTarget' locally defined but not used [-Wunused-local-typedefs]
typedef String<TTargetValue, TTargetSpec> TTarget;
^
./SeqAn-1.3/seqan/sequence/string_base.h: In function 'void seqan::assign(seqan::String<TValue, TSpec>&, const TSourceValue*, seqan::Tag<TUsage>)':
./SeqAn-1.3/seqan/sequence/string_base.h:942:47: warning: typedef 'TTarget' locally defined but not used [-Wunused-local-typedefs]
typedef String<TTargetValue, TTargetSpec> TTarget;
^
./SeqAn-1.3/seqan/sequence/string_base.h: In function 'void seqan::assign(seqan::String<TValue, TSpec>&, const TSourceValue*, TSize, seqan::Tag<TUsage>)':
./SeqAn-1.3/seqan/sequence/string_base.h:952:47: warning: typedef 'TTarget' locally defined but not used [-Wunused-local-typedefs]
typedef String<TTargetValue, TTargetSpec> TTarget;
^
./SeqAn-1.3/seqan/sequence/string_base.h: In function 'void seqan::append(seqan::String<TValue, TSpec>&, const TSource&, seqan::Tag<TUsage>)':
./SeqAn-1.3/seqan/sequence/string_base.h:1152:47: warning: typedef 'TTarget' locally defined but not used [-Wunused-local-typedefs]
typedef String<TTargetValue, TTargetSpec> TTarget;
^
./SeqAn-1.3/seqan/sequence/string_base.h: In function 'void seqan::append(seqan::String<TValue, TSpec>&, const TSource&, typename seqan::Size<seqan::String<TValue, TSpec> >::Type, seqan::Tag<TUsage>)':
./SeqAn-1.3/seqan/sequence/string_base.h:1164:47: warning: typedef 'TTarget' locally defined but not used [-Wunused-local-typedefs]
typedef String<TTargetValue, TTargetSpec> TTarget;
^
./SeqAn-1.3/seqan/sequence/string_base.h: In function 'void seqan::append(seqan::String<TValue, TSpec>&, TSourceValue*, seqan::Tag<TUsage>)':
./SeqAn-1.3/seqan/sequence/string_base.h:1178:47: warning: typedef 'TTarget' locally defined but not used [-Wunused-local-typedefs]
typedef String<TTargetValue, TTargetSpec> TTarget;
^
./SeqAn-1.3/seqan/sequence/string_base.h: In function 'void seqan::append(seqan::String<TValue, TSpec>&, TSourceValue*, typename seqan::Size<seqan::String<TValue, TSpec> >::Type, seqan::Tag<TUsage>)':
./SeqAn-1.3/seqan/sequence/string_base.h:1190:47: warning: typedef 'TTarget' locally defined but not used [-Wunused-local-typedefs]
typedef String<TTargetValue, TTargetSpec> TTarget;
^
./SeqAn-1.3/seqan/sequence/string_base.h: In function 'void seqan::replace(seqan::String<TValue, TSpec>&, TPositionBegin, TPositionEnd, const TSource&, seqan::Tag<TUsage>)':
./SeqAn-1.3/seqan/sequence/string_base.h:1358:47: warning: typedef 'TTarget' locally defined but not used [-Wunused-local-typedefs]
typedef String<TTargetValue, TTargetSpec> TTarget;
^
./SeqAn-1.3/seqan/sequence/string_base.h: In function 'void seqan::replace(seqan::String<TValue, TSpec>&, TPositionBegin, TPositionEnd, const TSource&, typename seqan::Size<seqan::String<TValue, TSpec> >::Type, seqan::Tag<TUsage>)':
./SeqAn-1.3/seqan/sequence/string_base.h:1372:47: warning: typedef 'TTarget' locally defined but not used [-Wunused-local-typedefs]
typedef String<TTargetValue, TTargetSpec> TTarget;
^
./SeqAn-1.3/seqan/sequence/string_base.h: In function 'void seqan::replace(seqan::String<TValue, TSpec>&, TPositionBegin, TPositionEnd, const TSourceValue*, seqan::Tag<TUsage>)':
./SeqAn-1.3/seqan/sequence/string_base.h:1388:47: warning: typedef 'TTarget' locally defined but not used [-Wunused-local-typedefs]
typedef String<TTargetValue, TTargetSpec> TTarget;
^
./SeqAn-1.3/seqan/sequence/string_base.h: In function 'void seqan::replace(seqan::String<TValue, TSpec>&, TPositionBegin, TPositionEnd, const TSourceValue*, typename seqan::Size<seqan::String<TValue, TSpec> >::Type, seqan::Tag<TUsage>)':
./SeqAn-1.3/seqan/sequence/string_base.h:1402:47: warning: typedef 'TTarget' locally defined but not used [-Wunused-local-typedefs]
typedef String<TTargetValue, TTargetSpec> TTarget;
^
In file included from ./SeqAn-1.3/seqan/sequence.h:92:0,
from ./SeqAn-1.3/seqan/find.h:43,
from reads.cpp:22:
./SeqAn-1.3/seqan/sequence/string_packed.h: In static member function 'static typename seqan::Size<T>::Type seqan::ClearSpaceStringPacked_<TExpand>::_clearSpace_(T&, typename seqan::Size<T>::Type, typename seqan::Size<T>::Type, typename seqan::Size<T>::Type, typename seqan::Size<T>::Type)':
./SeqAn-1.3/seqan/sequence/string_packed.h:655:54: warning: typedef 'TIterator' locally defined but not used [-Wunused-local-typedefs]
typedef typename Iterator<T, Standard>::Type TIterator;
^
In file included from ./SeqAn-1.3/seqan/sequence.h:102:0,
from ./SeqAn-1.3/seqan/find.h:43,
from reads.cpp:22:
./SeqAn-1.3/seqan/sequence/string_set_dependent_tight.h: In function 'typename seqan::Id<seqan::StringSet<TString, seqan::Dependent<const seqan::Tag<seqan::TagInsist_> > > >::Type seqan::assignValueById(seqan::StringSet<TString, seqan::Dependent<const seqan::Tag<seqan::TagInsist_> > >&, TString&, TId1)':
./SeqAn-1.3/seqan/sequence/string_set_dependent_tight.h:232:45: warning: typedef 'TSize' locally defined but not used [-Wunused-local-typedefs]
typedef typename Size<TStringSet>::Type TSize;
^
In file included from ./SeqAn-1.3/seqan/modifier.h:54:0,
from ./SeqAn-1.3/seqan/find.h:44,
from reads.cpp:22:
./SeqAn-1.3/seqan/modifier/modifier_alphabet_expansion.h: In function 'void seqan::_initializeAlphabetConversionTable(seqan::ModifiedAlphabet<THost, seqan::ModExpand<CHAR, TSpec> >*, const TSource&)':
./SeqAn-1.3/seqan/modifier/modifier_alphabet_expansion.h:232:59: warning: typedef 'TTarget' locally defined but not used [-Wunused-local-typedefs]
typedef ModifiedAlphabet<THost, ModExpand<CHAR, TSpec> > TTarget;
^
./SeqAn-1.3/seqan/modifier/modifier_alphabet_expansion.h: In function 'void seqan::_initializeAlphabetConversionTable(TTarget*, const seqan::ModifiedAlphabet<THost, seqan::ModExpand<CHAR, TSpec> >&)':
./SeqAn-1.3/seqan/modifier/modifier_alphabet_expansion.h:343:59: warning: typedef 'TSource' locally defined but not used [-Wunused-local-typedefs]
typedef ModifiedAlphabet<THost, ModExpand<CHAR, TSpec> > TSource;
^
./SeqAn-1.3/seqan/modifier/modifier_alphabet_expansion.h: In function 'void seqan::_initializeAlphabetOrdTable(TTarget*, const seqan::ModifiedAlphabet<THost, seqan::ModExpand<CHAR, TSpec> >&)':
./SeqAn-1.3/seqan/modifier/modifier_alphabet_expansion.h:364:59: warning: typedef 'TSource' locally defined but not used [-Wunused-local-typedefs]
typedef ModifiedAlphabet<THost, ModExpand<CHAR, TSpec> > TSource;
^
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)
^
In file included from ./SeqAn-1.3/seqan/file.h:84: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_format.h:143:8: note: because the following virtual functions are pure within 'seqan::FileFormat<TFile, TData, TMeta, void>':
struct FileFormat<TFile, TData, TMeta, void>
^
./SeqAn-1.3/seqan/file/file_format.h:154:2: note: virtual void* seqan::FileFormat<TFile, TData, TMeta, void>::formatID_() const
formatID_() const = 0;
^
./SeqAn-1.3/seqan/file/file_format.h:157:2: note: virtual void seqan::FileFormat<TFile, TData, TMeta, void>::read_(TFile&, TData&) const
read_(TFile & file, TData & data) const = 0;
^
./SeqAn-1.3/seqan/file/file_format.h:159:2: note: virtual void seqan::FileFormat<TFile, TData, TMeta, void>::read_(TFile&, TData&, seqan::FileFormat<TFile, TData, TMeta, void>::TSize) const
read_(TFile & file, TData & data, TSize limit) const = 0;
^
./SeqAn-1.3/seqan/file/file_format.h:162:2: note: virtual void seqan::FileFormat<TFile, TData, TMeta, void>::readMeta_(TFile&, TMeta&) const
readMeta_(TFile & file, TMeta & meta) const = 0;
^
./SeqAn-1.3/seqan/file/file_format.h:165:2: note: virtual void seqan::FileFormat<TFile, TData, TMeta, void>::goNext_(TFile&) const
goNext_(TFile & file) const = 0;
^
./SeqAn-1.3/seqan/file/file_format.h:168:2: note: virtual seqan::FileFormat<TFile, TData, TMeta, void>::TSize seqan::FileFormat<TFile, TData, TMeta, void>::length_(TFile&) const
length_(TFile & file) const = 0;
^
./SeqAn-1.3/seqan/file/file_format.h:171:2: note: virtual void seqan::FileFormat<TFile, TData, TMeta, void>::write_(TFile&, TData&) const
write_(TFile & file, TData & data) const = 0;
^
./SeqAn-1.3/seqan/file/file_format.h:173:2: note: virtual void seqan::FileFormat<TFile, TData, TMeta, void>::write_(TFile&, TData&, TMeta&) const
write_(TFile & file, TData & data, TMeta & meta) const = 0;
^
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

ADD REPLY
0
Entering edit mode

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.

ADD REPLY
1
Entering edit mode
9.1 years ago

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)

ADD COMMENT
0
Entering edit mode
9.1 years ago

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"

ADD COMMENT
0
Entering edit mode
9.1 years ago
Charles Plessy ★ 2.9k

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

ADD COMMENT

Login before adding your answer.

Traffic: 1768 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6