- 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
3.1 KiB
3.1 KiB
BtToxin_Digger (pixi) 复现与 Docker 镜像
本仓库提供了一个 可复现的运行环境,用于运行 BtToxin_Digger 1.0.10,并打包为基于 ghcr.io/prefix-dev/pixi 的 Docker 镜像。
包含内容:
- BtToxin_Digger 1.0.10 (通过 Pixi 安装)
- BLAST+ 2.16.0 (兼容 v5 数据库)
- 预置 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 包自带的默认数据库,确保:
- 使用最新的毒素定义。
- 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. 更新数据库
要更新容器使用的数据库:
- 更新
external_dbs/bt_toxin/中的文件。 - 重新构建 Docker 镜像:
docker compose build --no-cache