Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev #94

Merged
merged 29 commits into from
Jun 13, 2023
Merged

Dev #94

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
4950b36
Merge pull request #83 from COMBINE-lab/main
rob-p Apr 17, 2023
a16fc2a
Merge branch 'COMBINE-lab:dev' into dev
DongzeHE Apr 19, 2023
2cf8b88
Merge pull request #85 from COMBINE-lab/main
rob-p Apr 19, 2023
f0276c4
Merge branch 'COMBINE-lab:dev' into dev
DongzeHE Apr 19, 2023
a3e2fa2
improve doc
DongzeHE Apr 19, 2023
3bdf5ed
Merge branch 'dev' of https://github.com/DongzeHE/simpleaf into dev
DongzeHE Apr 19, 2023
fe60840
improve doc
DongzeHE Apr 19, 2023
74d0fb1
Merge pull request #86 from DongzeHE/dev
DongzeHE Apr 19, 2023
6209d9c
improve workflow utility lib doc
DongzeHE Apr 25, 2023
103396c
more improvement for utils lib
DongzeHE Apr 25, 2023
78cf278
Merge pull request #87 from DongzeHE/dev
DongzeHE Apr 25, 2023
5ee0d94
update jrsonnet main
DongzeHE May 16, 2023
97c50c0
cargo fmt
DongzeHE May 16, 2023
e915e54
passed tests
DongzeHE May 16, 2023
4735188
fix typos
DongzeHE May 16, 2023
146a677
fix typos
DongzeHE May 16, 2023
298a2f9
Merge pull request #90 from DongzeHE/dev
rob-p May 17, 2023
fd53f76
cargo update
May 17, 2023
94414be
it compiles
Jun 12, 2023
39e2e68
make clippy happy
Jun 12, 2023
13b131e
write roers cmd info if present
Jun 12, 2023
5f6381e
add gff3_format flag to index command
Jun 13, 2023
6273ab7
comments
Jun 13, 2023
6c51514
give rlen a default value as 91
DongzeHE Jun 13, 2023
234b297
update deps
Jun 13, 2023
ca2a2c0
remove pyroe mentions from readme
Jun 13, 2023
edcf2c5
feat: replace pyroe with roers
Jun 13, 2023
fb41b72
Merge pull request #93 from COMBINE-lab/add-roers
rob-p Jun 13, 2023
185a8a5
format and minor
Jun 13, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,736 changes: 1,425 additions & 311 deletions Cargo.lock

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,27 +31,27 @@ keywords = [
categories = ["command-line-utilities", "science"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
seq_geom_parser = { git = "https://github.com/COMBINE-lab/seq_geom_parser", branch = "dev", version = "0.3.0" }
seq_geom_xform = { git = "https://github.com/COMBINE-lab/seq_geom_xform", branch = "dev", version = "0.4.0" }
roers = { git = "https://github.com/COMBINE-lab/roers", branch = "main", version = "0.1.0" }
anyhow = "^1.0"
clap = { version = "4.2.2", features = ["derive", "cargo", "deprecated", "wrap_help", "help", "usage", "error-context"] }
clap = { version = "4.3.3", features = ["derive", "cargo", "deprecated", "wrap_help", "help", "usage", "error-context"] }
cmd_lib = "^1.3.0"
tracing = "0.1.37"
tracing-subscriber = { version = "0.3.16", default-features = true, features = ["env-filter"] }
tracing-subscriber = { version = "0.3.17", default-features = true, features = ["env-filter"] }
semver = "^1.0.17"
serde = {version = "1.0.160", features = ["derive"]}
serde = {version = "1.0.164", features = ["derive"]}
serde_json = "1.0.96"
time = {version = "^0.3.20", features = ["macros", "formatting", "parsing", "serde", "serde-human-readable"]}
time = {version = "^0.3.22", features = ["macros", "formatting", "parsing", "serde", "serde-human-readable"]}
which = "^4.4.0"
jrsonnet-evaluator = "0.5.0-pre6"
jrsonnet-cli = "0.5.0-pre6"
jrsonnet-parser = "0.5.0-pre6"
jrsonnet-evaluator = "0.5.0-pre9"
jrsonnet-cli = "0.5.0-pre9"
jrsonnet-parser = "0.5.0-pre9"
thiserror = "1.0"
phf = { version = "0.11.1", features = ["macros"] }
chrono = "0.4.24"
tabled = "0.11.1"
chrono = "0.4.26"
tabled = "0.12.2"

[profile.release]
lto = "thin"
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@

`simpleaf` is a `rust` framework to make using `alevin-fry` _even_ simpler. `simpleaf` encapsulates the process of creating an expanded reference for quantification into a single command (`index`) and the quantification of a sample into a single command (`quant`). It also exposes various other functionality, and is actively being developed and expanded.

The `simpleaf` program can be installed from source, from [crates.io](https://crates.io/crates/simpleaf), or via [bioconda](https://bioconda.github.io/recipes/simpleaf/README.html). `simpleaf` requires [`pyroe`](https://github.com/COMBINE-lab/pyroe), [`alevin-fry`](https://github.com/COMBINE-lab/alevin-fry), and either [`piscem`](https://github.com/COMBINE-lab/piscem) or [`salmon`](https://github.com/COMBINE-lab/salmon) (or both, if you prefer), as well as [`wget`](https://www.gnu.org/software/wget/).
The `simpleaf` program can be installed from source, from [crates.io](https://crates.io/crates/simpleaf), or via [bioconda](https://bioconda.github.io/recipes/simpleaf/README.html). `simpleaf` requires, [`alevin-fry`](https://github.com/COMBINE-lab/alevin-fry), and either [`piscem`](https://github.com/COMBINE-lab/piscem) or [`salmon`](https://github.com/COMBINE-lab/salmon) (or both, if you prefer), as well as [`wget`](https://www.gnu.org/software/wget/).

Check out the detailed documentation [here](https://simpleaf.readthedocs.io/en/latest/), and read on below to learn more about the background and motivation behind `simpleaf`.

## Introduction & motivation

* **Q(s)** : What is the purpose of `simpleaf`? Isn't its functionality covered by the constituent programs (e.g. `salmon`, `alevin-fry`, `pyroe`, `piscem`, etc.)? Can't I make those tools do the same things `simpleaf` does?
* **Q(s)** : What is the purpose of `simpleaf`? Isn't its functionality covered by the constituent programs (e.g. `salmon`, `alevin-fry`, `piscem`, etc.)? Can't I make those tools do the same things `simpleaf` does?

* **A** : Yes! It is, of course, possible to replicate the functionality of `simpleaf` by building a script or workflow around the underlying tools. However, `simpleaf` is designed to make the most common use cases simpler, while also retaining critical flexibility where necessary. Further, `simpleaf` also provides some extra functionality that one would have to build themselves if wrapping the underlying tools, and simplifies the use of different mapping backends (i.e. `salmon` or `piscem`). For more details, read on below.

The relevant tools that drive `simpleaf` (i.e. `pyroe`, {`salmon` \| `piscem`} and `alevin-fry`) are all command-line tools meant to be used together. For those who are very comfortable with the command-line, these tools are designed to be straightforward to use. Further, they are designed to be highly-configurable, so that they can be run in different ways, with different configurations, based upon what the user wants to accomplish. In fact, many users of `alevin-fry` have crafted their own scripts or pipelines chaining these tools together using `bash` scripts, custom `python` scripts, or specially-built pipeline tools like `snakemake` and `nextflow`.
The relevant tools that drive `simpleaf` (i.e. {`salmon` \| `piscem`} and `alevin-fry`) are all command-line tools meant to be used together. For those who are very comfortable with the command-line, these tools are designed to be straightforward to use. Further, they are designed to be highly-configurable, so that they can be run in different ways, with different configurations, based upon what the user wants to accomplish. In fact, many users of `alevin-fry` have crafted their own scripts or pipelines chaining these tools together using `bash` scripts, custom `python` scripts, or specially-built pipeline tools like `snakemake` and `nextflow`.

While this mode of interaction makes a lot of sense for folks who are very comfortable with the command line and scripting, and who need maximum control over how each aspect of the tools is run, it can seem a bit daunting when one is performing a common task without the need for more exotic configurations. In that case, it should be possible to further simplify the interface to provide a simple command akin to something like [`cellranger count`](https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/count).

Expand Down
Loading