lumpy-sv
lumpy-sv copied to clipboard
Makefile - update BamTools to compile
Hi,
I'm failing to compile lumpy-sv using the README instructions, specifically the BamTools utils. Would it be possible to update the Makefile for updated instructions to compile BamTools? It seems to be related to other open issues - https://github.com/arq5x/lumpy-sv/issues/384.
Below is a small Dockerfile and steps to reproduce the specific issue, although make from the root directory will also yield the same error. However as a note, make lumpyexpress succeeds
Thanks,
David
Dockerfile
FROM --platform=linux/amd64 almalinux:latest
RUN yum -y install git g++
RUN git clone --recursive https://github.com/arq5x/lumpy-sv.git
Steps to Reproduce
$ docker build -t almalinux-lumpy . && docker run -it --rm almalinux-lumpy
[root@14277bc4fa5a /]# cd /lumpy-sv/src/utils/BamTools
[root@14277bc4fa5a BamTools]# make
* compiling BamAlignment.cpp
* compiling BamMultiReader.cpp
* compiling BamReader.cpp
* compiling BamWriter.cpp
* compiling SamHeader.cpp
* compiling SamProgram.cpp
* compiling SamProgramChain.cpp
* compiling SamReadGroup.cpp
* compiling SamReadGroupDictionary.cpp
* compiling SamSequence.cpp
* compiling SamSequenceDictionary.cpp
* compiling BamHeader_p.cpp
* compiling BamMultiReader_p.cpp
In file included from /usr/include/c++/11/map:60,
from src/api/SamReadGroupDictionary.h:15,
from src/api/SamHeader.h:15,
from src/api/BamReader.h:16,
from src/api/BamMultiReader.h:14,
from src/api/internal/bam/BamMultiReader_p.cpp:11:
/usr/include/c++/11/bits/stl_tree.h: In instantiation of ‘static const _Key& std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_S_key(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type) [with _Key = BamTools::Internal::MergeItem; _Val = BamTools::Internal::MergeItem; _KeyOfValue = std::_Identity<BamTools::Internal::MergeItem>; _Compare = BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByName>; _Alloc = std::allocator<BamTools::Internal::MergeItem>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type = const std::_Rb_tree_node<BamTools::Internal::MergeItem>*]’:
/usr/include/c++/11/bits/stl_tree.h:2102:44: required from ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_equal_pos(const key_type&) [with _Key = BamTools::Internal::MergeItem; _Val = BamTools::Internal::MergeItem; _KeyOfValue = std::_Identity<BamTools::Internal::MergeItem>; _Compare = BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByName>; _Alloc = std::allocator<BamTools::Internal::MergeItem>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::key_type = BamTools::Internal::MergeItem]’
/usr/include/c++/11/bits/stl_tree.h:2151:4: required from ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_equal(_Arg&&) [with _Arg = const BamTools::Internal::MergeItem&; _Key = BamTools::Internal::MergeItem; _Val = BamTools::Internal::MergeItem; _KeyOfValue = std::_Identity<BamTools::Internal::MergeItem>; _Compare = BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByName>; _Alloc = std::allocator<BamTools::Internal::MergeItem>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree<BamTools::Internal::MergeItem, BamTools::Internal::MergeItem, std::_Identity<BamTools::Internal::MergeItem>, BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByName>, std::allocator<BamTools::Internal::MergeItem> >::iterator]’
/usr/include/c++/11/bits/stl_multiset.h:503:36: required from ‘std::multiset<_Key, _Compare, _Alloc>::iterator std::multiset<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = BamTools::Internal::MergeItem; _Compare = BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByName>; _Alloc = std::allocator<BamTools::Internal::MergeItem>; std::multiset<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree<BamTools::Internal::MergeItem, BamTools::Internal::MergeItem, std::_Identity<BamTools::Internal::MergeItem>, BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByName>, std::allocator<BamTools::Internal::MergeItem> >::const_iterator; std::multiset<_Key, _Compare, _Alloc>::value_type = BamTools::Internal::MergeItem]’
src/api/internal/bam/BamMultiMerger_p.h:130:18: required from ‘void BamTools::Internal::MultiMerger<Compare>::Add(BamTools::Internal::MergeItem) [with Compare = BamTools::Algorithms::Sort::ByName]’
src/api/internal/bam/BamMultiMerger_p.h:123:13: required from here
/usr/include/c++/11/bits/stl_tree.h:770:15: error: static assertion failed: comparison object must be invocable as const
770 | is_invocable_v<const _Compare&, const _Key&, const _Key&>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/stl_tree.h:770:15: note: ‘std::is_invocable_v<const BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByName>&, const BamTools::Internal::MergeItem&, const BamTools::Internal::MergeItem&>’ evaluates to false
/usr/include/c++/11/bits/stl_tree.h: In instantiation of ‘static const _Key& std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_S_key(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type) [with _Key = BamTools::Internal::MergeItem; _Val = BamTools::Internal::MergeItem; _KeyOfValue = std::_Identity<BamTools::Internal::MergeItem>; _Compare = BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByPosition>; _Alloc = std::allocator<BamTools::Internal::MergeItem>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type = const std::_Rb_tree_node<BamTools::Internal::MergeItem>*]’:
/usr/include/c++/11/bits/stl_tree.h:2102:44: required from ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_equal_pos(const key_type&) [with _Key = BamTools::Internal::MergeItem; _Val = BamTools::Internal::MergeItem; _KeyOfValue = std::_Identity<BamTools::Internal::MergeItem>; _Compare = BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByPosition>; _Alloc = std::allocator<BamTools::Internal::MergeItem>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::key_type = BamTools::Internal::MergeItem]’
/usr/include/c++/11/bits/stl_tree.h:2151:4: required from ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_equal(_Arg&&) [with _Arg = const BamTools::Internal::MergeItem&; _Key = BamTools::Internal::MergeItem; _Val = BamTools::Internal::MergeItem; _KeyOfValue = std::_Identity<BamTools::Internal::MergeItem>; _Compare = BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByPosition>; _Alloc = std::allocator<BamTools::Internal::MergeItem>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree<BamTools::Internal::MergeItem, BamTools::Internal::MergeItem, std::_Identity<BamTools::Internal::MergeItem>, BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByPosition>, std::allocator<BamTools::Internal::MergeItem> >::iterator]’
/usr/include/c++/11/bits/stl_multiset.h:503:36: required from ‘std::multiset<_Key, _Compare, _Alloc>::iterator std::multiset<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = BamTools::Internal::MergeItem; _Compare = BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByPosition>; _Alloc = std::allocator<BamTools::Internal::MergeItem>; std::multiset<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree<BamTools::Internal::MergeItem, BamTools::Internal::MergeItem, std::_Identity<BamTools::Internal::MergeItem>, BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByPosition>, std::allocator<BamTools::Internal::MergeItem> >::const_iterator; std::multiset<_Key, _Compare, _Alloc>::value_type = BamTools::Internal::MergeItem]’
src/api/internal/bam/BamMultiMerger_p.h:130:18: required from ‘void BamTools::Internal::MultiMerger<Compare>::Add(BamTools::Internal::MergeItem) [with Compare = BamTools::Algorithms::Sort::ByPosition]’
src/api/internal/bam/BamMultiMerger_p.h:123:13: required from here
/usr/include/c++/11/bits/stl_tree.h:770:15: error: static assertion failed: comparison object must be invocable as const
/usr/include/c++/11/bits/stl_tree.h:770:15: note: ‘std::is_invocable_v<const BamTools::Internal::MergeItemSorter<BamTools::Algorithms::Sort::ByPosition>&, const BamTools::Internal::MergeItem&, const BamTools::Internal::MergeItem&>’ evaluates to false
make: *** [Makefile:64: src/api/internal/bam/BamMultiReader_p.o] Error 1
hi @DavidStreid , have you solved it?