update location

This commit is contained in:
zly
2026-01-18 22:37:19 +08:00
parent c9be0694ab
commit 5067169b0b
37 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,107 @@
# 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
```