hall-lab / speedseq

A flexible framework for rapid genome analysis and interpretation
MIT License
311 stars 116 forks source link

compilation of freebayes module fails on Ubuntu 18.04 #135

Open pwaltman opened 5 years ago

pwaltman commented 5 years ago

I've tried compiling speedseq on 2 separate machines, and in both cases, the compilation step fails during the compilation of freeBayes. Here's the relevant error message log:

$ make
... compilation output ...
[ 94%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o
/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘bool BamTools::ResolveTool::ReadNamesFileReader::Read(std::map<std::__cxx11::basic_string<char>, ReadGroupResolver>&)’:
/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:415:74: error: no matching function for call to ‘make_pair<std::__cxx11::string, bool>(__gnu_cxx::__alloc_traits<std::allocator<std::__cxx11::basic_string<char> > >::value_type&, bool)’
         resolver.ReadNames.insert( make_pair<string,bool>(fields[1], true) ) ;
                                                                          ^
In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/7/bits/char_traits.h:39,
                 from /usr/include/c++/7/string:40,
                 from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_tool.h:14,
                 from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.h:13,
                 from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:10:
/usr/include/c++/7/bits/stl_pair.h:519:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
     make_pair(_T1&& __x, _T2&& __y)
     ^~~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:519:5: note:   template argument deduction/substitution failed:
/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:415:74: note:   cannot convert ‘fields.std::vector<std::__cxx11::basic_string<char> >::operator[](1)’ (type ‘__gnu_cxx::__alloc_traits<std::allocator<std::__cxx11::basic_string<char> > >::value_type {aka std::__cxx11::basic_string<char>}’) to type ‘std::__cxx11::basic_string<char>&&’
         resolver.ReadNames.insert( make_pair<string,bool>(fields[1], true) ) ;
                                                                          ^
/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘bool BamTools::ResolveTool::StatsFileReader::ParseReadGroupLine(const string&, std::map<std::__cxx11::basic_string<char>, ReadGroupResolver>&)’:
/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:612:75: error: no matching function for call to ‘make_pair<std::__cxx11::string, ReadGroupResolver>(const string&, ReadGroupResolver&)’
     readGroups.insert( make_pair<string, ReadGroupResolver>(name, resolver) );
                                                                           ^
In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/7/bits/char_traits.h:39,
                 from /usr/include/c++/7/string:40,
                 from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_tool.h:14,
                 from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.h:13,
                 from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:10:
/usr/include/c++/7/bits/stl_pair.h:519:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
     make_pair(_T1&& __x, _T2&& __y)
     ^~~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:519:5: note:   template argument deduction/substitution failed:
/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:612:61: note:   cannot convert ‘name’ (type ‘const string {aka const std::__cxx11::basic_string<char>}’) to type ‘std::__cxx11::basic_string<char>&&’
     readGroups.insert( make_pair<string, ReadGroupResolver>(name, resolver) );
                                                             ^~~~
/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘bool BamTools::ResolveTool::ResolveToolPrivate::MakeStats()’:
/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:1019:93: error: no matching function for call to ‘make_pair<std::__cxx11::string, bool>(std::__cxx11::string&, const bool&)’
         else resolver.ReadNames.insert( make_pair<string, bool>(al.Name, isCurrentMateUnique) );
                                                                                             ^
In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/7/bits/char_traits.h:39,
                 from /usr/include/c++/7/string:40,
                 from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_tool.h:14,
                 from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.h:13,
                 from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:10:
/usr/include/c++/7/bits/stl_pair.h:519:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
     make_pair(_T1&& __x, _T2&& __y)
     ^~~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:519:5: note:   template argument deduction/substitution failed:
/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:1019:68: note:   cannot convert ‘al.BamTools::BamAlignment::Name’ (type ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’) to type ‘std::__cxx11::basic_string<char>&&’
         else resolver.ReadNames.insert( make_pair<string, bool>(al.Name, isCurrentMateUnique) );
                                                                 ~~~^~~~
/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘void BamTools::ResolveTool::ResolveToolPrivate::ParseHeader(const BamTools::SamHeader&)’:
/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:1051:93: error: no matching function for call to ‘make_pair<std::__cxx11::string, ReadGroupResolver>(const string&, ReadGroupResolver)’
         m_readGroups.insert( make_pair<string, ReadGroupResolver>(rg.ID, ReadGroupResolver()) );
                                                                                             ^
In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/7/bits/char_traits.h:39,
                 from /usr/include/c++/7/string:40,
                 from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_tool.h:14,
                 from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.h:13,
                 from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:10:
/usr/include/c++/7/bits/stl_pair.h:519:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::__decay_and_strip<_Tp>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
     make_pair(_T1&& __x, _T2&& __y)
     ^~~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:519:5: note:   template argument deduction/substitution failed:
/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:1051:70: note:   cannot convert ‘rg.BamTools::SamReadGroup::ID’ (type ‘const string {aka const std::__cxx11::basic_string<char>}’) to type ‘std::__cxx11::basic_string<char>&&’
         m_readGroups.insert( make_pair<string, ReadGroupResolver>(rg.ID, ReadGroupResolver()) );
                                                                   ~~~^~
src/toolkit/CMakeFiles/bamtools_cmd.dir/build.make:254: recipe for target 'src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o' failed
make[6]: *** [src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o] Error 1
make[6]: Leaving directory '/home/waltman/bin/speedseq/src/freebayes/bamtools/build'
CMakeFiles/Makefile2:520: recipe for target 'src/toolkit/CMakeFiles/bamtools_cmd.dir/all' failed
make[5]: *** [src/toolkit/CMakeFiles/bamtools_cmd.dir/all] Error 2
make[5]: Leaving directory '/home/waltman/bin/speedseq/src/freebayes/bamtools/build'
Makefile:129: recipe for target 'all' failed
make[4]: *** [all] Error 2
make[4]: Leaving directory '/home/waltman/bin/speedseq/src/freebayes/bamtools/build'
Makefile:39: recipe for target '../bamtools/lib/libbamtools.a' failed
make[3]: *** [../bamtools/lib/libbamtools.a] Error 2
make[3]: Leaving directory '/home/waltman/bin/speedseq/src/freebayes/src'
Makefile:2: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/home/waltman/bin/speedseq/src/freebayes'
Makefile:116: recipe for target 'freebayes' failed
make[1]: *** [freebayes] Error 2
make[1]: Leaving directory '/home/waltman/bin/speedseq'
Makefile:23: recipe for target 'all' failed
make: *** [all] Error 2
ekg commented 5 years ago

Are you able to build freebayes standalone?

On Tue, Jan 22, 2019, 20:55 Peter Waltman <notifications@github.com wrote:

I've tried compiling speedseq on 2 separate machines, and in both cases, the compilation step fails during the compilation of freeBayes. Here's the relevant error message log:

$ make

... compilation output ...

[ 94%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o

/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘bool BamTools::ResolveTool::ReadNamesFileReader::Read(std::map<std::__cxx11::basic_string, ReadGroupResolver>&)’:

/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:415:74: error: no matching function for call to ‘make_pair<std::cxx11::string, bool>(gnu_cxx::__alloc_traits<std::allocator<std::__cxx11::basic_string > >::value_type&, bool)’

     resolver.ReadNames.insert( make_pair<string,bool>(fields[1], true) ) ;

                                                                      ^

In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,

             from /usr/include/c++/7/bits/char_traits.h:39,

             from /usr/include/c++/7/string:40,

             from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_tool.h:14,

             from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.h:13,

             from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:10:

/usr/include/c++/7/bits/stl_pair.h:519:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::decay_and_strip<_Tp>::type, typename std::decay_and_strip<_T2>::type> std::make_pair(_T1&&, _T2&&)

 make_pair(_T1&& __x, _T2&& __y)

 ^~~~~~~~~

/usr/include/c++/7/bits/stl_pair.h:519:5: note: template argument deduction/substitution failed:

/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:415:74: note: cannot convert ‘fields.std::vector<std::cxx11::basic_string >::operator’ (type ‘__gnu_cxx::alloc_traits<std::allocator<std::cxx11::basic_string > >::value_type {aka std::cxx11::basic_string}’) to type ‘std::__cxx11::basic_string&&’

     resolver.ReadNames.insert( make_pair<string,bool>(fields[1], true) ) ;

                                                                      ^

/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘bool BamTools::ResolveTool::StatsFileReader::ParseReadGroupLine(const string&, std::map<std::__cxx11::basic_string, ReadGroupResolver>&)’:

/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:612:75: error: no matching function for call to ‘make_pair<std::__cxx11::string, ReadGroupResolver>(const string&, ReadGroupResolver&)’

 readGroups.insert( make_pair<string, ReadGroupResolver>(name, resolver) );

                                                                       ^

In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,

             from /usr/include/c++/7/bits/char_traits.h:39,

             from /usr/include/c++/7/string:40,

             from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_tool.h:14,

             from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.h:13,

             from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:10:

/usr/include/c++/7/bits/stl_pair.h:519:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::decay_and_strip<_Tp>::type, typename std::decay_and_strip<_T2>::type> std::make_pair(_T1&&, _T2&&)

 make_pair(_T1&& __x, _T2&& __y)

 ^~~~~~~~~

/usr/include/c++/7/bits/stl_pair.h:519:5: note: template argument deduction/substitution failed:

/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:612:61: note: cannot convert ‘name’ (type ‘const string {aka const std::__cxx11::basic_string}’) to type ‘std::__cxx11::basic_string&&’

 readGroups.insert( make_pair<string, ReadGroupResolver>(name, resolver) );

                                                         ^~~~

/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘bool BamTools::ResolveTool::ResolveToolPrivate::MakeStats()’:

/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:1019:93: error: no matching function for call to ‘make_pair<std::cxx11::string, bool>(std::cxx11::string&, const bool&)’

     else resolver.ReadNames.insert( make_pair<string, bool>(al.Name, isCurrentMateUnique) );

                                                                                         ^

In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,

             from /usr/include/c++/7/bits/char_traits.h:39,

             from /usr/include/c++/7/string:40,

             from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_tool.h:14,

             from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.h:13,

             from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:10:

/usr/include/c++/7/bits/stl_pair.h:519:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::decay_and_strip<_Tp>::type, typename std::decay_and_strip<_T2>::type> std::make_pair(_T1&&, _T2&&)

 make_pair(_T1&& __x, _T2&& __y)

 ^~~~~~~~~

/usr/include/c++/7/bits/stl_pair.h:519:5: note: template argument deduction/substitution failed:

/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:1019:68: note: cannot convert ‘al.BamTools::BamAlignment::Name’ (type ‘std::cxx11::string {aka std::cxx11::basic_string}’) to type ‘std::__cxx11::basic_string&&’

     else resolver.ReadNames.insert( make_pair<string, bool>(al.Name, isCurrentMateUnique) );

                                                             ~~~^~~~

/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘void BamTools::ResolveTool::ResolveToolPrivate::ParseHeader(const BamTools::SamHeader&)’:

/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:1051:93: error: no matching function for call to ‘make_pair<std::__cxx11::string, ReadGroupResolver>(const string&, ReadGroupResolver)’

     m_readGroups.insert( make_pair<string, ReadGroupResolver>(rg.ID, ReadGroupResolver()) );

                                                                                         ^

In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,

             from /usr/include/c++/7/bits/char_traits.h:39,

             from /usr/include/c++/7/string:40,

             from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_tool.h:14,

             from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.h:13,

             from /home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:10:

/usr/include/c++/7/bits/stl_pair.h:519:5: note: candidate: template<class _T1, class _T2> constexpr std::pair<typename std::decay_and_strip<_Tp>::type, typename std::decay_and_strip<_T2>::type> std::make_pair(_T1&&, _T2&&)

 make_pair(_T1&& __x, _T2&& __y)

 ^~~~~~~~~

/usr/include/c++/7/bits/stl_pair.h:519:5: note: template argument deduction/substitution failed:

/home/waltman/bin/speedseq/src/freebayes/bamtools/src/toolkit/bamtools_resolve.cpp:1051:70: note: cannot convert ‘rg.BamTools::SamReadGroup::ID’ (type ‘const string {aka const std::__cxx11::basic_string}’) to type ‘std::__cxx11::basic_string&&’

     m_readGroups.insert( make_pair<string, ReadGroupResolver>(rg.ID, ReadGroupResolver()) );

                                                               ~~~^~

src/toolkit/CMakeFiles/bamtools_cmd.dir/build.make:254: recipe for target 'src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o' failed

make[6]: *** [src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o] Error 1

make[6]: Leaving directory '/home/waltman/bin/speedseq/src/freebayes/bamtools/build'

CMakeFiles/Makefile2:520: recipe for target 'src/toolkit/CMakeFiles/bamtools_cmd.dir/all' failed

make[5]: *** [src/toolkit/CMakeFiles/bamtools_cmd.dir/all] Error 2

make[5]: Leaving directory '/home/waltman/bin/speedseq/src/freebayes/bamtools/build'

Makefile:129: recipe for target 'all' failed

make[4]: *** [all] Error 2

make[4]: Leaving directory '/home/waltman/bin/speedseq/src/freebayes/bamtools/build'

Makefile:39: recipe for target '../bamtools/lib/libbamtools.a' failed

make[3]: *** [../bamtools/lib/libbamtools.a] Error 2

make[3]: Leaving directory '/home/waltman/bin/speedseq/src/freebayes/src'

Makefile:2: recipe for target 'all' failed

make[2]: *** [all] Error 2

make[2]: Leaving directory '/home/waltman/bin/speedseq/src/freebayes'

Makefile:116: recipe for target 'freebayes' failed

make[1]: *** [freebayes] Error 2

make[1]: Leaving directory '/home/waltman/bin/speedseq'

Makefile:23: recipe for target 'all' failed

make: *** [all] Error 2

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/hall-lab/speedseq/issues/135, or mute the thread https://github.com/notifications/unsubscribe-auth/AAI4EccRpIkxZNOHrOTduJFDatVjJopPks5vF3qlgaJpZM4aNgQf .

pwaltman commented 5 years ago

Sorry. It took me a bit do this, but, yes, the freebayes standalone compiled without issue. As specified in the readme, these were the commands that I called:

 $ git clone --recursive git://github.com/ekg/freebayes.git
 $  cd freebayes/
 $  make