Replies: 3 comments
-
Hi @behrj! If I needed to debug it, I would either print out the sequences to the terminal and re-try the application with just those sequences (i.e. making the set smaller and smaller by commenting them out), or use for example Visual Studio Code and the built-in debugger to see the trace and the state that your application is in, and why it behaves differently with a set vs. two-sequences. As you get assertion errors, I assume that you build with Your stated assertion seqan3/include/seqan3/alignment/decorator/gap_decorator.hpp Lines 680 to 683 in cdff3dd does hint that somewhere in the code, a character of an aligned sequence (= sequence + gaps, e.g. "AC-GT-AC-T") that is represented by the BTW I think you could also have opened an issue, but I guess here is fine too. |
Beta Was this translation helpful? Give feedback.
-
Hi Marcel, thanks for the quick response. Cheers, detect_fusions_banded: seqan3/include/seqan3/alignment/decorator/gap_decorator.hpp:683: void seqan3::gap_decorator<inner_type>::basic_iterator< >::jump(seqan3::gap_decorator<inner_type>::size_type) [with bool = true; inner_type = std::span<seqan3::dna5, 18446744073709551615>; seqan3::gap_decorator<inner_type>::size_type = long unsigned int]: Assertion `new_pos <= host->size()' failed. seqan3/include/seqan3/alignment/decorator/gap_decorator.hpp Lines 681 to 684 in fe7458e ==47== by 0x1AD56B: operator+= (gap_decorator.hpp:799) seqan3/include/seqan3/alignment/decorator/gap_decorator.hpp Lines 797 to 801 in fe7458e ==47== by 0x1AD56B: fill_aligned_sequence<std::ranges::reverse_view<std::ranges::ref_view<std::vector<std::pair<seqan3::detail::trace_directions, long unsigned int> > > >, seqan3::gap_decorator<std::span<seqan3::dna5, 18446744073709551615> >, seqan3::gap_decorator<std::span<seqan3::dna5, 18446744073709551615> > > (aligned_sequence_builder.hpp:243) seqan3/include/seqan3/alignment/matrix/detail/aligned_sequence_builder.hpp Lines 221 to 245 in fe7458e ==47== by 0x1AD56B: seqan3::detail::aligned_sequence_builder==47== by 0x1AD56B: seqan3::detail::aligned_sequence_builder&, std::span&>::result_type seqan3::detail::aligned_sequence_builder&, std::span&>::operator(), (seqan3::detail::matrix_major_order)0>::basic_iterator >, std::default_sentinel_t, (std::ranges::subrange_kind)0> >(std::ranges::subrange, (seqan3::detail::matrix_major_order)0>::basic_iterator >, std::default_sentinel_t, (std::ranges::subrange_kind)0>&&) (aligned_sequence_builder.hpp:207)seqan3/include/seqan3/alignment/matrix/detail/aligned_sequence_builder.hpp Lines 171 to 212 in fe7458e ==47== by 0x1AD7CF: void seqan3::detail::alignment_algorithm<...>==47== by 0x1AD7CF: void seqan3::detail::alignment_algorithm >, seqan3::align_cfg::gap_cost_affine, seqan3::align_cfg::output_score, seqan3::align_cfg::output_begin_position, seqan3::align_cfg::output_end_position, seqan3::align_cfg::band_fixed_size, seqan3::align_cfg::detail::result_type, seqan3::detail::advanceable_alignment_coordinate<(seqan3::detail::advanceable_alignment_coordinate_state)0>, std::nullopt_t*, std::nullopt_t*, std::nullopt_t*> > > >, seqan3::detail::deferred_crtp_base, seqan3::detail::alignment_trace_matrix_full_banded >, seqan3::detail::deferred_crtp_base >, seqan3::detail::deferred_crtp_base, seqan3::detail::deferred_crtp_base, seqan3::detail::deferred_crtp_base > >::make_alignment_result, std::span, std::function, seqan3::detail::advanceable_alignment_coordinate<(seqan3::detail::advanceable_alignment_coordinate_state)0>, std::nullopt_t*, std::nullopt_t*, std::nullopt_t*> >)> >(unsigned long, std::span&, std::span&, std::function, seqan3::detail::advanceable_alignment_coordinate<(seqan3::detail::advanceable_alignment_coordinate_state)0>, std::nullopt_t*, std::nullopt_t*, std::nullopt_t*> >)>&) [clone .isra.0] (alignment_algorithm.hpp:636) ==47== by 0x1ADA1F: compute_single_pair&, std::vector&, std::function, seqan3::detail::advanceable_alignment_coordinate<>, std::nullopt_t*, std::nullopt_t*, std::nullopt_t*> >)> > (alignment_algorithm.hpp:304)seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp Lines 283 to 311 in fe7458e ==47== by 0x1ADA1F: operator()<std::ranges::subrange<seqan3::detail::zip_view<std::ranges::single_view<std::tuple<std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&, std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&> >, std::ranges::iota_view<int, std::unreachable_sentinel_t> >::iterator, seqan3::detail::zip_view<std::ranges::single_view<std::tuple<std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&, std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&> >, std::ranges::iota_view<int, std::unreachable_sentinel_t> >::iterator, (std::ranges::subrange_kind)1>, std::function<void(seqan3::alignment_result<seqan3::detail::alignment_result_value_type<std::nullopt_t*, std::nullopt_t*, int, seqan3::detail::advanceable_alignment_coordinate<>, seqan3::detail::advanceable_alignment_coordinate<>, std::nullopt_t*, std::nullopt_t*, std::nullopt_t*> >)> > (alignment_algorithm.hpp:200) seqan3/include/seqan3/alignment/pairwise/alignment_algorithm.hpp Lines 193 to 201 in fe7458e ==47== by 0x1ADA1F: __invoke_impl==47== by 0x1ADA1F: __invoke_impl<void, seqan3::detail::alignment_algorithm<seqan3::configuration<seqan3::align_cfg::method_global, seqan3::align_cfg::scoring_scheme<seqan3::nucleotide_scoring_scheme >, seqan3::align_cfg::gap_cost_affine, seqan3::align_cfg::output_score, seqan3::align_cfg::output_begin_position, seqan3::align_cfg::output_end_position, seqan3::align_cfg::band_fixed_size, seqan3::align_cfg::detail::result_type<seqan3::alignment_result<seqan3::detail::alignment_result_value_type<std::nullopt_t*, std::nullopt_t*, int, seqan3::detail::advanceable_alignment_coordinate<(seqan3::detail::advanceable_alignment_coordinate_state)0>, seqan3::detail::advanceable_alignment_coordinate<(seqan3::detail::advanceable_alignment_coordinate_state)0>, std::nullopt_t*, std::nullopt_t*, std::nullopt_t*> > > >, seqan3::detail::deferred_crtp_base<seqan3::detail::alignment_matrix_policy, seqan3::detail::alignment_score_matrix_one_column_banded, seqan3::detail::alignment_trace_matrix_full_banded<seqan3::detail::trace_directions, false> >, seqan3::detail::deferred_crtp_base<seqan3::detail::affine_gap_policy, int, std::integral_constant<bool, false> >, seqan3::detail::deferred_crtp_baseseqan3::detail::find_optimum_policy, seqan3::detail::deferred_crtp_baseseqan3::detail::affine_gap_init_policy, seqan3::detail::deferred_crtp_base<seqan3::detail::scoring_scheme_policy, seqan3::nucleotide_scoring_scheme > >&, std::ranges::subrange<seqan3::detail::zip_view<std::ranges::single_view<std::tuple<std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&, std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&> >, std::ranges::iota_view<int, std::unreachable_sentinel_t> >::iterator, seqan3::detail::zip_view<std::ranges::single_view<std::tuple<std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&, std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&> >, std::ranges::iota_view<int, std::unreachable_sentinel_t> >::iterator, (std::ranges::subrange_kind)1>, std::function<void(seqan3::alignment_result<seqan3::detail::alignment_result_value_type<std::nullopt_t*, std::nullopt_t*, int, seqan3::detail::advanceable_alignment_coordinate<(seqan3::detail::advanceable_alignment_coordinate_state)0>, seqan3::detail::advanceable_alignment_coordinate<(seqan3::detail::advanceable_alignment_coordinate_state)0>, std::nullopt_t*, std::nullopt_t*, std::nullopt_t*> >)> > (invoke.h:61) ==47== by 0x16E48F: execute<std::function<void(std::ranges::subrange<seqan3::detail::zip_view<std::ranges::single_view<std::tuple<std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&, std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&> >, std::ranges::iota_view<int, std::unreachable_sentinel_t> >::iterator, seqan3::detail::zip_view<std::ranges::single_view<std::tuple<std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&, std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&> >, std::ranges::iota_view<int, std::unreachable_sentinel_t> >::iterator, (std::ranges::subrange_kind)1>, std::function<void(seqan3::alignment_result<seqan3::detail::alignment_result_value_type<std::nullopt_t*, std::nullopt_t*, int, seqan3::detail::advanceable_alignment_coordinate<>, seqan3::detail::advanceable_alignment_coordinate<>, std::nullopt_t*, std::nullopt_t*, std::nullopt_t*> >)>)>&, std::ranges::subrange<seqan3::detail::zip_view<std::ranges::single_view<std::tuple<std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&, std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&> >, std::ranges::iota_view<int, std::unreachable_sentinel_t> >::iterator, seqan3::detail::zip_view<std::ranges::single_view<std::tuple<std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&, std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&> >, std::ranges::iota_view<int, std::unreachable_sentinel_t> >::iterator, (std::ranges::subrange_kind)1>, seqan3::detail::algorithm_executor_blocking<seqan3::detail::chunk_view<seqan3::detail::zip_view<std::ranges::single_view<std::tuple<std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&, std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&> >, std::ranges::iota_view<int, std::unreachable_sentinel_t> > >, std::function<void(std::ranges::subrange<seqan3::detail::zip_view<std::ranges::single_view<std::tuple<std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&, std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&> >, std::ranges::iota_view<int, std::unreachable_sentinel_t> >::iterator, seqan3::detail::zip_view<std::ranges::single_view<std::tuple<std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&, std::vector<seqan3::dna5, std::allocatorseqan3::dna5 >&> >, std::ranges::iota_view<int, std::unreachable_sentinel_t> >::iterator, (std::ranges::subrange_kind)1>, std::function<void(seqan3::alignment_result<seqan3::detail::alignment_result_value_type<std::nullopt_t*, std::nullopt_t*, int, seqan3::detail::advanceable_alignment_coordinate<>, seqan3::detail::advanceable_alignment_coordinate<>, std::nullopt_t*, std::nullopt_t*, std::nullopt_t*> >)>)>, seqan3::alignment_result<seqan3::detail::alignment_result_value_type<std::nullopt_t*, std::nullopt_t*, int, seqan3::detail::advanceable_alignment_coordinate<>, seqan3::detail::advanceable_alignment_coordinate<>, std::nullopt_t*, std::nullopt_t*, std::nullopt_t*> >, seqan3::detail::execution_handler_sequential>::fill_buffer()::<lambda(auto:78&&)> > (execution_handler_sequential.hpp:49) ==47== by 0x16E48F: fill_buffer (algorithm_executor_blocking.hpp:262) seqan3/include/seqan3/core/algorithm/detail/algorithm_executor_blocking.hpp Lines 248 to 279 in fe7458e ==47== by 0x16E48F: next_result (algorithm_executor_blocking.hpp:199) seqan3/include/seqan3/core/algorithm/detail/algorithm_executor_blocking.hpp Lines 192 to 212 in fe7458e ==47== by 0x16E48F: next (algorithm_result_generator_range.hpp:139) seqan3/include/seqan3/core/algorithm/algorithm_result_generator_range.hpp Lines 134 to 146 in fe7458e ==47== by 0x16E48F: operator++ (algorithm_result_generator_range.hpp:234) seqan3/include/seqan3/core/algorithm/algorithm_result_generator_range.hpp Lines 230 to 236 in fe7458e ==47== by 0x16E48F: algorithm_range_iterator (algorithm_result_generator_range.hpp:202) seqan3/include/seqan3/core/algorithm/algorithm_result_generator_range.hpp Lines 199 to 203 in fe7458e ==47== by 0x16E48F: begin (algorithm_result_generator_range.hpp:102) seqan3/include/seqan3/core/algorithm/algorithm_result_generator_range.hpp Lines 100 to 103 in fe7458e ==47== by 0x16E48F: Alignment::bandedAlignment(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, int) (pairwiseAlignment.cpp:105) |
Beta Was this translation helpful? Give feedback.
-
Okay, this definitely looks like some internal issue. (I annotated all the referenced code locations in your reply) It would be awesome if you could provide Some notes:
|
Beta Was this translation helpful? Give feedback.
-
Hey there,
Not sure this is the right place to write this, but I also could not find another one. If you have a forum somewhere that you are using more actively, please let me know.
I started switching to seqan3 recently and I ran into one thing that I cannot easily resolve by myself. Doing a banded alignment on a number of rather small sequences runs into this assertion below deterministically. I looked precisely at the pair of sequences that trigger the assertion, but they look fine and without running the whole batch before, I cannot trigger the issue.
When I remove the config for banded alignment, then everything is smooth.
If you have an idea, how I could reproduce that with a minimal dataset, that I could also share, please let me know.
Best,
Jonas
seqan3/include/seqan3/alignment/decorator/gap_decorator.hpp:683: void seqan3::gap_decorator<inner_type>::basic_iterator< >::jump(seqan3::gap_decorator<inner_type>::size_type) [with bool = true; inner_type = std::span<seqan3::dna5, 18446744073709551615>; seqan3::gap_decorator<inner_type>::size_type = long unsigned int]: Assertion `new_pos <= host->size()' failed.
Beta Was this translation helpful? Give feedback.
All reactions