-
Notifications
You must be signed in to change notification settings - Fork 1
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
Adapt the free end gap configuration of the alignment #96
Labels
ready to tackle
This story was discussed and can be immidietly tackled
Milestone
Comments
rrahn
added
the
needs refinement
A story that was not discussed and/or estimated by the team yet but is planned for upcoming sprints.
label
May 26, 2020
2 tasks
We decided to introduce shortcuts: // gap short cuts
struct free_end_gaps_sequence1;
struct free_end_gaps_sequence2;
struct free_end_gaps_all;
// ... extra constructor in method_global that sets the four members for each short cut
constexpr method_global(seqan3::align_cfg::free_end_gaps_sequence1) noexcept :
free_end_gaps_sequence1_leading{seqan3::align_cfg::free_end_gaps_sequence1_leading{true}},
free_end_gaps_sequence2_leading{seqan3::align_cfg::free_end_gaps_sequence2_leading{false}},
free_end_gaps_sequence1_trailing{seqan3::align_cfg::free_end_gaps_sequence1_trailing{true}},
free_end_gaps_sequence2_trailing{seqan3::align_cfg::free_end_gaps_sequence2_trailing{false}}
{}
constexpr method_global(seqan3::align_cfg::free_end_gaps_sequence2) noexcept {}// ...
constexpr method_global(seqan3::align_cfg::free_end_gaps_all) noexcept {}// ...
// usage:
auto cfg = seqan3::align_cfg::method_global{seqan3::align_cfg::free_end_gaps_sequence1}; Why not directly introducing method_global short cuts: // gap short cuts
inline constexpr method_global_free_end_gaps_sequence1 = method_global
{
free_end_gaps_sequence1_leading{true},
free_end_gaps_sequence2_leading{false},
free_end_gaps_sequence1_trailing{true},
free_end_gaps_sequence2_trailing{false}
};
inline constexpr method_global_free_end_gaps_sequence2 = method_global{...};
inline constexpr method_global_free_end_gaps_all = method_global{...};
// usage
auto cfg = seqan3::align_cfg::method_global_free_end_gaps_sequence1;
auto cfg = seqan3::align_cfg::method_global_overlap; Names may have to be discussed |
Short note, we don't necessarily need an extra inline constexpr method_global free_end_gaps_sequence1
{
free_end_gaps_sequence1_leading{true},
free_end_gaps_sequence2_leading{false},
free_end_gaps_sequence1_trailing{true},
free_end_gaps_sequence2_trailing{false}
};
seqan3::align_cfg::method_global{free_end_gaps_sequence1}; // is still valid but I see you point that auto cfg = free_end_gaps_sequence1 | ... Could be piped directly which would be bad. I'm a bit against all those We could also do a construct like this: struct free_end_gaps
{
seqan3::align_cfg::free_end_gaps_sequence1_leading free_end_gaps_sequence1_leading{};
seqan3::align_cfg::free_end_gaps_sequence2_leading free_end_gaps_sequence2_leading{};
seqan3::align_cfg::free_end_gaps_sequence1_trailing free_end_gaps_sequence1_trailing{};
seqan3::align_cfg::free_end_gaps_sequence2_trailing free_end_gaps_sequence2_trailing{};
};
inline constexpr free_end_gaps free_end_gaps_sequence1
{
free_end_gaps_sequence1_leading{true},
free_end_gaps_sequence2_leading{false},
free_end_gaps_sequence1_trailing{true},
free_end_gaps_sequence2_trailing{false}
};
struct method_global : free_end_gaps
{
//..
};
// you need to use method_global as data-holder which is different from method_global
method_global{free_end_gaps{...}};
method_global{{...}};
method_global{...};
seqan3::align_cfg::method_global{seqan3::align_cfg::free_end_gaps{seqan3::align_cfg::free_end_gaps....}} |
rrahn
added
ready to tackle
This story was discussed and can be immidietly tackled
and removed
needs refinement
A story that was not discussed and/or estimated by the team yet but is planned for upcoming sprints.
labels
Jul 13, 2020
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Description
Following the discussion on #131 adapt the free end configuration.
construction
later access and set
or by seqan::get
query if configuration was piped
Acceptance Criteria
Tasks
free_end_gaps_sequence[1/2]_[leading/trailing]
seqan3::method_global
a pipeable ocnfig element (not a tag), that is constructible from the 4 strong_typesmethod_global
end gap configuration instead of using thealigned_ends
configurationseqan3::align_cfg::aligned_ends
configurationDefinition of Done
The text was updated successfully, but these errors were encountered: