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 80/week @ 2024-05-24 17/week @ 2024-05-31 5/week @ 2024-06-07 1/week @ 2024-06-28 18/week @ 2024-07-05 95/week @ 2024-07-12 2/week @ 2024-07-19

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