Running sequence alignment with alphabets with more than 256 characters
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- cpp
- Domain
- bioinformatics
Research direction
Start at seqan3/include/seqan3/alphabet/composite/alphabet_variant.hpp and the align_pairwise example, then inspect linked pull request #3342. Determine whether alphabets using char16_t with size 1333 are supported without the static assertion; done means a documented workaround or confirmed support with a reproducible build.
Written by the indexing model from the issue text.
Description
Platform
- SeqAn version: 3.4.0
- Operating system: Linux
- Compiler: g++ (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
Question
Hi,
Is it possible to compute sequence alignments suing alphabets larger than 256 characters?
For instance I tried running one of the examples from the tutorials using an alphabet with more than 256 characters I defined like this:
class example_alphabet : public seqan3::alphabet_base<example_alphabet, 1333, char16_t>
{
.
.
.
};
and when building this code:
// Invoke the pairwise alignment which returns a lazy range over alignment results.
auto results_example = seqan3::align_pairwise(std::tie(example_alphabet_vector_1, example_alphabet_vector_2), config);
auto & res_example = *results_example.begin();
seqan3::debug_stream << "Score: " << res_example.score() << '\n';
return 0;
I get these kind of errors:
/home/eclypsium/Workspace/v2d/seqan3/tutorial/seqan3/include/seqan3/alphabet/composite/alphabet_variant.hpp:134:25: error: static assertion failed: The alphabet_variant is currently only tested for alphabets with char_type char. Contact us on GitHub if you have a different use case: https://github.com/seqan/seqan3 .
134 | static_assert((std::is_same_v<alphabet_char_t<alternative_types>, char> && ...),
|
Looking at the code it seems that char as is hardcoded in many places as char_type.
Is there any way to circumvent this?
Best regards,
Andrés Tiraboschi
- Dominant language
- C++
- Stars
- 463
- Forks
- 90
- Avg merge
- 1h 11m
- Merged PRs (30d)
- 3
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from seqan/seqan3
-
bug
-
bug
-
question
-
feature/proposal
Difficulty 4/5 3-5 days Newbie friendliness 25/100
-
question
Difficulty 4/5 3-5 days Newbie friendliness 25/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Sensor initialization takes very long when `--initial-sim-time` is set to current UNIX timestamp Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
gazebosim/gz-sensors#662 · 1 comment ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
LadybirdBrowser/ladybird#12123 ·