7 个版本 (1 个稳定版)

1.0.0 2024年7月12日
1.0.0-rc.22024年5月28日
1.0.0-rc.12024年2月26日
0.5.1 2024年2月16日
0.4.0 2024年2月1日

#488开发工具

Download history • Rust 包仓库 80/week @ 2024-05-24 • Rust 包仓库 17/week @ 2024-05-31 • Rust 包仓库 5/week @ 2024-06-07 • Rust 包仓库 1/week @ 2024-06-28 • Rust 包仓库 18/week @ 2024-07-05 • Rust 包仓库 95/week @ 2024-07-12 • Rust 包仓库 2/week @ 2024-07-19 • Rust 包仓库

97 每月下载量

MIT 许可证

125KB
2.5K SLoC

If you want it, Kerblam it!

GitHub issues GitHub License GitHub Repo stars All Contributors DOI

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! 不是不想成为

  • 🚱 一个像 snakemakenextflowcwltool 这样的工作流程运行器;
    • 它支持并帮助您执行为其他 WMS 编写的管道,但之后不会干涉;
  • ♻️ 任何它所依赖的工具的替代品(例如 gitdockerpodmanpre-commit 等...);
  • 🔎 任何使您免受编写良好、正确的工作流程和容器配方微妙差异的影响的东西。具体来说,Kerblam! 永远不会
    • 解析您的 .gitignore.dockerignore、管道或容器配方以检查错误或潜在问题;
    • 为您编辑代码(除了允许 kerblam package 工作的一点点包装之外);
    • 处理管道或容器产生的任何错误。

观点

Kerblam! 希望尽可能地简化并标准化数据分析项目。因此,项目是有观点的

  • 您的项目文件夹结构遵循 Kerblam! 标准,尽管您可以在 kerblam.toml 中进行配置。有关更多信息,请参阅此处
  • 您使用某种工作流程管理系统来运行您的分析。
    • Kerblam! 原生使用 make,但您当然可以编写执行其他工具(如 snakemake)的 shell 脚本。
  • 您使用 dockerpodman 作为您的虚拟化服务。
  • 您使用 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!运行,您需要安装 gitmakedockerpodman

贡献

要贡献,请参阅 贡献指南

代码并非唯一的贡献方式。是否编写了指南?考虑过新功能?编写了一些文档字符串?发现了错误?所有这些都是有意义的、重要的贡献。因此,所有贡献者都列在 贡献指南 中。

如果您使用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字体


记住!如果您想要它...

Kerblam it!

依赖关系

~15–49MB
~817K SLoC