Files
bttoxin-pipeline/tools/bttoxin_digger/README_CN.md
2026-01-18 22:37:19 +08:00

108 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` 或全局项目配置。
### 构建镜像
```bash
# 在本目录下
docker compose build
```
### 运行分析
将你的输入 `.fna` 文件放入 `examples/inputs` (或挂载你自己的目录),然后运行:
```bash
# 查看帮助
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 运行:
```bash
# 安装环境
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 镜像:
```bash
docker compose build --no-cache
```