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
Copy file name to clipboardExpand all lines: README.md
+15-5Lines changed: 15 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,12 +7,9 @@
7
7
⚠️ **Warning:** this library is in an early stage. The API is still subject to changes. Currently, only a basic FM-Index is implemented. For upcoming features, take a look at the [roadmap]. Any kind of feedback and suggestions via the issue tracker is highly appreciated! ⚠️
8
8
9
9
The [FM-Index] is a full-text index data structure that allows efficiently counting and retrieving the positions of all occurrenes of (typically short) sequences in very large texts. It is widely used in sequence analysis and bioinformatics.
10
+
The benefits of `genedex` include:
10
11
11
-
The implementation of this library is based on an encoding for the text with rank support data structure (a.k.a. occurrence table)
12
-
by Simon Gene Gottlieb, who also was a great help while developing the library. This data structure is central to the inner workings of
13
-
the FM-Index. The encoding attemps to provide a good trade-off between memory usage and running time of queries.
14
-
A second, faster and less memory efficient encoding is also implemented. Further benefits of `genedex` include:
15
-
12
+
- Multiple optimized implementations with different running time/memory usage trade-offs.
16
13
- Fast, parallel and memory efficient index construction by leveraging [`libsais-rs`] and [`rayon`].
17
14
- Support for indexing a set of texts, like chromosomes of a genome.
18
15
- A flexible cursor API.
@@ -43,6 +40,12 @@ for hit in index.locate(query) {
43
40
}
44
41
```
45
42
43
+
## References
44
+
45
+
- The default (_condensed_) implementations is based on:
46
+
47
+
> Gottlieb, S.G., Reinert, K.: _Engineering rank queries on bit vectors and strings_ (2025) DOI: [10.1186/s13015-025-00291-9](https://doi.org/10.1186/s13015-025-00291-9)
48
+
46
49
## Comparison to Other Crates and Benchmarks
47
50
48
51
A thorough comparison of all available Rust implementations of the FM-Index can be found [here](https://github.com/feldroop/rust-fmindex-benchmark). The main benchmark results are shown below.
@@ -55,10 +58,17 @@ Running time and index memory usage of searching 377 MB of queries of length 50
0 commit comments