Releases: RagnarGrootKoerkamp/sassy
v0.2.3
v0.2.2: AVX-512 enabled binary
This release is identical to before, but uses cargo multivers to build a binary for x86-64 that transparently works on both AVX2 and AVX-512.
v0.2.1: tracebacks prefer substitutions & more
New release with a bunch of small improvements. See the changelog for details.
Important: tracebacks now prefer substitutions over deletions, whereas before they preferred deletions.
Otherwise:
- improved docs and examples
- additional optional feature flags that can be disabled to speed up compilation
sassy search --samflag to follow the SAM spec when outputting reverse-complement matches. By default we reverse-complement the text and CIGAR to align with the pattern direction, but with this flag we do not.
v0.2.0
New v2 search functions
The main new feature of this v2 release is search_encoded_patterns, written by @rickbeeloo,
for searching many short and equal length patterns (say 23 bp; should be at most
32 or else 64) in parallel. This is 2x or more faster than the previous search_patterns.
(Improved docs and examples for these new features are still TODO. This release was mostly triggered by breaking changes to the cigar output.)
Breaking changes
- Cigar output now follows the SAM spec and reverses
IandD
compared to before.Inow means the pattern contains a character that is not
in the text.
Further new search functions
v2 also adds new variants of the existing Searcher::search method:
search_patterns: search multiple similar-length patterns in a single text.
Useful for searching in short texts where chunking them in pieces via the
normalsearchhas large overhead. This uses one SIMD lane per pattern.search_texts: search a single pattern in multiple similar-length texts.
This uses one SIMD lane per text.search_many: a more high-level wrapper that takes a list of
patterns and texts and does an all-vs-all search on multiple threads, using
a user-specified underlying algorithm.
Further changes
- feat: Support AVX512 for pattern tiling.
- feat: moved pretty printing from
bin/grep.rsto publicly availableMatch::pretty_print. - feat:
Matchnow containstext_idxandpattern_idxfor multi-search variants. - feat: Add
Searcher::only_best_matchandSearcher::without_trace. - perf: Collect matches into an internal Vec before returning that.
- fix:
sassy grepwould crash on printing reverse complement matches with overhang. - fix: fix issues with duplicate reported matches in overhang
- misc: debug-printing a
Matchnow uses stringified cigar. - misc: Add python bindings for
search_many
v0.1.10: critical bugfix in `sassy grep` CLI
- critical bugfix:
sassy grephad a bug in the batching logic, making it skip a
record after every 1MB of input. In particular for human genomes it would only search
every other chromosome... - misc: set up
cargo release
v0.1.9
Release 0.1.9
Changelog for 0.1.9
- Implement
RcSearchablefor?Sizedtypes such as[u8], so thatseach(_, text, _)now works fortext: &[u8], instead of onlytext: &&[u8]. - Abort on panic for slightly smaller binaries.
- Migrate back from
cargo-distto a small manualrelease.yaml.
Changelog for 0.1.8
- Sassy is now available on bioconda!
- ci: add aarch64-linux target for github releases, drop windows targets
- ci: by default
target-cpu=native, butconfig-portable.yamlfor CI builds - doc: readme updates for
target-cpu - update to
ensure_simdfor compile-time AVX2 check and add a run-time check
as well.
0.1.7
Release Notes
- Improved compile error message when not using
-target-cpu=native. (#37) - Added installation section to README, explaining the use of
RUSTFLAGSand
minimal required rust version. (#37) - Assert whether the selected profile supports overhang.
- Add
cargo-distfor binary release artifacts.
Download sassy 0.1.7
| File | Platform | Checksum |
|---|---|---|
| sassy-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | |
| sassy-x86_64-unknown-linux-gnu.tar.xz | x64 Linux |