bamaddrg icon indicating copy to clipboard operation
bamaddrg copied to clipboard

Installation failed on Ubuntu 16.10

Open JHereward opened this issue 7 years ago • 5 comments

I tried to install using git clone --recursive, followed by make, but get the following errors:

/home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘bool BamTools::ResolveTool::ReadNamesFileReader::Read(std::map<std::__cxx11::basic_string, ReadGroupResolver>&)’: /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:401:74: error: no matching function for call to ‘make_pair(__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++/6/bits/stl_algobase.h:64:0, from /usr/include/c++/6/bits/char_traits.h:39, from /usr/include/c++/6/string:40, from /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_tool.h:14, from /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.h:13, from /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:10: /usr/include/c++/6/bits/stl_pair.h:493: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++/6/bits/stl_pair.h:493:5: note: template argument deduction/substitution failed: /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:401:74: note: cannot convert ‘fields.std::vector<_Tp, _Alloc>::operator[]<std::__cxx11::basic_string, std::allocator<std::__cxx11::basic_string > >(1ul)’ (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/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘bool BamTools::ResolveTool::StatsFileReader::ParseReadGroupLine(const string&, std::map<std::__cxx11::basic_string, ReadGroupResolver>&)’: /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:598:75: error: no matching function for call to ‘make_pair(const string&, ReadGroupResolver&)’ readGroups.insert( make_pair<string, ReadGroupResolver>(name, resolver) ); ^ In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0, from /usr/include/c++/6/bits/char_traits.h:39, from /usr/include/c++/6/string:40, from /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_tool.h:14, from /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.h:13, from /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:10: /usr/include/c++/6/bits/stl_pair.h:493: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++/6/bits/stl_pair.h:493:5: note: template argument deduction/substitution failed: /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:598: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/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘bool BamTools::ResolveTool::ResolveToolPrivate::MakeStats()’: /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:1001:93: error: no matching function for call to ‘make_pair(std::__cxx11::string&, const bool&)’ else resolver.ReadNames.insert( make_pair<string, bool>(al.Name, isCurrentMateUnique) ); ^ In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0, from /usr/include/c++/6/bits/char_traits.h:39, from /usr/include/c++/6/string:40, from /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_tool.h:14, from /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.h:13, from /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:10: /usr/include/c++/6/bits/stl_pair.h:493: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++/6/bits/stl_pair.h:493:5: note: template argument deduction/substitution failed: /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:1001: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/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘void BamTools::ResolveTool::ResolveToolPrivate::ParseHeader(const BamTools::SamHeader&)’: /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:1033:93: error: no matching function for call to ‘make_pair(const string&, ReadGroupResolver)’ m_readGroups.insert( make_pair<string, ReadGroupResolver>(rg.ID, ReadGroupResolver()) ); ^ In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0, from /usr/include/c++/6/bits/char_traits.h:39, from /usr/include/c++/6/string:40, from /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_tool.h:14, from /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.h:13, from /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:10: /usr/include/c++/6/bits/stl_pair.h:493: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++/6/bits/stl_pair.h:493:5: note: template argument deduction/substitution failed: /home/wfl/programs/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:1033: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[3]: *** [src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o] Error 1 make[3]: Leaving directory '/home/wfl/programs/bamaddrg/bamtools/build' CMakeFiles/Makefile2:520: recipe for target 'src/toolkit/CMakeFiles/bamtools_cmd.dir/all' failed make[2]: *** [src/toolkit/CMakeFiles/bamtools_cmd.dir/all] Error 2 make[2]: Leaving directory '/home/wfl/programs/bamaddrg/bamtools/build' Makefile:127: recipe for target 'all' failed make[1]: *** [all] Error 2 make[1]: Leaving directory '/home/wfl/programs/bamaddrg/bamtools/build' Makefile:10: recipe for target 'libbamtools.a' failed make: *** [libbamtools.a] Error 2

JHereward avatar Apr 27 '17 01:04 JHereward

I have similar problem.

[ 94%] Building CXX object src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o
/home/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘bool BamTools::ResolveTool::ReadNamesFileReader::Read(std::map<std::__cxx11::basic_string<char>, ReadGroupResolver>&)’:
/home/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:401: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/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_tool.h:14,
                 from /home/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.h:13,
                 from /home/yifang/study/C++/bamaddrg/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/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:401:74: note:   cannot convert ‘fields.std::vector<std::__cxx11::basic_string<char>, std::allocator<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/yifang/study/C++/bamaddrg/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/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:598: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/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_tool.h:14,
                 from /home/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.h:13,
                 from /home/yifang/study/C++/bamaddrg/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/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:598: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/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘bool BamTools::ResolveTool::ResolveToolPrivate::MakeStats()’:
/home/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:1001: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/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_tool.h:14,
                 from /home/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.h:13,
                 from /home/yifang/study/C++/bamaddrg/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/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:1001: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/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp: In member function ‘void BamTools::ResolveTool::ResolveToolPrivate::ParseHeader(const BamTools::SamHeader&)’:
/home/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:1033: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/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_tool.h:14,
                 from /home/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.h:13,
                 from /home/yifang/study/C++/bamaddrg/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/yifang/study/C++/bamaddrg/bamtools/src/toolkit/bamtools_resolve.cpp:1033: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[3]: *** [src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o] Error 1
make[3]: Leaving directory '/home/yifang/study/C++/bamaddrg/bamtools/build'
CMakeFiles/Makefile2:520: recipe for target 'src/toolkit/CMakeFiles/bamtools_cmd.dir/all' failed
make[2]: *** [src/toolkit/CMakeFiles/bamtools_cmd.dir/all] Error 2
make[2]: Leaving directory '/home/yifang/study/C++/bamaddrg/bamtools/build'
Makefile:129: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/yifang/study/C++/bamaddrg/bamtools/build'
Makefile:10: recipe for target 'libbamtools.a' failed
make: *** [libbamtools.a] Error 2

Could you give me any clue please?

yifangt avatar May 24 '18 16:05 yifangt

Did you manage to fix this problem? am faced with a similar issue....am using ubuntu bionic beaver (18.04 )though

zkidiavai avatar Mar 26 '19 12:03 zkidiavai

You can try installing bamtools first using conda and Bioconda channel:

conda install -c conda-forge -c bioconda bamtools

If you setup conda properly, bamtools should now be in your PATH (on linux this is default setup). You can now try compiling bamaddrg.

Hope it helps.

janxkoci avatar Oct 11 '19 10:10 janxkoci

I dont know if people resolved this - but if you install the latest bamtools via conda, you can then compile bamaddrg successfully by removing or commenting out the following rule in the Makefile, so it doesnt try and compile bamtools again.

libbamtools.a:
       cd $(BAMTOOLS_ROOT) && mkdir -p build && cd build && cmake .. && make
       cp bamtools/lib/libbamtools.a ./

You then also need to copy the libbamtools.a from the bamaddrg/bamtools/lib/ directory into the bamaddrg directory.

After this, you can run make in the bamaddrg directory.

edit: i struggled to get this to work a second time so i would recommend doing what is suggested by @pmagwene below

sanjaynagi avatar Jun 05 '20 10:06 sanjaynagi

If you're on an Ubuntu/Debian derivative and have installed bamtools and libbamtools-dev you can build bamaddrg directly without the Makefile as follows:

g++ -O3 bamaddrg.cpp -o bamaddrg -lbamtools -lz -I/usr/include/bamtools

pmagwene avatar Nov 11 '20 21:11 pmagwene