Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Read and write VCF with changing some fields. #63

Open
Irallia opened this issue Oct 18, 2022 · 1 comment
Open

Read and write VCF with changing some fields. #63

Irallia opened this issue Oct 18, 2022 · 1 comment

Comments

@Irallia
Copy link
Contributor

Irallia commented Oct 18, 2022

#include <bio/var_io/reader.hpp>
#include <bio/var_io/writer.hpp>
...
using namespace std::literals;

/*! \brief Fill ALT fields in VCF with SV types.
 *
 * \param[in] args - command line arguments:\n
 *                   **args.input_file_path** - Mason VCF input file, path to the VCF file\n
 *                   **args.output_file_path** output file - path for the VCF file - *default: standard output*\n
 *
 * \details Takes SVTYPE of SV InDels and fills their ALT fields.
 */
void convert_vcf(cmd_arguments const & args)
{
    bio::var_io::reader reader{args.input_file_path};
    bio::var_io::writer writer{args.output_file_path};

    for (auto & rec : reader) {
            // pos=0 limits the search to the prefix
        if (rec.id().rfind("sim_sv_indel", 0) == 0 && rec.info().front().id == "SVTYPE") {
            if (rec.info().front().value == "INS"sv) {
                rec.alt() = {"<INS>"};
            } else {
                rec.alt() = {"<DEL>"};
            }
            writer.push_back(rec);
        }
    }
}

fails with the following error:

