7 个版本 (1 个稳定版)
1.0.0 | 2024年7月12日 |
---|---|
1.0.0-rc.2 | 2024年5月28日 |
1.0.0-rc.1 | 2024年2月26日 |
0.5.1 | 2024年2月16日 |
0.4.0 | 2024年2月1日 |
#488 在 开发工具 中
97 每月下载量
125KB
2.5K SLoC
Kerblam! 是一个数据分析项目的 项目管理系统。
无论您在哪里有需要处理以获取某些输出的输入数据,Kerblam! 都可以帮助您处理与数据交互中更繁琐和重复的部分,让您专注于完成任务。
Kerblam! 允许您对大小项目进行可重复性、严谨性和快速性的工作:从常规数据分析到大型多工作流项目。
您可以通过 观看 Kerblam! 可以为您做什么的演示,或者您可以直接通过 阅读快速入门指南 开始。如果您经常在这里,您可能需要 安装命令。
概述
以下是 Kerblam! 的一些功能:
- 🪄 您可以使用
kerblam new
快速启动一个新项目。Kerblam 使用合理的默认值生成您项目的文件夹结构,类似于cookiecutter
所做的。 - 🚀 Kerblam! 可以管理您为不同的工作流管理系统编写的流程。它主要偏好 GNU
make
,但可以管理可以通过命令行执行的一切。 - ♻️ Kerblam! 可以在工作流开始之前热替换输入数据,让您可以无需触摸配置即可动态地使用不同的输入数据集。例如,这非常适合临时使用测试数据。
- 🎁 Kerblam! 允许您将任意工作流程运行到容器中,为您处理卷挂载和其他细节。这可以让您将非原生容器化的工作流程打包到 Docker 中,以实现更高的可重复性。例如,您可能只需要运行一个非常小的数据处理管道,并且不想处理像 Snakemake、CWL 或 Nextflow 这样健壮的工作流程管理系统的冗长。
- 📦
kerblam package
将您的管道打包并导出用于以后执行的容器镜像。这将留下一个 tar 包,其中包含所有重现分析所需的数据,以便他们可以快速轻松地再次运行。重现者可以手动使用回复 tar 包,或者也可以让 Kerblam! 为他们解包项目。 - 📦 Kerblam! 可以从远程获取数据并保存到本地,管理本地数据并清理它,仅保留必须保留的文件。它还显示了磁盘上的本地数据量、远程数据量以及您可以释放多少磁盘空间而不会丢失任何重要数据。它还可以导出重要数据以快速与同事共享。
Kerblam! 不是 且 不想成为
- 🚱 一个像
snakemake
、nextflow
或cwltool
这样的工作流程运行器;- 它支持并帮助您执行为其他 WMS 编写的管道,但之后不会干涉;
- ♻️ 任何它所依赖的工具的替代品(例如
git
、docker
或podman
、pre-commit
等...); - 🔎 任何使您免受编写良好、正确的工作流程和容器配方微妙差异的影响的东西。具体来说,Kerblam! 永远不会
- 解析您的
.gitignore
、.dockerignore
、管道或容器配方以检查错误或潜在问题; - 为您编辑代码(除了允许
kerblam package
工作的一点点包装之外); - 处理管道或容器产生的任何错误。
- 解析您的
观点
Kerblam! 希望尽可能地简化并标准化数据分析项目。因此,项目是有观点的
- 您的项目文件夹结构遵循 Kerblam! 标准,尽管您可以在
kerblam.toml
中进行配置。有关更多信息,请参阅此处。 - 您使用某种工作流程管理系统来运行您的分析。
- Kerblam! 原生使用
make
,但您当然可以编写执行其他工具(如snakemake
)的 shell 脚本。
- Kerblam! 原生使用
- 您使用
docker
或podman
作为您的虚拟化服务。 - 您使用
git
作为您的版本控制系统。 - 您通常在容器中执行管道,而不是在您的开发环境中。
- 您的大部分输入数据都可以远程下载,特别是对于大而笨重的文件。
如果您不喜欢这种设置,Kerblam! 可能不适合您。
[!TIP] 如果您想了解更多关于这些设计选择的原因,请参阅Kerblam! 哲学。
文档
完整的 Kerblam! 文档可在网上找到,网址为 kerblam.dev 🚀。请访问那里获取更多关于 Kerblam! 能做什么的信息。
您可能会对 快速入门 感兴趣。它通过一个动手项目概述了 Kerblam! 是什么以及它能做什么。
安装
【警告】发布候选版本(例如
1.0.0-rc.x
)在crates.io上不可用!请在发布标签页、以下命令或使用cargo install --git https://github.com/MrHedmad/kerblam
直接从git编译。
简而言之,使用兼容Unix的操作系统,并使用以下任一方法:
# Install a prebuilt binary
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/MrHedmad/kerblam/releases/latest/download/kerblam-installer.sh | sh
或者,作为替代方案:
# Install from source with rustc and cargo
cargo install kerblam
为了使Kerblam!运行,您需要安装 git
、make
和 docker
或 podman
。
贡献
要贡献,请参阅 贡献指南。
代码并非唯一的贡献方式。是否编写了指南?考虑过新功能?编写了一些文档字符串?发现了错误?所有这些都是有意义的、重要的贡献。因此,所有贡献者都列在 贡献指南 中。
如果您使用Kerblam!或想对其发展方向提出意见,请查看 标记为RFC的问题。它们是 评论请求,您可以在其中就新功能提出您的意见。
感谢您对Kerblam!感兴趣!任何帮助都将非常感激。
许可和引用
Kerblam!遵循 MIT许可证。如果您希望引用Kerblam!,请提供此存储库的链接或使用Zenodo DOI 10.5281/zenodo.10664806
命名
此项目以《神秘博士》第11季第7集中的虚构在线商店/配送公司命名 S11E07。Kerblam!可以互换地称为Kerblam!、Kerblam或Kerb!am,尽管推荐使用Kerblam!。Kerblam!标志使用的是由 tup wanders 设计的 Kwark字体。
记住!如果您想要它...
依赖关系
~15–49MB
~817K SLoC