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

Seqan compat/seqan2 char alphabet #12

Open
wants to merge 25 commits into
base: tcoffee
Choose a base branch
from

Conversation

rrahn
Copy link

@rrahn rrahn commented Sep 17, 2020

So I did look into the PR for multiple alignment. It is quite nice already.
I still got a little scared by the alphabet conversions since that would destroy everything regarding generic code :).
So Marcel and I had to test if it is indeed possible to use type erasure over char to run the multiple sequence alignment. And in fact it does pretty good. And that also means, this would make transferring the parts to seqan3 much easier because a lot of boiler plate that is alphabet dependent in SeqAn already can be removed.

I made a PR for the changes, since I was kind of playing with the code anyway. The only thing I did as well was to make the global interface independent of this default msa config thing, since it is basically not necessary. All defaults are set internally.
The rest is part of the review. I hope this procedure is ok with you. Otherwise, I was afraid that it might have gone wild to explain everything in the github comments :).

I think you should rebase on master before looking into it? It is only the last commit though.

marehr and others added 25 commits September 3, 2020 12:20
[INFRA] seqan3/std/* header files MUST NOT include any seqan3 header
Selects the correct simd scoring scheme based on the given matrix type. For the moment to test and implement the featurs of protein simd alignment
we can use this simple static differentiation.
Later this will be replaced by a dynamic dispatching mechanism.
Makes a test template for the alignment benchmark so we can reuse it for different benchmark settings.
When tracking the last cell of the banded column computation the matrix iterator was referring to the wrong alignment cell.
Before, the algorithm always tracked the last cell of the current column irrespective of its position within the global matrix.
This means, that the optimum could point to a cell that does not represent the full sequence and hence would not be a valid semi-gobal alignment.
…ble_banded_end_position

Optimise alignment/part6 enable banded end position
…microbenchmarks

Protein alignment/part1 add microbenchmarks
[DOC] Update cppreference index
[FIX] Timeout in debug nightlies
[FIX] Wrong ranks in search algorithm
pull changes from release-3.0.2 into master - progress of week 05
…bility overhead.

By applying this type erasure, we are actually generic to allow any user input as long as it fulfils the respective concepts
that are modeled explicitly for alphabets and scoring schemes.
It also is an initial step to reduce the boiler plate overloads in
seqan2 when we start adapting the algorithms step by step.
@codecov-commenter
Copy link

Codecov Report

Merging #12 into tcoffee will increase coverage by 0.00%.
The diff coverage is 100.00%.

Impacted file tree graph

@@           Coverage Diff            @@
##           tcoffee      #12   +/-   ##
========================================
  Coverage    97.87%   97.88%           
========================================
  Files          269      269           
  Lines        10119    10146   +27     
========================================
+ Hits          9904     9931   +27     
  Misses         215      215           
Impacted Files Coverage Δ
...clude/seqan3/alignment/multiple/align_multiple.hpp 100.00% <100.00%> (ø)
...ltiple/detail/align_multiple_seqan2_adaptation.hpp 100.00% <100.00%> (ø)
...qan3/alignment/pairwise/alignment_configurator.hpp 100.00% <100.00%> (ø)
...ise/detail/pairwise_alignment_algorithm_banded.hpp 100.00% <100.00%> (ø)
...ignment/pairwise/detail/policy_optimum_tracker.hpp 97.29% <100.00%> (+1.00%) ⬆️
include/seqan3/search/search.hpp 100.00% <100.00%> (ø)
include/seqan3/io/stream/iterator.hpp 98.52% <0.00%> (-0.03%) ⬇️
include/seqan3/search/search_result.hpp 100.00% <0.00%> (ø)
...de/seqan3/argument_parser/detail/version_check.hpp 92.74% <0.00%> (ø)
...ment/scoring/detail/simd_matrix_scoring_scheme.hpp 100.00% <0.00%> (ø)
... and 2 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cfbd2b9...2aff6ec. Read the comment docs.

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

Successfully merging this pull request may close these issues.

5 participants