You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm not sure how much I will be able to work on this in the future, so nothing is guaranteed. Also, I believe in YAGNI and won't implement a lot of this unless I hear from anyone who wants to actually use `genedex`. I you want to use the library, but are missing a specific feature, I'd be happy to hear from you and will give the missing feature a high priority.
3
+
I'm not sure how much I will be able to work on this in the future, so nothing is guaranteed. I won't implement a lot of this unless I hear from anyone who wants to actually use `genedex`. If you want to use the library, but are missing a specific feature, I'd be happy to hear from you and will give the missing feature a high priority.
4
4
5
-
### Optimizations for existing features
5
+
### Optimizations for Existing Features
6
6
7
-
- space optimization for rarely occurring symbols (such as the sentinel and N in the human Genome)
8
-
- maybe leverage the fact that such characters (namely N) often occur in runs
9
-
- the sentinel can not be searched. the current sampled suffix array implementation has special handling for it.
10
-
so it technically doesn't have to be stored in the text with rank support. If N also gets special handling,
11
-
the condensed text with rank support will get smaller and maybe faster.
12
-
A text sampled suffix array could be an option, or a "sparse" text with rank support substructure.
13
7
- paired blocks for improved memory usage when using larger alphabets
14
8
- in the search, `lookup_tables::compute_lookup_idx_static_len` still seems to be one of the bottlenecks. this
15
9
should be investigated further, maybe it can be optimized or it's a measuring error.
@@ -19,28 +13,21 @@ I'm not sure how much I will be able to work on this in the future, so nothing i
19
13
- a faster `u32`-SACA to make the low memory mode less painful (`sais-drum` is a start, but optimizing it would be a lot of work)
20
14
- suffix array, lookup table compression using unconventional int widths (e.g. 33 bit)
21
15
22
-
### Smaller new features
16
+
### Small New Features/Tweaks
23
17
24
-
- more flexible alphabet API
25
-
- allow alphabet with sentinel included in io representation
26
-
- allow alphabet without sentinel (only usable for single text indexing)
27
-
- optimized version for single text without sentinel
28
-
- functionality to directly retrieve maximal exact matches (MEMs/SMEMs)
29
-
- more documentation tests
30
18
- gate rayon/OpenMP usage behind feature flag
31
19
- API to use batched search with cursors
32
-
- type-erase index storage type and choose automatically for text size (does that work with savefile?)
33
-
- bidirectional FM-Index
34
-
- optimizations for highly repetitive texts such as run length encoding (r-index)
35
-
- optional functionality for text recovery
36
-
- text sampled suffix array (with text ids and optionally other annotations)
20
+
- type-erase index storage type and choose automatically for text size
37
21
- optimized functions for reading directly from input files: both for texts to build the index and queries to search.
38
22
the latter might be more important, because for simple searches, the search can be faster than reading the
39
23
queries from disk.
24
+
- more documentation tests
40
25
41
-
### Larger new features, might never happen
26
+
### Large New Features
42
27
28
+
- functionality to directly retrieve maximal exact matches (MEMs/SMEMs), FMD-Index
29
+
- bidirectional FM-Index
43
30
- searches with errors and "degenerate" chars in IUPAC fasta definition (using search schemes, needs bidirectional FM-Index)
44
-
- FMD-Index
45
-
- word-based FM-Indices
31
+
- optimizations for highly repetitive texts such as run length encoding (r-index). This would be simpler, but much less useful than a ropeBWT-based FM-Index
0 commit comments