luntergroup / octopus

Bayesian haplotype-based mutation calling
MIT License
301 stars 37 forks source link

measure.cpp errors #144

Closed cameron-jack closed 3 years ago

cameron-jack commented 3 years ago

Hi. No matter which way (or on what machine) I attempt to install Octopus I'm getting the same errors at compile time in measure.cpp (from calling "scripts/install.py" in this case). I've been able to install and use Octopus once, a couple of months ago, on an Ubuntu machine. Since then I've been totally out of luck so I really hope you can help. Thanks in advance.

``[ 58%] Building CXX object src/CMakeFiles/octopus.dir/core/csr/measures/allele_frequency_bias.cpp.o /home/cameron/octopus/src/core/csr/measures/measure.cpp: In function 'auto octopus::csr::{anonymous}::mean(octopus::csr::Measure::Array<boost::variant<bool, int, long unsigned int, double> >&)': /home/cameron/octopus/src/core/csr/measures/measure.cpp:268:75: error: no matching function for call to 'apply_visitor(octopus::csr::{anonymous}::DivideVisitor, boost::variant<bool, int, long unsigned int, double>)' return boost::apply_visitor(DivideVisitor {values.size()}, sum(values)); ^ In file included from /usr/local/include/boost/variant/apply_visitor.hpp:16, from /usr/local/include/boost/variant/detail/hash_variant.hpp:23, from /usr/local/include/boost/variant/variant.hpp:34, from /usr/local/include/boost/variant.hpp:17, from /home/cameron/octopus/src/core/csr/measures/measure.hpp:13, from /home/cameron/octopus/src/core/csr/measures/measure.cpp:4: /usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:68:1: note: candidate: 'typename Visitor::result_type boost::apply_visitor(Visitor&, Visitable&) [with Visitor = octopus::csr::{anonymous}::DivideVisitor; Visitable = boost::variant<bool, int, long unsigned int, double>; typename Visitor::result_type = boost::variant<bool, int, long unsigned int, double>]' apply_visitor(Visitor& visitor, Visitable& visitable) ^~~~~ /usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:68:1: note: conversion of argument 2 would be ill-formed: /home/cameron/octopus/src/core/csr/measures/measure.cpp:268:67: error: cannot bind non-const lvalue reference of type 'boost::variant<bool, int, long unsigned int, double>&' to an rvalue of type 'boost::variant<bool, int, long unsigned int, double>' return boost::apply_visitor(DivideVisitor {values.size()}, sum(values));


In file included from /usr/local/include/boost/variant/apply_visitor.hpp:16,
                 from /usr/local/include/boost/variant/detail/hash_variant.hpp:23,
                 from /usr/local/include/boost/variant/variant.hpp:34,
                 from /usr/local/include/boost/variant.hpp:17,
                 from /home/cameron/octopus/src/core/csr/measures/measure.hpp:13,
                 from /home/cameron/octopus/src/core/csr/measures/measure.cpp:4:
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:82:1: note: candidate: 'typename Visitor::result_type boost::apply_visitor(const Visitor&, Visitable&) [with Visitor = octopus::csr::{anonymous}::DivideVisitor; Visitable = boost::variant<bool, int, long unsigned int, double>; typename Visitor::result_type = boost::variant<bool, int, long unsigned int, double>]' <near match>
 apply_visitor(const Visitor& visitor, Visitable& visitable)
 ^~~~~~~~~~~~~
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:82:1: note:   conversion of argument 2 would be ill-formed:
/home/cameron/octopus/src/core/csr/measures/measure.cpp:268:67: error: cannot bind non-const lvalue reference of type 'boost::variant<bool, int, long unsigned int, double>&' to an rvalue of type 'boost::variant<bool, int, long unsigned int, double>'
     return boost::apply_visitor(DivideVisitor {values.size()}, sum(values));
                                                                ~~~^~~~~~~~
