Skip to content

Releases: COMBINE-lab/alevin-fry

v0.10.0

12 Jul 13:41
Compare
Choose a tag to compare

Install alevin-fry 0.10.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/COMBINE-lab/alevin-fry/releases/download/v0.10.0/alevin-fry-installer.sh | sh

Download alevin-fry 0.10.0

File Platform Checksum
alevin-fry-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
alevin-fry-x86_64-apple-darwin.tar.xz Intel macOS checksum
alevin-fry-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

v0.9.0

08 Mar 20:42
e4f5a85
Compare
Choose a tag to compare

Install alevin-fry 0.9.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/COMBINE-lab/alevin-fry/releases/download/v0.9.0/alevin-fry-installer.sh | sh

Download alevin-fry 0.9.0

File Platform Checksum
alevin-fry-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
alevin-fry-x86_64-apple-darwin.tar.xz Intel macOS checksum
alevin-fry-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

v0.8.2

29 Jun 18:35
63b5abf
Compare
Choose a tag to compare

0.8.2 (2023-06-29)

Bug Fixes

  • update deps, make clippy happy (ac1a316)

v0.8.1

13 Jan 02:11
16893c6
Compare
Choose a tag to compare

0.8.1 (2023-01-12)

Features

  • update_deps: update dependencies (a77c96e)

Bug Fixes

v0.8.0

11 Oct 16:39
b611494
Compare
Choose a tag to compare

0.8.0 (2022-10-11)

⚠ BREAKING CHANGES

  • fix parsing of force-cells and expect-cells

Bug Fixes

  • fix parsing of force-cells and expect-cells (aa0f4ab)

v0.7.0

02 Aug 03:43
2ebfaa9
Compare
Choose a tag to compare

0.7.0 (2022-08-02)

NOTE

An issue with a bump of the clap crate which changed argument parsing behavior caused some previously optional program arguments (specifically the -t and -m options) to be treated as mandatory. This changed the required argument set for alevin-fry v0.6.0 (and possibly earlier) when it is built from source and when the dependency resolver pulls in the newer version of clap. Unfortunately, a rebuild of crates on bioconda also triggered this behavior, meaning that commands that would previously run with v0.6.0 now require additional arguments to be passed along as they are considered mandatory. A more detailed description of the issue can be found in this Q&A discussion. While the command can be changed to pass these arguments along in previous versions, the proper optional status has been restored in v0.7.0 and it is recommended to upgrade.

⚠ BREAKING CHANGES

  • To simplify and unify the naming convention for UMI resolution methods, the strategy name "full" (as a synonym for "parsimony-em") has been removed. The resolution strategy previous selected by "parsimony-em" or "full" can now only be selected by passing "parsimony-em" as the resolution option.

Other changes

  • Improvements to argument parsing and error propagation.

v0.6.0

01 Jun 04:38
45d3d6d
Compare
Choose a tag to compare

alevin-fry 0.6.0 release notes

The majority of changes in this release are new features. There are also changes to default behavior.