Consolidate compiler generated dependencies of target MasonVcfConverter
[ 94%] Building CXX object src/CMakeFiles/MasonVcfConverter.dir/__/test/benchmark/simulation/mason_vcf_converter.cpp.o
.../test/benchmark/simulation/mason_vcf_converter.cpp: In function 'void convert_vcf(const cmd_arguments&)':
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:46: error: no match for 'operator==' (operand types are 'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} and 'std::basic_string_view<char>')
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~ ^~ ~~~~~~~
      |                                        |        |
      |                                        |        std::basic_string_view<char>
      |                                        bio::var_io::info_element_value_type<bio::ownership::shallow> {aka std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>}
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/x86_64-apple-darwin19/bits/c++allocator.h:33,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/allocator.h:46,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ext/new_allocator.h:183:9: note: candidate: 'template<class _Up> constexpr bool __gnu_cxx::operator==(const __gnu_cxx::new_allocator<std::basic_string_view<char> >&, const __gnu_cxx::new_allocator<_Tp>&)' (reversed)
  183 |         operator==(const new_allocator&, const new_allocator<_Up>&)
      |         ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ext/new_allocator.h:183:9: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const __gnu_cxx::new_allocator<_Tp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/x86_64-apple-darwin19/bits/c++allocator.h:33,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/allocator.h:46,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ext/new_allocator.h:183:9: note: candidate: 'template<class _Up> constexpr bool __gnu_cxx::operator==(const __gnu_cxx::new_allocator<float>&, const __gnu_cxx::new_allocator<_Tp>&)' (reversed)
  183 |         operator==(const new_allocator&, const new_allocator<_Up>&)
      |         ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ext/new_allocator.h:183:9: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const __gnu_cxx::new_allocator<_Tp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/x86_64-apple-darwin19/bits/c++allocator.h:33,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/allocator.h:46,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ext/new_allocator.h:183:9: note: candidate: 'template<class _Up> constexpr bool __gnu_cxx::operator==(const __gnu_cxx::new_allocator<int>&, const __gnu_cxx::new_allocator<_Tp>&)' (reversed)
  183 |         operator==(const new_allocator&, const new_allocator<_Up>&)
      |         ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ext/new_allocator.h:183:9: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const __gnu_cxx::new_allocator<_Tp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/x86_64-apple-darwin19/bits/c++allocator.h:33,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/allocator.h:46,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ext/new_allocator.h:183:9: note: candidate: 'template<class _Up> constexpr bool __gnu_cxx::operator==(const __gnu_cxx::new_allocator<short int>&, const __gnu_cxx::new_allocator<_Tp>&)' (reversed)
  183 |         operator==(const new_allocator&, const new_allocator<_Up>&)
      |         ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ext/new_allocator.h:183:9: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const __gnu_cxx::new_allocator<_Tp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_algobase.h:67,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/char_traits.h:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:40,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_iterator.h:1105:5: note: candidate: 'template<class _IteratorL, class _IteratorR, class _Container>  requires requires(_IteratorL __lhs, _IteratorR __rhs) {{__lhs == __rhs} -> decltype(auto) [requires std::convertible_to<<placeholder>, bool>];} constexpr bool __gnu_cxx::operator==(const __gnu_cxx::__normal_iterator<_IteratorL, _Container>&, const __gnu_cxx::__normal_iterator<_IteratorR, _Container>&)' (reversed)
 1105 |     operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_iterator.h:1105:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/x86_64-apple-darwin19/bits/c++allocator.h:33,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/allocator.h:46,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ext/new_allocator.h:183:9: note: candidate: 'template<class _Up> constexpr bool __gnu_cxx::operator==(const __gnu_cxx::new_allocator<signed char>&, const __gnu_cxx::new_allocator<_Tp>&)' (reversed)
  183 |         operator==(const new_allocator&, const new_allocator<_Up>&)
      |         ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ext/new_allocator.h:183:9: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const __gnu_cxx::new_allocator<_Tp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/regex:63,
                 from .../lib/b.i.o./include/bio/format/bcf_input_handler.hpp:19,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:20,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/regex.h:1208:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator==(const std::__cxx11::sub_match<_BiIter>&, std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&)' (reversed)
 1208 |     operator==(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/regex.h:1208:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/regex:63,
                 from .../lib/b.i.o./include/bio/format/bcf_input_handler.hpp:19,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:20,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/regex.h:1375:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator==(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type*)' (reversed)
 1375 |     operator==(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/regex.h:1375:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/regex:63,
                 from .../lib/b.i.o./include/bio/format/bcf_input_handler.hpp:19,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:20,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/regex.h:1547:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator==(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type&)' (reversed)
 1547 |     operator==(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/regex.h:1547:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_algobase.h:67,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/char_traits.h:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:40,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_iterator.h:494:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator==(const std::reverse_iterator<_IteratorL>&, const std::reverse_iterator<_IteratorR>&) requires requires{{std::operator==::__x->base() == std::operator==::__y->base()} -> decltype(auto) [requires std::convertible_to<<placeholder>, bool>];}' (reversed)
  494 |     operator==(const reverse_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_iterator.h:494:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::reverse_iterator<_IteratorL>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_algobase.h:67,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/char_traits.h:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:40,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_iterator.h:1533:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator==(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&) requires requires{{std::operator==::__x->base() == std::operator==::__y->base()} -> decltype(auto) [requires std::convertible_to<<placeholder>, bool>];}' (reversed)
 1533 |     operator==(const move_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_iterator.h:1533:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::move_iterator<_IteratorL>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/allocator.h:230:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator==(const std::allocator<_CharT>&, const std::allocator<_T2>&)' (reversed)
  230 |     operator==(const allocator<_T1>&, const allocator<_T2>&)
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/allocator.h:230:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::allocator<_CharT>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/basic_string.h:48,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:55,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string_view:540:5: note: candidate: 'constexpr bool std::operator==(std::basic_string_view<_CharT, _Traits>, std::__type_identity_t<std::basic_string_view<_CharT, _Traits> >) [with _CharT = char; _Traits = std::char_traits<char>; std::__type_identity_t<std::basic_string_view<_CharT, _Traits> > = std::basic_string_view<char>]' (reversed)
  540 |     operator==(basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string_view:541:70: note:   no known conversion for argument 2 from 'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} to 'std::__type_identity_t<std::basic_string_view<char> >' {aka 'std::basic_string_view<char>'}
  541 |                __type_identity_t<basic_string_view<_CharT, _Traits>> __y)
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:55,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/basic_string.h:6247:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const _CharT*)' (reversed)
 6247 |     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/basic_string.h:6247:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/unique_ptr.h:37,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/locale_conv.h:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/locale:43,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_path.h:37,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:45,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/tuple:1513:5: note: candidate: 'template<class ... _TElements, class ... _UElements> constexpr bool std::operator==(const std::tuple<_Tps ...>&, const std::tuple<_UTypes ...>&)' (reversed)
 1513 |     operator==(const tuple<_TElements...>& __t,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/tuple:1513:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::tuple<_Tps ...>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/locale_conv.h:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/locale:43,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_path.h:37,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:45,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/unique_ptr.h:753:5: note: candidate: 'template<class _Tp, class _Dp, class _Up, class _Ep> bool std::operator==(const std::unique_ptr<_Tp, _Dp>&, const std::unique_ptr<_Up, _Ep>&)' (reversed)
  753 |     operator==(const unique_ptr<_Tp, _Dp>& __x,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/unique_ptr.h:753:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::unique_ptr<_Tp, _Dp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/locale_conv.h:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/locale:43,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_path.h:37,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:45,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/unique_ptr.h:760:5: note: candidate: 'template<class _Tp, class _Dp> bool std::operator==(const std::unique_ptr<_Tp, _Dp>&, std::nullptr_t)' (reversed)
  760 |     operator==(const unique_ptr<_Tp, _Dp>& __x, nullptr_t) noexcept
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/unique_ptr.h:760:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::unique_ptr<_Tp, _Dp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/shared_ptr.h:53,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_path.h:46,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:45,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/shared_ptr_base.h:1410:5: note: candidate: 'template<class _Tp1, class _Tp2, __gnu_cxx::_Lock_policy _Lp> bool std::operator==(const std::__shared_ptr<_Tp1, _Lp>&, const std::__shared_ptr<_Tp2, _Lp>&)' (reversed)
 1410 |     operator==(const __shared_ptr<_Tp1, _Lp>& __a,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/shared_ptr_base.h:1410:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::__shared_ptr<_Tp1, _Lp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/shared_ptr.h:53,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_path.h:46,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:45,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/shared_ptr_base.h:1416:5: note: candidate: 'template<class _Tp, __gnu_cxx::_Lock_policy _Lp> bool std::operator==(const std::__shared_ptr<_Tp, _Lp>&, std::nullptr_t)' (reversed)
 1416 |     operator==(const __shared_ptr<_Tp, _Lp>& __a, nullptr_t) noexcept
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/shared_ptr_base.h:1416:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::__shared_ptr<_Tp, _Lp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_path.h:46,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:45,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/shared_ptr.h:437:5: note: candidate: 'template<class _Tp, class _Up> bool std::operator==(const std::shared_ptr<_Tp>&, const std::shared_ptr<_Tp>&)' (reversed)
  437 |     operator==(const shared_ptr<_Tp>& __a, const shared_ptr<_Up>& __b) noexcept
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/shared_ptr.h:437:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::shared_ptr<_Tp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_path.h:46,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:45,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/shared_ptr.h:443:5: note: candidate: 'template<class _Tp> bool std::operator==(const std::shared_ptr<_Tp>&, std::nullptr_t)' (reversed)
  443 |     operator==(const shared_ptr<_Tp>& __a, nullptr_t) noexcept
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/shared_ptr.h:443:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::shared_ptr<_Tp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ranges:44,
                 from .../lib/b.i.o./include/bio/detail/views_eager_split.hpp:18,
                 from .../lib/b.i.o./include/bio/detail/index_tabix.hpp:16,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:18,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/optional:1038:5: note: candidate: 'template<class _Tp, class _Up> constexpr std::__optional_eq_t<_Tp, _Up> std::operator==(const std::optional<_Tp>&, const std::optional<_Up>&)' (reversed)
 1038 |     operator==(const optional<_Tp>& __lhs, const optional<_Up>& __rhs)
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/optional:1038:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::optional<_Tp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ranges:44,
                 from .../lib/b.i.o./include/bio/detail/views_eager_split.hpp:18,
                 from .../lib/b.i.o./include/bio/detail/index_tabix.hpp:16,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:18,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/optional:1098:5: note: candidate: 'template<class _Tp> constexpr bool std::operator==(const std::optional<_Tp>&, std::nullopt_t)' (reversed)
 1098 |     operator==(const optional<_Tp>& __lhs, nullopt_t) noexcept
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/optional:1098:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::optional<_Tp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ranges:44,
                 from .../lib/b.i.o./include/bio/detail/views_eager_split.hpp:18,
                 from .../lib/b.i.o./include/bio/detail/index_tabix.hpp:16,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:18,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/optional:1166:5: note: candidate: 'template<class _Tp, class _Up> constexpr std::__optional_eq_t<_Tp, _Up> std::operator==(const std::optional<_Tp>&, const _Up&)' (reversed)
 1166 |     operator==(const optional<_Tp>& __lhs, const _Up& __rhs)
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/optional:1166:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::optional<_Tp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/ranges:44,
                 from .../lib/b.i.o./include/bio/detail/views_eager_split.hpp:18,
                 from .../lib/b.i.o./include/bio/detail/index_tabix.hpp:16,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:18,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/optional:1172:5: note: candidate: 'template<class _Tp, class _Up> constexpr std::__optional_eq_t<_Up, _Tp> std::operator==(const _Up&, const std::optional<_Tp>&)' (reversed)
 1172 |     operator==(const _Up& __lhs, const optional<_Tp>& __rhs)
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/optional:1172:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const std::optional<_Tp>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/functional:59,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/algorithm:74,
                 from .../lib/b.i.o./include/bio/stream/detail/fast_streambuf_iterator.hpp:18,
                 from .../lib/b.i.o./include/bio/detail/index_tabix.hpp:18,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:18,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/std_function.h:688:5: note: candidate: 'template<class _Res, class ... _Args> bool std::operator==(const std::function<_Res(_ArgTypes ...)>&, std::nullptr_t)' (reversed)
  688 |     operator==(const function<_Res(_Args...)>& __f, nullptr_t) noexcept
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/std_function.h:688:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::function<_Res(_ArgTypes ...)>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:351:3: note: candidate: 'bool std::operator==(const std::error_code&, const std::error_condition&' (reversed)
  351 |   operator==(const error_code& __lhs, const error_condition& __rhs) noexcept
      |   ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:351:32: note:   no known conversion for argument 1 from 'std::basic_string_view<char>' to 'const std::error_code&'
  351 |   operator==(const error_code& __lhs, const error_condition& __rhs) noexcept
      |              ~~~~~~~~~~~~~~~~~~^~~~~
In file included from .../lib/b.i.o./include/bio/detail/reader_base.hpp:20,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:19,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/variant:1223:3: note: candidate: 'template<class ... _Types> constexpr bool std::operator==(const std::variant<_Types ...>&, const std::variant<_Types ...>&)'
 1223 |   _VARIANT_RELATION_FUNCTION_TEMPLATE(==, equal)
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/variant:1223:3: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::basic_string_view<char>' is not derived from 'const std::variant<_Types ...>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/regex:63,
                 from .../lib/b.i.o./include/bio/format/bcf_input_handler.hpp:19,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:20,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/regex.h:1037:5: note: candidate: 'template<class _BiIter> bool std::__cxx11::operator==(const std::__cxx11::sub_match<_BiIter>&, const std::__cxx11::sub_match<_BiIter>&)'
 1037 |     operator==(const sub_match<_BiIter>& __lhs, const sub_match<_BiIter>& __rhs)
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/regex.h:1037:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/regex:63,
                 from .../lib/b.i.o./include/bio/format/bcf_input_handler.hpp:19,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:20,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/regex.h:2103:5: note: candidate: 'template<class _Bi_iter, class _Alloc> bool std::__cxx11::operator==(const std::__cxx11::match_results<_BiIter, _Alloc>&, const std::__cxx11::match_results<_BiIter, _Alloc>&)'
 2103 |     operator==(const match_results<_Bi_iter, _Alloc>& __m1,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/regex.h:2103:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const std::__cxx11::match_results<_BiIter, _Alloc>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/set:62,
                 from .../lib/seqan3/submodules/sharg-parser/include/sharg/parser.hpp:15,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:5:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_multiset.h:971:5: note: candidate: 'template<class _Key, class _Compare, class _Alloc> bool std::operator==(const std::multiset<_Key, _Compare, _Allocator>&, const std::multiset<_Key, _Compare, _Allocator>&)'
  971 |     operator==(const multiset<_Key, _Compare, _Alloc>& __x,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_multiset.h:971:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const std::multiset<_Key, _Compare, _Allocator>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/set:61,
                 from .../lib/seqan3/submodules/sharg-parser/include/sharg/parser.hpp:15,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:5:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_set.h:985:5: note: candidate: 'template<class _Key, class _Compare, class _Alloc> bool std::operator==(const std::set<_Key, _Compare, _Allocator>&, const std::set<_Key, _Compare, _Allocator>&)'
  985 |     operator==(const set<_Key, _Compare, _Alloc>& __x,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_set.h:985:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const std::set<_Key, _Compare, _Allocator>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/map:62,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/regex:52,
                 from .../lib/b.i.o./include/bio/format/bcf_input_handler.hpp:19,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:20,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_multimap.h:1128:5: note: candidate: 'template<class _Key, class _Tp, class _Compare, class _Alloc> bool std::operator==(const std::multimap<_Key, _Tp, _Compare, _Allocator>&, const std::multimap<_Key, _Tp, _Compare, _Allocator>&)'
 1128 |     operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_multimap.h:1128:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const std::multimap<_Key, _Tp, _Compare, _Allocator>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/map:61,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/regex:52,
                 from .../lib/b.i.o./include/bio/format/bcf_input_handler.hpp:19,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:20,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_map.h:1463:5: note: candidate: 'template<class _Key, class _Tp, class _Compare, class _Alloc> bool std::operator==(const std::map<_Key, _Tp, _Compare, _Allocator>&, const std::map<_Key, _Tp, _Compare, _Allocator>&)'
 1463 |     operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_map.h:1463:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const std::map<_Key, _Tp, _Compare, _Allocator>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stack:61,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/regex:47,
                 from .../lib/b.i.o./include/bio/format/bcf_input_handler.hpp:19,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:20,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_stack.h:319:5: note: candidate: 'template<class _Tp, class _Seq> bool std::operator==(const std::stack<_Tp, _Seq>&, const std::stack<_Tp, _Seq>&)'
  319 |     operator==(const stack<_Tp, _Seq>& __x, const stack<_Tp, _Seq>& __y)
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_stack.h:319:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const std::stack<_Tp, _Seq>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/deque:67,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stack:60,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/regex:47,
                 from .../lib/b.i.o./include/bio/format/bcf_input_handler.hpp:19,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:20,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_deque.h:2246:5: note: candidate: 'template<class _Tp, class _Alloc> bool std::operator==(const std::deque<_Tp, _Alloc>&, const std::deque<_Tp, _Alloc>&)'
 2246 |     operator==(const deque<_Tp, _Alloc>& __x, const deque<_Tp, _Alloc>& __y)
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_deque.h:2246:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const std::deque<_Tp, _Alloc>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/iosfwd:40,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:40,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/postypes.h:222:5: note: candidate: 'template<class _StateT> bool std::operator==(const std::fpos<_StateT>&, const std::fpos<_StateT>&)'
  222 |     operator==(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/postypes.h:222:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const std::fpos<_StateT>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_algobase.h:64,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/char_traits.h:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:40,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_pair.h:466:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator==(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)'
  466 |     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/stl_pair.h:466:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'bio::var_io::info_element_value_type<bio::ownership::shallow>' {aka 'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>'} is not derived from 'const std::pair<_T1, _T2>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/basic_string.h:48,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:55,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string_view:534:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator==(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>)'
  534 |     operator==(basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string_view:534:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/basic_string.h:48,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:55,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string_view:540:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator==(std::basic_string_view<_CharT, _Traits>, std::__type_identity_t<std::basic_string_view<_CharT, _Traits> >)'
  540 |     operator==(basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string_view:540:5: note:   template argument deduction/substitution failed:
.../test/benchmark/simulation/mason_vcf_converter.cpp:61:49: note:   'std::variant<char, signed char, short int, int, float, std::basic_string_view<char, std::char_traits<char> >, std::vector<signed char, std::allocator<signed char> >, std::vector<short int, std::allocator<short int> >, std::vector<int, std::allocator<int> >, std::vector<float, std::allocator<float> >, std::vector<std::basic_string_view<char, std::char_traits<char> >, std::allocator<std::basic_string_view<char, std::char_traits<char> > > >, bool>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   61 |                 if (rec.info().front().value == "INS"sv) {
      |                                                 ^~~~~~~
In file included from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/string:55,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/stdexcept:39,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/system_error:41,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/fs_fwd.h:35,
                 from /usr/local/Cellar/gcc/11.2.0_3/include/c++/11/filesystem:44,
                 from .../lib/b.i.o./include/bio/var_io/reader.hpp:16,
                 from .../test/benchmark/simulation/mason_vcf_converter.cpp:1:
/usr/local/Cellar/gcc/11.2.0_3/include/c++/11/bits/basic_string.h:6225:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator==(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)'
 6225 |     operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
      |     ^~~~~~~~
...
make[2]: *** [src/CMakeFiles/MasonVcfConverter.dir/__/test/benchmark/simulation/mason_vcf_converter.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/MasonVcfConverter.dir/all] Error 2
make: *** [all] Error 2

My current solution is now:

void convert_vcf(cmd_arguments const & args)
{
    bio::var_io::reader reader{args.input_file_path};
    bio::var_io::writer writer{args.output_file_path};

    for (auto & rec : reader) {

        if (rec.id().starts_with("sim_sv_indel")) {
            for (auto & info : rec.info()) {
                if (info.id != "SVTYPE") continue;
                if(auto* s = std::get_if<std::string_view>(&info.value)) {
                    std::string alt = "<" + std::string{*s} + ">";
                    rec.alt() = {alt};
                }
            }
            writer.push_back(rec);
        } else {
            if (rec.id().rfind("sim_sv_indel", 0) == 0 ) {
                seqan3::debug_stream << rec.info().front().id << "\n";
            }
        }
    }
}
@h-2
Copy link
Member

h-2 commented Oct 18, 2022

I have double-checked this and variant<..., string_view, ...> is indeed not comparable with string_view. So if you want comparison, you would need to compare with bio::io::var_io::info_element_value_type{"INS"} which is arguably not very nice.
The workaround you chose is also very valid, and probably what I would recommend, too!

However, I see another problem with the code:

            for (auto & info : rec.info()) {
                if (info.id != "SVTYPE") continue;
                if(auto* s = std::get_if<std::string_view>(&info.value)) {
                    std::string alt = "<" + std::string{*s} + ">";
                    rec.alt() = {alt};
                }
            }
            writer.push_back(rec);

I think you are using the default records, which means that alt is std::vector<std::string_view>. You are assigning a std::string to this within the inner if-statement. That string goes out-of-scope at the end of the if-statement, so the string_view is "dangling" when you push the record to the writer.

You can fix this by defining alt in the same scope that you call push_back()... but if you do bigger changes to the record, it is always recommended to create a deep record instead.

The current main-branch has easy-to-use preset for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants