跳转到主要内容

基于dvc的数据科学操作

项目描述

DSO:数据科学操作

DSO Kraken

DSO 是一个用于轻松构建可重复的数据分析项目的命令行助手。它建立在 dvc 数据版本化的基础上,并提供项目模板、代码检查、配置文件分层覆盖,并与quarto和jupyter笔记本集成。

在勃林格殷格翰,我们引入了DSO以满足临床试验中生物标志物分析所需的高质量标准。DSO仍在早期开发中,我们重视社区反馈。

入门指南

什么是DVC?

DVC 类似于“数据版的 git”。它可以对与 git 跟踪的源代码一起版本控制大型数据文件和数据目录。除了版本控制文件外,dvc 还可以通过在 dvc.yaml 配置文件中声明输入和输出文件以及要执行的命令,以可重复的方式运行分析。在执行分析后,所有输入和输出文件的时戳和校验和都存储在 lock 文件中,提供溯源记录。不同的分析任务组织在 阶段 中。由于每个阶段的输入和输出文件都已声明,dvc 可以构建阶段的依赖图,以便在输入数据或预处理步骤更新时适当重新执行阶段。

从模板创建项目

DSO 模板有三种类型:项目、文件夹和阶段。一个 项目 是项目的根目录,同时也是一个 git 仓库。可以使用 dso init 创建它。一个 阶段 是分析的可执行步骤(通常是一个定义了输入和输出的脚本)组织在一个文件夹中。阶段不能嵌套。一个 文件夹 用于在项目中按层次组织阶段。

您可以使用 dso init 创建一个新项目

$> dso init
Please enter the name of the project, e.g. "single_cell_lung_atlas": my_cool_project
Please add a short description of the project: This analysis solves *all* the problems!

在项目内部,您可以使用 dso create 从预定义的模板初始化文件夹和阶段

$> dso create stage
? Choose a template: (Use arrow keys)
   bash
 » quarto
Please enter the name of the stage, e.g. "01_preprocessing": 02_quality_control
Please add a short description of the stage: Make a PCA to detect outliers

如何编写和使用配置文件

项目、子文件夹或阶段中的配置文件是任何可重复分析的基础,通过最小化相关脚本中的分析配置错误。此外,配置文件减少了在更改配置(如 p 值截止值、排除样本、输出目录、数据输入等)时修改脚本所需的时间。

项目、子文件夹或阶段的配置文件包含所有应在一项分析中保持一致的必要参数。因此,更改参数是在配置文件中进行的,而不是在分析脚本中单独进行。

在 DSO 中,有两个参数文件称为 params.yamlparams.in.yamlparams.yaml 是一个自动生成的 YAML,包含在 params.in.yaml 和其父目录中的其他 params.yaml 文件中指定的所有参数(请参见下方的示例,了解实际中的行为)。params.yaml 将在执行 dso compile-config 时编译。

Hierarchical configuration schema
$> dso compile-config
[08/22/24 20:53:43] INFO     Detected /home/grst/my_cool_project as project root.
                    INFO     Compiling a total of 2 config files.
                    INFO     Configuration compiled successfully.

代码风格检查

Dso 提供了代码风格检查,用于检测分析项目中常见的错误。目前只有少数检查已实现,但未来将提供更多。

要手动运行代码风格检查,请执行

$> dso lint
[08/22/24 20:53:43] INFO     Compiled a list of 22 to be linted

然而,最好是作为 pre-commit 钩子或作为持续集成检查来执行代码风格检查。DSO 项目模板附带一个 .pre-commit-config.yaml。只需使用 pre-commit install 激活它。

重现项目

要重现/执行项目中的所有阶段,请运行

$> dso repro

这是一个围绕 dvc repro 的薄包装,它事先编译所有配置文件。DVC 只会重现定义在 dvc.yaml 中且已更改的阶段。当依赖关系发生变化时,前面的阶段也将重新运行。

与 quarto 的集成

DSO 为生成可重复报告的 quarto 文档提供了一些额外的工具。当您通过 dso create stage --template quarto 创建一个 quarto 阶段时,您就可以使用这些工具了

  • 通过 dso exec quarto . 将 quarto 阶段渲染为 html
  • 通过项目从 params.yaml 文件继承配置。Quarto 配置可以放在 dso.quarto 中,例如。
    dso:
      quarto:
         author:
           - Jane Doe
         execute:
           warning: false
    
  • 通过添加额外的设置,为所有图形添加免责声明框和水印(例如,将其标记为草案)
    dso:
      quarto:
        watermark:
          text: DRAFT
        disclaimer:
          title: This document is a DRAFT
          text: Please do not share!
    

要从 R 中访问阶段参数并解析相对于阶段目录的文件路径,我们提供了配套包 dso-r,它提供了两个函数 read_params(stage_name)stage_here(path)

安装

DSO 需要 Python 3.10 或更高版本。

您可以使用 pip 使用以下命令进行安装

pip install git+https://github.com/Boehringer-Ingelheim/dso.git@main

该工具将在不久的将来在PyPI上提供。

发行说明

查看变更日志

鸣谢

dso最初由

DSO依赖于许多优秀的开源项目,最著名的是dvchiyapycojinja2

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解安装包的更多信息。

源代码分发

dso_core-0.8.2.post2.tar.gz (1.2 MB 查看哈希)

上传时间 源代码

构建分发

dso_core-0.8.2.post2-py3-none-any.whl (409.7 kB 查看哈希)

上传时间 Python 3

由以下提供支持