In file included from /usr/local/include/boost/variant/apply_visitor.hpp:16,
                 from /usr/local/include/boost/variant/detail/hash_variant.hpp:23,
                 from /usr/local/include/boost/variant/variant.hpp:34,
                 from /usr/local/include/boost/variant.hpp:17,
                 from /home/cameron/octopus/src/core/csr/measures/measure.hpp:13,
                 from /home/cameron/octopus/src/core/csr/measures/measure.cpp:4:
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:150:23: note: candidate: 'template<class Visitor, class Visitable> decltype(auto) boost::apply_visitor(Visitor&, Visitable&, typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type*)'
 inline decltype(auto) apply_visitor(Visitor& visitor, Visitable& visitable,
                       ^~~~~~~~~~~~~
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:150:23: note:   template argument deduction/substitution failed:
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp: In substitution of 'template<class Visitor, class Visitable> decltype(auto) boost::apply_visitor(Visitor&, Visitable&, typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type*) [with Visitor = octopus::csr::{anonymous}::DivideVisitor; Visitable = boost::variant<bool, int, long unsigned int, double>]':
/home/cameron/octopus/src/core/csr/measures/measure.cpp:268:75:   required from here
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:150:23: error: no type named 'type' in 'struct boost::disable_if<boost::detail::variant::has_result_type<octopus::csr::{anonymous}::DivideVisitor>, void>'
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:160:23: note: candidate: 'template<class Visitor, class Visitable> decltype(auto) boost::apply_visitor(const Visitor&, Visitable&, typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type*)'
 inline decltype(auto) apply_visitor(const Visitor& visitor, Visitable& visitable,
                       ^~~~~~~~~~~~~
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:160:23: note:   template argument deduction/substitution failed:
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp: In substitution of 'template<class Visitor, class Visitable> decltype(auto) boost::apply_visitor(const Visitor&, Visitable&, typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type*) [with Visitor = octopus::csr::{anonymous}::DivideVisitor; Visitable = boost::variant<bool, int, long unsigned int, double>]':
/home/cameron/octopus/src/core/csr/measures/measure.cpp:268:75:   required from here
/usr/local/include/boost/variant/detail/apply_visitor_unary.hpp:160:23: error: no type named 'type' in 'struct boost::disable_if<boost::detail::variant::has_result_type<octopus::csr::{anonymous}::DivideVisitor>, void>'
In file included from /usr/local/include/boost/variant/apply_visitor.hpp:17,
                 from /usr/local/include/boost/variant/detail/hash_variant.hpp:23,
                 from /usr/local/include/boost/variant/variant.hpp:34,
                 from /usr/local/include/boost/variant.hpp:17,
                 from /home/cameron/octopus/src/core/csr/measures/measure.hpp:13,
                 from /home/cameron/octopus/src/core/csr/measures/measure.cpp:4:
/usr/local/include/boost/variant/detail/apply_visitor_binary.hpp:145:1: note: candidate: 'template<class Visitor, class Visitable1, class Visitable2> typename Visitor::result_type boost::apply_visitor(Visitor&, Visitable1&, Visitable2&)'
 apply_visitor(
 ^~~~~~~~~~~~~
/usr/local/include/boost/variant/detail/apply_visitor_binary.hpp:145:1: note:   template argument deduction/substitution failed:
/home/cameron/octopus/src/core/csr/measures/measure.cpp:268:75: note:   candidate expects 3 arguments, 2 provided
     return boost::apply_visitor(DivideVisitor {values.size()}, sum(values));
                                                                           ^
In file included from /usr/local/include/boost/variant/apply_visitor.hpp:17,
                 from /usr/local/include/boost/variant/detail/hash_variant.hpp:23,
                 from /usr/local/include/boost/variant/variant.hpp:34,
                 from /usr/local/include/boost/variant.hpp:17,
                 from /home/cameron/octopus/src/core/csr/measures/measure.hpp:13,
                 from /home/cameron/octopus/src/core/csr/measures/measure.cpp:4:
/usr/local/include/boost/variant/detail/apply_visitor_binary.hpp:168:1: note: candidate: 'template<class Visitor, class Visitable1, class Visitable2> typename Visitor::result_type boost::apply_visitor(const Visitor&, Visitable1&, Visitable2&)'
 apply_visitor(
 ^~~~~~~~~~~~~
/usr/local/include/boost/variant/detail/apply_visitor_binary.hpp:168:1: note:   template argument deduction/substitution failed:
/home/cameron/octopus/src/core/csr/measures/measure.cpp:268:75: note:   candidate expects 3 arguments, 2 provided
     return boost::apply_visitor(DivideVisitor {values.size()}, sum(values));
                                                                           ^
In file included from /usr/local/include/boost/variant/apply_visitor.hpp:17,
                 from /usr/local/include/boost/variant/detail/hash_variant.hpp:23,
                 from /usr/local/include/boost/variant/variant.hpp:34,
                 from /usr/local/include/boost/variant.hpp:17,
                 from /home/cameron/octopus/src/core/csr/measures/measure.hpp:13,
                 from /home/cameron/octopus/src/core/csr/measures/measure.cpp:4:
/usr/local/include/boost/variant/detail/apply_visitor_binary.hpp:251:23: note: candidate: 'template<class Visitor, class Visitable1, class Visitable2> decltype(auto) boost::apply_visitor(Visitor&, Visitable1&, Visitable2&, typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type*)'
 inline decltype(auto) apply_visitor(Visitor& visitor, Visitable1& visitable1, Visitable2& visitable2,
                       ^~~~~~~~~~~~~
/usr/local/include/boost/variant/detail/apply_visitor_binary.hpp:251:23: note:   template argument deduction/substitution failed:
/home/cameron/octopus/src/core/csr/measures/measure.cpp:268:75: note:   candidate expects 4 arguments, 2 provided
     return boost::apply_visitor(DivideVisitor {values.size()}, sum(values));
                                                                           ^
In file included from /usr/local/include/boost/variant/apply_visitor.hpp:17,
                 from /usr/local/include/boost/variant/detail/hash_variant.hpp:23,
                 from /usr/local/include/boost/variant/variant.hpp:34,
                 from /usr/local/include/boost/variant.hpp:17,
                 from /home/cameron/octopus/src/core/csr/measures/measure.hpp:13,
                 from /home/cameron/octopus/src/core/csr/measures/measure.cpp:4:
/usr/local/include/boost/variant/detail/apply_visitor_binary.hpp:264:23: note: candidate: 'template<class Visitor, class Visitable1, class Visitable2> decltype(auto) boost::apply_visitor(const Visitor&, Visitable1&, Visitable2&, typename boost::disable_if<boost::detail::variant::has_result_type<Visitor> >::type*)'
 inline decltype(auto) apply_visitor(const Visitor& visitor, Visitable1& visitable1, Visitable2& visitable2,
                       ^~~~~~~~~~~~~
/usr/local/include/boost/variant/detail/apply_visitor_binary.hpp:264:23: note:   template argument deduction/substitution failed:
/home/cameron/octopus/src/core/csr/measures/measure.cpp:268:75: note:   candidate expects 4 arguments, 2 provided
     return boost::apply_visitor(DivideVisitor {values.size()}, sum(values));
                                                                           ^
In file included from /usr/local/include/boost/variant/apply_visitor.hpp:18,
                 from /usr/local/include/boost/variant/detail/hash_variant.hpp:23,
                 from /usr/local/include/boost/variant/variant.hpp:34,
                 from /usr/local/include/boost/variant.hpp:17,
                 from /home/cameron/octopus/src/core/csr/measures/measure.hpp:13,
                 from /home/cameron/octopus/src/core/csr/measures/measure.cpp:4:
/usr/local/include/boost/variant/detail/apply_visitor_delayed.hpp:103:13: note: candidate: 'template<class Visitor> typename boost::enable_if<boost::detail::variant::has_result_type<Visitor>, boost::apply_visitor_delayed_t<Visitor> >::type boost::apply_visitor(Visitor&)'
     >::type apply_visitor(Visitor& visitor)
             ^~~~~~~~~~~~~
/usr/local/include/boost/variant/detail/apply_visitor_delayed.hpp:103:13: note:   template argument deduction/substitution failed:
/home/cameron/octopus/src/core/csr/measures/measure.cpp:268:75: note:   candidate expects 1 argument, 2 provided
     return boost::apply_visitor(DivideVisitor {values.size()}, sum(values));
                                                                           ^
In file included from /usr/local/include/boost/variant/apply_visitor.hpp:18,
                 from /usr/local/include/boost/variant/detail/hash_variant.hpp:23,
                 from /usr/local/include/boost/variant/variant.hpp:34,
                 from /usr/local/include/boost/variant.hpp:17,
                 from /home/cameron/octopus/src/core/csr/measures/measure.hpp:13,
                 from /home/cameron/octopus/src/core/csr/measures/measure.cpp:4:
/usr/local/include/boost/variant/detail/apply_visitor_delayed.hpp:140:13: note: candidate: 'template<class Visitor> typename boost::disable_if<boost::detail::variant::has_result_type<Visitor>, boost::apply_visitor_delayed_cpp14_t<Visitor> >::type boost::apply_visitor(Visitor&)'
     >::type apply_visitor(Visitor& visitor)
             ^~~~~~~~~~~~~
/usr/local/include/boost/variant/detail/apply_visitor_delayed.hpp:140:13: note:   template argument deduction/substitution failed:
/home/cameron/octopus/src/core/csr/measures/measure.cpp:268:75: note:   candidate expects 1 argument, 2 provided
     return boost::apply_visitor(DivideVisitor {values.size()}, sum(values));
                                                                           ^
/home/cameron/octopus/src/core/csr/measures/measure.cpp: In function 'octopus::csr::Measure::Optional<boost::variant<bool, int, long unsigned int, double> > octopus::csr::{anonymous}::aggregate(octopus::csr::Measure::Array<boost::variant<bool, int, long unsigned int, double> >&, octopus::csr::Measure::Aggregator)':
/home/cameron/octopus/src/core/csr/measures/measure.cpp:284:56: error: could not convert 'octopus::csr::{anonymous}::mean((* & values))' from 'void' to 'octopus::csr::Measure::Optional<boost::variant<bool, int, long unsigned int, double> >' {aka 'boost::optional<boost::variant<bool, int, long unsigned int, double> >'}
             case Measure::Aggregator::mean: return mean(values);
                                                    ~~~~^~~~~~~~
[ 59%] Building CXX object src/CMakeFiles/octopus.dir/core/csr/measures/strand_bias.cpp.o
[ 59%] Building CXX object src/CMakeFiles/octopus.dir/core/csr/measures/mapping_quality_divergence.cpp.o
[ 60%] Building CXX object src/CMakeFiles/octopus.dir/core/csr/measures/gc_content.cpp.o
[ 60%] Building CXX object src/CMakeFiles/octopus.dir/core/csr/measures/filtered_read_fraction.cpp.o
[ 60%] Building CXX object src/CMakeFiles/octopus.dir/core/csr/measures/clipped_read_fraction.cpp.o
[ 61%] Building CXX object src/CMakeFiles/octopus.dir/core/csr/measures/is_denovo.cpp.o
[ 61%] Building CXX object src/CMakeFiles/octopus.dir/core/csr/measures/is_somatic.cpp.o
At global scope:
cc1plus: warning: unrecognized command line option '-Wno-deprecated-copy'
make[2]: *** [src/CMakeFiles/octopus.dir/build.make:1558: src/CMakeFiles/octopus.dir/core/csr/measures/measure.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/cameron/octopus/build'
make[1]: *** [CMakeFiles/Makefile2:281: src/CMakeFiles/octopus.dir/all] Error 2
make[1]: Leaving directory '/home/cameron/octopus/build'
make: *** [Makefile:130: all] Error 2
dancooke commented 3 years ago

Which version are you using, and are you trying to install using the recommended procedure (note the --dependencies option to install.py).

cameron-jack commented 3 years ago

Octopus version 0.7.0. Yes, I'm trying the recommended procedure. Yes, I'm using --dependencies.

I've also tried removing -Werror from src/CMakeLists.txt.

More specifically from generated/version.hpp:

define VERSION_MAJOR 0

define VERSION_MINOR 7

define VERSION_PATCH 0

define VERSION_RELEASE ""

define GIT_BRANCH "develop"

define GIT_COMMIT_HASH "edf644fe"

dancooke commented 3 years ago

What OS are you using? Also, can you run

./scripts/install.py --dependencies --clean --verbose > octopus_install_log.txt

and post octopus_install_log.txt here?

dancooke commented 3 years ago

Closing due to inactivity.