Skip to content

Adapt the free end gap configuration of the alignment #96

Description

@rrahn

Description

Following the discussion on #131 adapt the free end configuration.

seqan3::align_cfg::method_global:    [required]

construction

seqan3::align_cfg::method_global global
{
seqan3::align_cfg::free_end_gaps_sequence1_leading{true},
seqan3::align_cfg::free_end_gaps_sequence2_leading{true},
seqan3::align_cfg::free_end_gaps_sequence1_trailing{true},
seqan3::align_cfg::free_end_gaps_sequence2_trailing{true}
}; // verbose has constructor with 4 constructor elements

later access and set

global.free_end_gaps_sequence1_leading = true/ false;
global.free_end_gaps_sequence2_leading = true/ false;
global.free_end_gaps_sequence1_trailing = true/ false;
global.free_end_gaps_sequence2_trailing = true/ false;

or by seqan::get

auto && global = seqan3::get<seqan3::align_cfg::method_global>(config);

global.free_end_gaps_sequence1_leading = true/ false;
global.free_end_gaps_sequence2_leading = true/ false;
global.free_end_gaps_sequence1_trailing = true/ false;
global.free_end_gaps_sequence2_trailing = true/ false;

query if configuration was piped

Acceptance Criteria

  • gap configuration can be set over method_global liek described above

Tasks

  • Introduce strong types free_end_gaps_sequence[1/2]_[leading/trailing]
  • Make seqan3::method_global a pipeable ocnfig element (not a tag), that is constructible from the 4 strong_types
  • Make alignment algorithm use the method_global end gap configuration instead of using the aligned_ends configuration
  • Remove the seqan3::align_cfg::aligned_ends configuration

Definition of Done

  • Implementation and design approved
  • Unit tests pass
  • Test coverage = 100%
  • Microbenchmarks added and/or affected microbenchmarks < 5% performance drop
  • API documentation added
  • Tutorial/teaching material added
  • Test suite compiles in less than 30 seconds (on travis)
  • Changelog entry added

Metadata

Metadata

Assignees

Labels

ready to tackleThis story was discussed and can be immidietly tackled

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions