Skip to content

Commit

Permalink
fix version issues
Browse files Browse the repository at this point in the history
  • Loading branch information
rob-p committed Mar 21, 2022
1 parent 404a44f commit f68b838
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 13 deletions.
34 changes: 31 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<img alt="logo" src="https://github.com/COMBINE-lab/alevin-fry/raw/master/docs/logo.png" width="200">

# alevin-fry ![Rust](https://github.com/COMBINE-lab/alevin-fry/workflows/Rust/badge.svg) [![Anaconda-Server Badge](https://anaconda.org/bioconda/alevin-fry/badges/installer/conda.svg)](https://conda.anaconda.org/bioconda) [![Anaconda-Server Badge](https://anaconda.org/bioconda/alevin-fry/badges/platforms.svg)](https://anaconda.org/bioconda/alevin-fry) [![Anaconda-Server Badge](https://anaconda.org/bioconda/alevin-fry/badges/license.svg)](https://anaconda.org/bioconda/alevin-fry)
# alevin-fry ![Rust](https://github.com/COMBINE-lab/alevin-fry/workflows/Rust/badge.svg) [![Anaconda-Server Badge](https://anaconda.org/bioconda/alevin-fry/badges/installer/conda.svg)](https://conda.anaconda.org/bioconda) [![Anaconda-Server Badge](https://anaconda.org/bioconda/alevin-fry/badges/platforms.svg)](https://anaconda.org/bioconda/alevin-fry) [![Anaconda-Server Badge](https://anaconda.org/bioconda/alevin-fry/badges/license.svg)](https://anaconda.org/bioconda/alevin-fry) ![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/combine-lab/alevin-fry?style=flat-square)

`alevin-fry` is a suite of tools for the rapid, accurate and memory-frugal processing single-cell and single-nucleus sequencing data. It consumes RAD files generated by `salmon alevin`, and performs common operations like generating permit lists, and estimating the number of distinct molecules from each gene within each cell. The focus in `alevin-fry` is on safety, accuracy and efficiency (in terms of both time and memory usage).

You can read the pre-print describing alevin-fry : ["Alevin-fry unlocks rapid, accurate, and memory-frugal quantification of single-cell RNA-seq data"](https://www.biorxiv.org/content/10.1101/2021.06.29.450377v1) on bioRxiv.
You can read the paper describing alevin fry, "Alevin-fry unlocks rapid, accurate, and memory-frugal quantification of single-cell RNA-seq data" [here](https://www.nature.com/articles/s41592-022-01408-3), and the pre-print [on bioRxiv](https://www.biorxiv.org/content/10.1101/2021.06.29.450377v1).

* [**Quickstart guide with a unified singularity container**](https://github.com/COMBINE-lab/alevin-fry#a-quick-start-run-through-on-sample-data)

Expand All @@ -24,6 +24,8 @@ The generation of the reduced alignment data (RAD) files processed by alevin-fry

The [`usefulaf`](https://github.com/COMBINE-lab/usefulaf) repository contains scripts in functions that are useful in helping to prepare input for alevin-fry processing, importing alevin-fry output into downstream analysis evnironemnts, and even [running common configurations of alevin-fry more simply](https://github.com/COMBINE-lab/usefulaf/blob/main/bash/simpleaf.sh). This repository also contains the relevant [Python function](https://github.com/COMBINE-lab/usefulaf/blob/main/python/load_fry.py) for loading fry output (specifically in USA mode) in a convenient way into [scanpy](https://scanpy.readthedocs.io/en/stable/) (i.e. as [AnnData](https://scanpy.readthedocs.io/en/latest/usage-principles.html#anndata) objects) for subsequent Python-based processing in scanpy.

The [`roe`](https://github.com/COMBINE-lab/roe) and [`pyroe`](https://github.com/COMBINE-lab/pyroe) repositories provide tools to help easily construct a _splici_ transcriptome from a reference genome and GTF file in `R` and `python` respectively.

The [`fishpond`](https://github.com/mikelove/fishpond) package — maintained by @mikelove and his lab — contains the recommended relevant functions for reading `alevin-fry` output (particularly USA-mode output) into the R ecosystem, in the form of a [`singleCellExperiment`](https://bioconductor.org/packages/release/bioc/html/SingleCellExperiment.html) object.

The [`alevinqc`](https://github.com/csoneson/alevinQC) package — maintained by @csoneson — provides tool and functions for performing quality control and assessment downstream of `alevin-fry`.
Expand Down Expand Up @@ -100,6 +102,7 @@ Finally, we'll download the [singularity](https://sylabs.io/singularity/) image
```{bash}
$ wget -v -O usefulaf.sif https://umd.box.com/shared/static/bcd8io9fbjc321pfgcomues5oe2a12cz
```

or, alternatively, you can pull the docker image directly from Dockerhub and have singularity convert it for you

```{bash}
Expand All @@ -108,7 +111,7 @@ $ singularity pull docker://combinelab/usefulaf:latest

### Info about the singularity container

The singularity container we just downloaded above contains a recent release of `salmon` (v1.5.1) and `alevin-fry` (v0.4.0), as well as an installation of `R` and all of the packages needed to build the _splici_ index.
The singularity container we just downloaded above contains a recent release of `salmon` (v1.8.0) and `alevin-fry` (v0.5.0), as well as an installation of `R` and all of the packages needed to build the _splici_ index.

To build the reference index (and quantify) we'll use the [simpleaf](https://github.com/COMBINE-lab/usefulaf/blob/main/bash/simpleaf) wrapper. This is a shell script written around `salmon`, `alevin-fry`, and the _splici_ index construction code that simplifies processing by grouping together related commands, using a fixed directory structure for processing, and also by eliminating some different options that are otherwise exposed by `salmon` and `alevin-fry` (e.g. it builds the `sparse` index, maps in `sketch` mode etc.). If you would like to run the "raw" commands, the Singularity image contains `salmon` and `alevin-fry` in the path, and the `R` script to construct the _splici_ index at `/usefulaf/R/build_splici_ref.R`, so you can explore more detailed options.

Expand Down Expand Up @@ -199,4 +202,29 @@ that you should pass to `alevin-fry` during the `quant` phase.
If you have any questions about preparing the splici reference, or otherwise about processing your data with `alevin-fry` please feel free to open an issue
here on GitHub!

## Citing alevin-fry

If you use `alevin-fry` in your work, please cite:

```
He, D., Zakeri, M., Sarkar, H. et al. Alevin-fry unlocks rapid, accurate and memory-frugal quantification of single-cell RNA-seq data. Nat Methods 19, 316–322 (2022). https://doi.org/10.1038/s41592-022-01408-3
```

**BibTeX:**
```
@Article{He2022,
author={He, Dongze and Zakeri, Mohsen and Sarkar, Hirak and Soneson, Charlotte and Srivastava, Avi and Patro, Rob},
title={Alevin-fry unlocks rapid, accurate and memory-frugal quantification of single-cell RNA-seq data},
journal={Nature Methods},
year={2022},
month={Mar},
day={01},
volume={19},
number={3},
pages={316-322},
issn={1548-7105},
doi={10.1038/s41592-022-01408-3},
url={https://doi.org/10.1038/s41592-022-01408-3}
}
```

16 changes: 8 additions & 8 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@
* License: 3-clause BSD, see https://opensource.org/licenses/BSD-3-Clause
*/

extern crate bio_types;
extern crate chrono;
extern crate clap;
extern crate itertools;
extern crate num_cpus;
extern crate rand;
extern crate slog;
extern crate slog_term;

use chrono;


use num_cpus;
use rand;
use slog;
use slog_term;

use bio_types::strand::Strand;
use clap::{arg, crate_authors, crate_version, Command};
Expand Down
2 changes: 1 addition & 1 deletion src/quant.rs
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ pub enum ResolutionStrategy {
}

impl fmt::Display for ResolutionStrategy {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{:?}", self)
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -745,7 +745,7 @@ impl InternalVersionInfo {
}

impl fmt::Display for InternalVersionInfo {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "v{}.{}.{}", self.major, self.minor, self.patch)
}
}
Expand Down

0 comments on commit f68b838

Please sign in to comment.