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
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,12 +7,13 @@
7
7
The [FM-Index] is a full-text index data structure that allows efficiently counting and retrieving all occurrenes of short sequences in very large texts. It is widely used in sequence analysis and bioinformatics.
8
8
9
9
The implementation of this library is based on an encoding for the text with rank support data structure (a.k.a. occurrence table)
10
-
by Simon Gene Gottlieb, who also was a great help while developing this library. This data structure is central to the inner workings of
10
+
by Simon Gene Gottlieb, who also was a great help while developing the library. This data structure is central to the inner workings of
11
11
the FM-Index. The encoding attemps to provide a good trade-off between memory usage and running time of queries.
12
12
A second, faster and less memory efficient encoding is also implemented in this library. Further benefits of `genedex` include:
13
13
14
14
- Fast, parallel and memory efficient index construction by leveraging [`libsais-rs`] and [`rayon`].
15
15
- Support for indexing a set of texts, like chromosomes of a genome.
16
+
- Optimized functions for searching multiple queries at once (per thread!).
16
17
- A flexible cursor API.
17
18
- Fast reading and writing the FM-Index from/to files, using [`savefile`].
Copy file name to clipboardExpand all lines: src/lib.rs
+76-40Lines changed: 76 additions & 40 deletions
Original file line number
Diff line number
Diff line change
@@ -31,8 +31,14 @@
31
31
* }
32
32
* ```
33
33
*
34
-
* More information about the flexible [cursor](Cursor) API, build [configuration](FmIndexConfig) and [variants](TextWithRankSupport) of the FM-Index can
35
-
* be found in the module-level and struct-level documentation.
34
+
* More information about the flexible [cursor](Cursor) API, build [configuration](FmIndexConfig)
35
+
* and [variants](TextWithRankSupport) of the FM-Index can be found in the module-level and struct-level documentation.
36
+
*
37
+
* Optimized functions such as [`FmIndex::locate_many`] exist for searching multiple queries at once. They do not use
38
+
* multi-threading, but can still be significantly faster (around 2x) than calling the respective functions for single
39
+
* queries in a loop. The reason for the improved performance is that the queries are searched in batches, which allows
40
+
* different kinds of parallelism inside the CPU to be used. An example of how such a function is used can be found
0 commit comments