seqan-v2.5.0
Release 2.5.0 
This release adds support for newer compilers and C++ standards (17, 20, 23). It also improves interoperability with SeqAn3.
Namespace
To avoid namespace conflicts with other libraries in the SeqAn ecosystem, the namespace was changed
from seqan to seqan2.
To use version 2.5.0, you will need to update your code. Depending on how you use seqan in your project, the following changes are required:
// Before
using namespace seqan;
// After
using namespace seqan2;
// Before
auto foo(seqan::StringSet<seqan::DnaString> const & sequences)
{
return seqan::length(sequences);
}
// After
auto foo(seqan2::StringSet<seqan2::DnaString> const & sequences)
{
return seqan2::length(sequences);
}
A script to automatically update your code may look like this:
for file in $(git grep -l 'namespace seqan'); do sed -i 's/namespace seqan/namespace seqan2/g' ${file}; done
for file in $(git grep -l 'seqan::'); do sed -i 's/seqan::/seqan2::/g' ${file}; done
Library Features
- Sequence I/O:
- Accepting files that end in
.fas.
- Accepting files that end in
- Indexing:
- Improved search schemes for 3 and 4 errors in
seqan2::bi_fm_index.
- Improved search schemes for 3 and 4 errors in
Selected Bug Fixes
- VCF I/O:
- Accessing the const reference of a
seqan2::VcfIOContextviaseqan2::contextnow works correctly.
- Accessing the const reference of a
- Indexing:
- horspool: If the text is smaller than the query, abort the search.
- BAM I/O:
- The output now includes the SQ header lines.
App Updates
- Yara:
- Fixed verification of N's for seeds and boundary checking for anchors (restores full-sensitivity)
- Removed option --all (was deprecated)
- Added option to compute and output alignments for secondary matches
- Added option to specify strata threshold as absolute number of errors
- Mason:
- Fixed various bugs that resulted in crashes or incorrect output.
- The help page now lists common caveats and how to avoid them.
- simulator: Now uses the command line parameter for seeding instead of the default.
- simulator: Removed simulation of 'N', the output will only contain 'A', 'C', 'G', 'T'.
- simulator: Alignment output (
--out-alignment) in conjunction with bisulfite sequencing (--enable-bs-seq) now yields correct reference begin positions.
Build System
- The minimum CMake version requirement was raised to 3.12.
Platform Support
- Compiler support (tested):
- GCC 12, 13, 14
- Clang 17, 18, 19
- Intel oneAPI C++ Compiler 2025.0 (IntelLLVM)
- Microsoft Visual Studio 17
- Other compilers might work, but are not tested.