Releases: COMBINE-lab/alevin-fry
v0.10.0
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
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
v0.8.1
v0.8.0
v0.7.0
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
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 theparsimony
andparsimony-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
andparsimony-gene-em
. They work as follows:-
parsimony-gene
is analogous to theparsimony
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 betweenparsimony-gene
andparsimony
is thatparsimony
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 ofparsimony
. 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. Theparsimony-gene
method is more likely to resolve this situation correctly. -
parsimony-gene-em
is just like theparsimony-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
andparsimony-gene-em
may use a distance of either 0 or 1 (the default is 1), whilecr-like
,cr-like-em
, andtrivial
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 theparsimony
,parsimony-em
,parsimony-gene
andparsimony-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 ofalevin-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 inmtx
format. This is a breaking change with respect to prior versions. Additionally a--use-eds
flag has been added. If you want the output ineds
format (the prior default format you would get if you ranquant
orinfer
without the--use-mtx
flag), then pass the--use-eds
flag.
Other changes
- Starting with
alevin-fry
v0.6.0, the output ofparsimony
andparsimony-em
(and the newparsimony-gene
andparsimony-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
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 withstd::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