Skip to content

Releases: RagnarGrootKoerkamp/sassy

v0.2.3

04 Jun 21:04

Choose a tag to compare

  • Add sassy agrep for a simple grep-like CLI over ASCII files.
  • Small improvements.

v0.2.2: AVX-512 enabled binary

28 Mar 14:19

Choose a tag to compare

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

20 Mar 19:10

Choose a tag to compare

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 --sam flag 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

23 Feb 15:07

Choose a tag to compare

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 I and D
    compared to before. I now 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
    normal search has 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.rs to publicly available Match::pretty_print.
  • feat: Match now contains text_idx and pattern_idx for multi-search variants.
  • feat: Add Searcher::only_best_match and Searcher::without_trace.
  • perf: Collect matches into an internal Vec before returning that.
  • fix: sassy grep would crash on printing reverse complement matches with overhang.
  • fix: fix issues with duplicate reported matches in overhang
  • misc: debug-printing a Match now uses stringified cigar.
  • misc: Add python bindings for search_many

v0.1.10: critical bugfix in `sassy grep` CLI

10 Dec 19:14

Choose a tag to compare

  • critical bugfix: sassy grep had 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

22 Nov 03:38

Choose a tag to compare

Release 0.1.9

Changelog for 0.1.9

  • Implement RcSearchable for ?Sized types such as [u8], so that seach(_, text, _) now works for text: &[u8], instead of only text: &&[u8].
  • Abort on panic for slightly smaller binaries.
  • Migrate back from cargo-dist to a small manual release.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, but config-portable.yaml for CI builds
  • doc: readme updates for target-cpu
  • update to ensure_simd for compile-time AVX2 check and add a run-time check
    as well.

0.1.7

19 Nov 17:15

Choose a tag to compare

Release Notes

  • Improved compile error message when not using -target-cpu=native. (#37)
  • Added installation section to README, explaining the use of RUSTFLAGS and
    minimal required rust version. (#37)
  • Assert whether the selected profile supports overhang.
  • Add cargo-dist for 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