25个版本 (15个重大更新)
0.17.1 | 2024年7月9日 |
---|---|
0.16.2 | 2024年2月1日 |
0.15.1 | 2023年10月29日 |
0.14.1 | 2023年7月10日 |
0.2.1 | 2022年7月29日 |
#15 in 生物学
每月下载量203次
215KB
4K SLoC
simpleaf
simpleaf
是一个rust
框架,它将创建用于定量的扩展参考序列的过程封装成一个单条命令(index
)和将样本的量化封装成一个单条命令(quant
)。它还暴露了各种其他功能,并且正在积极开发和扩展。
您可以从源代码、从crates.io或通过bioconda安装simpleaf
程序。simpleaf
需要alevin-fry
,以及piscem
或salmon
(如果您愿意,两者都可以),以及wget
。
注意:我们建议使用piscem
作为后端映射器,而不是salmon,因为它更加节省资源,更快,并且是当前和未来开发的主要焦点。如果您在使用
piscem
构建索引时遇到任何困难,在您在GitHub上提交问题之前,请确保您已尝试增加文件句柄限制(例如,如这里所述)。
查看详细的文档此处,并继续阅读以下内容,以了解更多关于simpleaf
的背景和动机。
简介 & 动机
-
Q(s) :
simpleaf
的目的是什么?它的功能不是已经被组成程序(例如salmon
、alevin-fry
、piscem
等)所覆盖了吗?我无法使用这些工具做simpleaf
能做到的事情吗? -
A : 当然可以!当然可以通过编写脚本或工作流程来复制
simpleaf
的功能。然而,simpleaf
被设计成使最常见用例更简单,同时在必要时保持关键灵活性。此外,simpleaf
还提供了一些额外的功能,如果用底层工具封装,则需要自己构建,并简化了不同映射后端(即salmon
或piscem
)的使用。更多详情,请继续阅读以下内容。
驱动 simpleaf
的相关工具(即 salmon
或 piscem
和 alevin-fry
)都是命令行工具,旨在一起使用。对于非常熟悉命令行和脚本的人来说,这些工具的设计使得使用变得简单。此外,它们被设计为高度可配置,以便可以根据用户想要完成的事情以不同的方式、不同的配置运行。实际上,许多 alevin-fry
用户已经使用 bash
脚本、定制的 python
脚本或专门构建的管道工具(如 snakemake
和 nextflow
)来创建自己的脚本或管道,将这些工具链在一起。
虽然这种交互模式对于非常熟悉命令行和脚本、并且需要最大程度控制工具每个方面运行的人来说很有意义,但对于不需要更复杂配置的常规任务来说,可能会显得有些令人望而却步。在这种情况下,应该可以进一步简化界面,提供一个类似于 cellranger count
的简单命令。
最初,我们为封装这些工具并基于简单的输入电子表格处理数据设计了一个 Nextflow 工作流程(quantaf)。虽然这种方法在需要处理大量数据时效果很好,并且由于 Nextflow
的易扩展性,可以轻松地扩展到许多不同的计算环境,但它是一种相对重量级的解决方案。考虑到一些当前和未来的发展方向,我们还寻求了一种选择性地采用程序性(即库级别)而不是基于文件或通道的通信方案,而不是基于文件或通道的通信方案。
因此,受到 10X Genomics 开发的工具 cellranger
(功能灵活且易于使用)和加州理工学院 Pachter 实验室开发的 kb-python
的启发,我们决定构建一个独立的工具,为我们的底层工作流程提供一个简化但灵活的接口。我们还寻求允许像 nf-core's scrnaseq 管道这样的工具提供的模块化,允许使用多个映射后端。
虽然像ruby
、python
或perl
这样的脚本语言是这种智能“包装器”或“管道”工具的自然选择,但我们选择在rust
中开发simpleaf
,实际上对于这种任务来说效果相当不错。尽管有多个原因促使我们做出这个决定,但一个主要的动机是,随着我们用rust
开发新工具并将其他功能迁移到rust
,将simpleaf
用rust
编写将允许一些工具之间直接进行程序级(即库级)的交互,而不是依赖于独立的过程管理和通信。
最后,虽然simpleaf
已经准备好使用(我们经常使用它来处理单个细胞数据),但它仍在积极开发中,不断添加新功能和能力。如果您有对simpleaf
功能建议或希望看到其发展的方向的反馈,请在问题或讨论中告诉我们。
依赖项
~40–54MB
~1M SLoC