Files
bttoxin-pipeline/tools/bttoxin_digger
zly 963215de2d Fix(pipeline): prevent nested zip packaging and update CRISPR dependencies
- 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>
2026-01-28 20:06:41 +08:00
..
2026-01-18 22:37:19 +08:00
2026-01-18 22:37:19 +08:00
2026-01-18 22:37:19 +08:00
2026-01-18 22:37:19 +08:00
2026-01-18 22:37:19 +08:00
2026-01-18 22:37:19 +08:00
2026-01-18 22:37:19 +08:00
2026-01-18 22:37:19 +08:00
2026-01-18 22:37:19 +08:00

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:

  1. BtToxin_Digger 1.0.10 (installed via Pixi)
  2. BLAST+ 2.16.0 (compatible with v5 databases)
  3. 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:

  1. Latest toxin definitions are used.
  2. 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:

  1. seq/ Directory: Contains the raw FASTA sequence files (e.g., bt_toxin20251104.fas).
  2. 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:

  1. Download New Sequences: Place the new FASTA file (e.g., bt_toxin2026xxxx.fas) into external_dbs/bt_toxin/seq/.

  2. 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_seqids
    

    Note: The -out parameter must end with bt_toxin to match what the tool expects.

  3. Rebuild Docker Image: The Dockerfile copies external_dbs/bt_toxin into the image. You must rebuild it to include the changes.

    docker compose build --no-cache
    
  4. 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