Files
bttoxin-pipeline/tools/reproduction/bttoxin_digger/README_CN.md
zly 166af50219 Move digger reproduction env to tools/reproduction/
- Moved bttoxin_digger_v5_repro to tools/reproduction/bttoxin_digger
- Updated docker-compose.yml to point to the new location
- This declutters the root directory while preserving the reproduction environment
2026-01-17 13:11:16 +08:00

3.1 KiB
Raw Blame History

BtToxin_Digger (pixi) 复现与 Docker 镜像

本仓库提供了一个 可复现的运行环境,用于运行 BtToxin_Digger 1.0.10,并打包为基于 ghcr.io/prefix-dev/pixi 的 Docker 镜像。

包含内容:

  1. BtToxin_Digger 1.0.10 (通过 Pixi 安装)
  2. BLAST+ 2.16.0 (兼容 v5 数据库)
  3. 预置 BtToxin 数据库 (已集成到镜像中)

许可证 / 引用 / 免责声明

  • BtToxin_Digger 由原作者开发;如果在研究中使用,请引用上游发表的论文。
  • 本仓库 仅提供环境封装 (pixi/docker);不修改 BtToxin_Digger 源代码。

1. 快速开始 (使用 Docker)

最简单的运行方式是使用包含的 docker-compose.yml 或全局项目配置。

构建镜像

# 在本目录下
docker compose build

运行分析

将你的输入 .fna 文件放入 examples/inputs (或挂载你自己的目录),然后运行:

# 查看帮助
docker compose run --rm digger-repro pixi run BtToxin_Digger --help

# 对特定文件运行分析
# 注意:输入路径必须匹配内部挂载点 (/app/jobs)
docker compose run --rm digger-repro pixi run BtToxin_Digger \
  --SeqPath /app/jobs \
  --Scaf_suffix .fna \
  --threads 4

目录挂载说明

  • /app/jobs: 挂载你的输入序列文件目录。
  • /app/data: 挂载你期望的输出目录 (如果在参数中使用绝对路径)。

2. Docker 镜像构建原理

镜像使用 docker/Dockerfile 构建。

基础镜像

使用 ghcr.io/prefix-dev/pixi:latest 以确保一致的 conda 兼容环境。

数据库集成

外部数据库 (external_dbs/bt_toxin) 在构建时 被复制到镜像中。 目标位置:/app/.pixi/envs/default/bin/BTTCMP_db/bt_toxin

这替换了 bioconda 包自带的默认数据库,确保:

  1. 使用最新的毒素定义。
  2. BLAST v5 索引与安装的 BLAST+ 2.16.0 兼容。

环境定义 (pixi.toml)

  • bttoxin_digger = "==1.0.10"
  • perl = "==5.26.2" (旧版兼容需求)
  • blast = "==2.16.0" (升级以支持 v5 数据库)
  • channel-priority = "disabled"

3. 开发 / 手动使用

如果你想在不使用 Docker 的情况下使用本地 Pixi 运行:

# 安装环境
pixi install

# 链接数据库 (如果不使用 Docker需要手动操作)
# Dockerfile 会通过复制文件自动完成此步骤。
ENV_BIN=.pixi/envs/default/bin
rm -rf "$ENV_BIN/BTTCMP_db/bt_toxin"
ln -sfn $(pwd)/external_dbs/bt_toxin "$ENV_BIN/BTTCMP_db/bt_toxin"

# 运行
pixi run BtToxin_Digger --help

4. 仓库结构

.
├── docker/
│   └── Dockerfile          # Docker 构建定义
├── docker-compose.yml      # 本地测试编排
├── external_dbs/           # 数据库源 (构建时复制到镜像)
│   └── bt_toxin/           # 实际的数据库文件
├── pixi.toml               # 环境依赖定义
├── pixi.lock               # 确切的版本锁定
└── examples/               # 测试输入和输出

5. 更新数据库

要更新容器使用的数据库:

  1. 更新 external_dbs/bt_toxin/ 中的文件。
  2. 重新构建 Docker 镜像:
    docker compose build --no-cache