- Add filter to skip .zip and .tar.gz files when creating result archive - Update CRISPR feature with CASFinder dependencies (hmmer, blast, vmatch, etc.) - Add install-casfinder task for macsydata installation - Remove obsolete CRISPR test files Co-Authored-By: Claude <noreply@anthropic.com>
BtToxin_Digger (pixi) reproduction & Docker Image
This repo is a reproducible runtime environment for BtToxin_Digger 1.0.10, packaged as a Docker image based on ghcr.io/prefix-dev/pixi.
It includes:
- BtToxin_Digger 1.0.10 (installed via Pixi)
- BLAST+ 2.16.0 (compatible with v5 databases)
- Pre-bundled BtToxin Database (baked into the image)
License / Citation / Disclaimer
- BtToxin_Digger is developed by its original authors; cite the upstream publication if you use it in research.
- This repository only provides an environment wrapper (pixi/docker); it does not modify BtToxin_Digger source code.
1. Quick Start with Docker
The easiest way to run this is using the included docker-compose.yml or the global project configuration.
Build the Image
# In this directory
docker compose build
Run Analysis
Place your input .fna files in examples/inputs (or mount your own directory), then run:
# Run help
docker compose run --rm digger-repro pixi run BtToxin_Digger --help
# Run analysis on a specific file
# Note: Input path must match the internal mount point (/app/jobs)
docker compose run --rm digger-repro pixi run BtToxin_Digger \
--SeqPath /app/jobs \
--Scaf_suffix .fna \
--threads 4
Directory Mounting
/app/jobs: Mount your input sequence files here./app/data: Mount your desired output directory here (if using absolute paths in arguments).
2. Docker Image Construction
The image is built using docker/Dockerfile.
Base Image
Uses ghcr.io/prefix-dev/pixi:latest to ensure a consistent conda-compatible environment.
Database Integration
The external database (external_dbs/bt_toxin) is copied into the image during build time.
Target location: /app/.pixi/envs/default/bin/BTTCMP_db/bt_toxin
This replaces the default database shipped with the bioconda package, ensuring:
- Latest toxin definitions are used.
- BLAST v5 indices are compatible with the installed BLAST+ 2.16.0.
Environment Definition (pixi.toml)
bttoxin_digger = "==1.0.10"perl = "==5.26.2"(Legacy requirement)blast = "==2.16.0"(Upgraded for v5 DB support)channel-priority = "disabled"
3. Development / Manual Usage
If you want to run without Docker using local Pixi:
# Install environment
pixi install
# Link the database (required manually if not using Docker)
# The Dockerfile does this automatically by copying files.
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"
# Run
pixi run BtToxin_Digger --help
4. Repository Layout
.
├── docker/
│ └── Dockerfile # Docker build definition
├── docker-compose.yml # Local test orchestration
├── external_dbs/ # Database source (copied into image)
│ └── bt_toxin/ # The actual database files
├── pixi.toml # Environment dependencies
├── pixi.lock # Exact version lock
└── examples/ # Test inputs and outputs
5. Updating the Database (Important for Future Updates)
The database consists of two parts in external_dbs/bt_toxin:
seq/Directory: Contains the raw FASTA sequence files (e.g.,bt_toxin20251104.fas).db/Directory: Contains the BLAST indices (.phr,.pin,.psq) generated from the sequences.
Relationship: The files in db/ are generated from the FASTA files in seq/ using makeblastdb. The filename of the source FASTA (e.g., bt_toxin20251104.fas) is embedded in the db files metadata.
How to Update (e.g., for 2026/2027 data)
If a new database version is released (e.g., from https://github.com/liaochenlanruo/BtToxin_Digger), follow these steps:
-
Download New Sequences: Place the new FASTA file (e.g.,
bt_toxin2026xxxx.fas) intoexternal_dbs/bt_toxin/seq/. -
Generate New Indices (Critical Step): You must regenerate the indices in
external_dbs/bt_toxin/db/. You can use a temporary container or local BLAST+ to do this.# Example using the local pixi environment (if installed) # Or use a container with blast installed makeblastdb \ -in external_dbs/bt_toxin/seq/bt_toxin2026xxxx.fas \ -dbtype prot \ -out external_dbs/bt_toxin/db/bt_toxin \ -parse_seqidsNote: The
-outparameter must end withbt_toxinto match what the tool expects. -
Rebuild Docker Image: The Dockerfile copies
external_dbs/bt_toxininto the image. You must rebuild it to include the changes.docker compose build --no-cache -
Verify: Check the database version inside the new container:
docker compose run --rm digger-repro pixi run blastdbcmd -db /app/.pixi/envs/default/bin/BTTCMP_db/bt_toxin/db/bt_toxin -info