New features

  • Starting with alevin-fry v0.6.0, it is now possible to use both the parsimony and parsimony-em/full resoluton approaches in USA mode. While this support has been tested, it will remain marked as experimental for at least one release.

  • This release introduces 2 new resolution modes (both work with and without USA mode) named as parsimony-gene and parsimony-gene-em. They work as follows:

    • parsimony-gene is analogous to the parsimony resolution. That is, it builds a parsimonious UMI graph (PUG) which is then resolved to find the most parsimonious cover of observed UMIs. The main difference between parsimony-gene and parsimony is that parsimony finds a transcript-level cover, and then projects each transcript to its parent gene when aggregating counts. However, parsimony-gene first projects the equivalence class labels in the PUG to the gene level, and then resolves the PUG components. This means that a given gene can be considered to cover related UMIs, even if the transcript sets descibing these UMIs is disjoint. This can potentially be less specific than the behavior of parsimony. On the other hand, this mode is expected to be more robust to incomplete annotation. For example, elements like unannotated UTRs may mean that UMIs otherwise inferred to come from distinct molecules may actually arrive from the same initial pre-PCR molecule. The parsimony-gene method is more likely to resolve this situation correctly.

    • parsimony-gene-em is just like the parsimony-gene method described above, except that instead of discarding multi-gene UMIs, those UMIs will be probabilistically resolved using an EM algorithm.

  • A new (hidden) option called --umi-edit-dist has been added. This option takes an integer argument, and it defines the Hamming distance at which a pair of potentially duplicate UMIs are considered to be collapsable. While this general argument has been added as a forward looking feature, the support for non-standard distances among existing resolution methods is limited. Currently, parsimony, parsimony-em, parsimony-gene and parsimony-gene-em may use a distance of either 0 or 1 (the default is 1), while cr-like, cr-like-em, and trivial can only use 0 (the default is 0). If a user attempts to provide an incompatible Hamming distance, resolution mode pair, alevin-fry will report the error and exit.

  • A new (hidden) option called --large-graph-thresh has been added. This option is only relevant in the parsimony, parsimony-em, parsimony-gene and parsimony-gene-em resolution modes (where it defaults to 1,000). This option takes an integer argument, and determines the order (number of vertices) of the parsimonious UMI graph (PUG) beyond which an alternative, simplified algorithm will be applied to resolve UMIs. For graphs having this many nodes or fewer, the parsimony resolution algorithm will be used, for graphs having more than this many nodes, a simpler heuristic will be used. The default value corresponds to the previous, hard-coded, value used in prior versions of alevin-fry.

Changes to default behavior

  • Starting with alevin-fry v0.6.0, mtx is the default output format. That is, even without the --use-mtx flag, the output will be written in mtx format. This is a breaking change with respect to prior versions. Additionally a --use-eds flag has been added. If you want the output in eds format (the prior default format you would get if you ran quant or infer without the --use-mtx flag), then pass the --use-eds flag.

Other changes

  • Starting with alevin-fry v0.6.0, the output of parsimony and parsimony-em (and the new parsimony-gene and parsimony-gene-em) resolution modes is deterministic (sans the order of the reported cell barcodes). In previous versions, the use of a hash state that wasn't explicitly seeded lead to the default Rust behavior of pseudo-randomly seeding this state per-run. This lead to different ordering of evaluating the parsimonious covering, which, in turn, can lead to small differences in the count matrices returned. In v0.6.0, all such hash states are explicitly seeded, leading to deterministic PUG resolution. In order to avoid bias toward the same resolution across cells based on hash order, the hash is seeded for each cell based on a deterministic pattern in addition to the barcode ID of this cell.

Full Changelog: v0.5.1...v0.6.0

alevin-fry v0.5.1

12 May 16:51
Compare
Choose a tag to compare

The majority of changes in this release are back-end focused (and hence not really visible to the user). Nonetheless, they are important and can have some (positive) effect on user experience.

This release has the following bug fixes:

  • PR#50 by @DongzeHE fixes issue #48 raised by @j-andrews7. The flag to include the header in view is now -H and no longer conflicts with top-level help (-h flag). The bug itself was induced by a change in behavior moving from clap v2 to v3.

This release implements the following changes:

  • several style and idiomatic rust related changes thanks to PR#43 by @Uzaaft.

  • removed dependence on (deprecated & yanked) quickersort crate, and replaced with std::sort_unstable(). This may have caused problems building from source (nb: crates.io really should not do this).

  • trimmed the list of dependencies of libradicl (thanks udeps!).

  • bumped all relevant dependencies. Most importantly, bumped rust-htslib to 0.39.5 — which allows compiling natively on Apple silicon.

  • Began transition of application-level errors to use the anyhow crate. This should hopefully provide more useful context in error messages, and make them prettier.

Full Changelog: v0.5.0...v0.5.1