SeqAn3
The Modern C++ library for sequence analysis.
Changelog

This changelog contains a top-level entry for each release with sections on new features, API changes and notable bug-fixes (not all bug-fixes will be listed). See the documentation on API stability to learn about when API changes are allowed.

3.0.1

New features

Alignment

  • The score type used in the alignment score matrix and the result type is now configurable through a template argument of the seqan3::align_cfg::result configuration.

Argument parser

  • Simplified reading file extensions from formatted files in the input/output file validators.
  • The seqan3::value_list_validator is now constructible from a range or a parameter pack.
  • Enable subcommand argument parsing (How-to).

Build system

  • find_package(SeqAn3) is now case-insensitive and always populates SEQAN3_* variables in all upper-case.

Core

I/O

API changes

Argument parser

  • The seqan3::value_list_validator is not constructible from a std::initialiser_list any more (e.g. seqan3::value_list_validator{{1,2,3}} does not work, use seqan3::value_list_validator{1,2,3} instead).
  • Changed class signature of input/output file validators: Most user code will be unaffected; to fix possible compiler errors you need to add an empty template parameter list to the respective instances (e.g. change input_file_validator to input_file_validator<>).
  • The member type that denotes which arguments a validator can validate has been renamed from value_type to option_value_type.

Build system

  • find_package now accepts minimum versions (e.g. find_package(SEQAN3 3.0.1) requires at least seqan3 with a version of >= 3.0.1 and < 4.0.0).
  • The variable SEQAN3_VERSION_STRING defined by find_package(SEQAN3) was renamed to SEQAN3_VERSION.

Core

I/O

  • Removed the field-based in- and output interface for sequence and structure files through std::get and std::tie: Output can instead be achieved with seqan3::views:zip(), for input we will implement unzip() in the future.
  • The field::flag of SAM/BAM input and output is now an enum instead of a simple integer (see seqan3::sam_flag).
  • Uppercase seqan3::field names are deprecated. Use the lower case field names instead. You can easily find and replace all occurrences by the following regex: find field::([A-Z_]+) replace field::\L$1.
  • Removed the char type from the input and output files: Most user code will be unaffected; however, if you have fully specified all templates of any of the input or output files in your code, you need to remove the template parameter to select the char type of the stream (e.g. change seqan3::sequence_file_input<traits_t, fields_t, formats_t, char> to seqan3::sequence_file_input<traits_t, fields_t, formats_t>). Before this change, setting the char type gave the impression that also streams over wide characters are supported which is not the case yet.

Range

Search

Notable Bug-fixes

3.0.0 ("Escala")

Initial release of SeqAn3.