This directory contains Dockerfiles for all bioinformatics tools used in the DeepCritical project. Each Dockerfile is optimized for the specific tool and includes all necessary dependencies.
| Tool | Dockerfile | Description |
|---|---|---|
| BCFtools | Dockerfile.bcftools |
Variant analysis and manipulation |
| BEDTools | Dockerfile.bedtools |
Genomic arithmetic operations |
| Bowtie2 | Dockerfile.bowtie2 |
Sequence alignment tool |
| BUSCO | Dockerfile.busco |
Genome completeness assessment |
| BWA | Dockerfile.bwa |
DNA sequence alignment |
| Cutadapt | Dockerfile.cutadapt |
Adapter trimming |
| Deeptools | Dockerfile.deeptools |
Deep sequencing data analysis |
| Fastp | Dockerfile.fastp |
FASTQ preprocessing |
| FastQC | Dockerfile.fastqc |
Quality control |
| featureCounts | Dockerfile.featurecounts |
Read counting |
| Flye | Dockerfile.flye |
Long-read genome assembly |
| FreeBayes | Dockerfile.freebayes |
Bayesian variant calling |
| HISAT2 | Dockerfile.hisat2 |
RNA-seq alignment |
| HOMER | Dockerfile.homer |
Motif analysis |
| HTSeq | Dockerfile.htseq |
Read counting |
| Kallisto | Dockerfile.kallisto |
RNA-seq quantification |
| MACS3 | Dockerfile.macs3 |
ChIP-seq peak calling |
| MEME | Dockerfile.meme |
Motif discovery |
| Minimap2 | Dockerfile.minimap2 |
Versatile pairwise alignment |
| MultiQC | Dockerfile.multiqc |
Report generation |
| Picard | Dockerfile.picard |
SAM/BAM processing |
| Qualimap | Dockerfile.qualimap |
Quality control |
| Salmon | Dockerfile.salmon |
RNA-seq quantification |
| Samtools | Dockerfile.samtools |
SAM/BAM processing |
| Seqtk | Dockerfile.seqtk |
FASTA/Q processing |
| STAR | Dockerfile.star |
RNA-seq alignment |
| StringTie | Dockerfile.stringtie |
Transcript assembly |
| TopHat | Dockerfile.tophat |
RNA-seq splice-aware alignment |
| TrimGalore | Dockerfile.trimgalore |
Adapter trimming |
# Build a specific tool container
docker build -f docker/bioinformatics/Dockerfile.bcftools -t deepcritical-bcftools:latest .
# Build all containers
for dockerfile in docker/bioinformatics/Dockerfile.*; do
tool=$(basename "$dockerfile" | cut -d'.' -f2)
docker build -f "$dockerfile" -t "deepcritical-${tool}:latest" .
done# Run BCFtools container
docker run --rm -v $(pwd):/data deepcritical-bcftools:latest bcftools view -h /data/sample.vcf
# Run with interactive shell
docker run --rm -it -v $(pwd):/workspace deepcritical-bcftools:latest /bin/bashfrom DeepResearch.src.tools.bioinformatics.bcftools_server import BCFtoolsServer
# Create server instance
server = BCFtoolsServer()
# Deploy with Docker
deployment = await server.deploy_with_testcontainers()
print(f"Container ID: {deployment.container_id}")Each Dockerfile includes:
- Base Image: Python 3.11-slim for consistency
- System Dependencies: All required libraries and tools
- Python Dependencies: Tool-specific Python packages
- Health Checks: Container health monitoring
- Environment Variables: Tool-specific configuration
- Working Directory: Consistent
/workspacesetup
All containers include health checks and can be tested using:
# Test container health
docker run --rm deepcritical-bcftools:latest bcftools --version
# Run bioinformatics tests
make test-bioinformatics- Compression: zlib, libbz2, liblzma
- Bioinformatics: htslib (samtools, bcftools)
- Java: OpenJDK 11 (FastQC, Picard, Qualimap)
- R: R-base (Qualimap)
- Perl: Perl libraries (HOMER, MEME)
- Core: numpy, scipy, matplotlib
- Bioinformatics: pysam, biopython
- Specialized: cutadapt, deeptools, HTSeq, etc.
- All containers use multi-stage builds where applicable
- Health checks prevent running failed containers
- Minimal base images reduce attack surface
- Proper dependency management ensures reproducibility
- Volume mounting support for data persistence
- Permission Denied: Ensure Docker daemon is running and user has permissions
- Port Conflicts: Use different ports or check existing containers
- Memory Issues: Increase Docker memory limits for large datasets
- Network Issues: Check firewall settings and network configuration
# Check container logs
docker logs <container_id>
# Inspect container
docker inspect <container_id>
# Enter running container
docker exec -it <container_id> /bin/bashWhen adding new bioinformatics tools:
- Create a new Dockerfile following the established pattern
- Add appropriate tests in
tests/test_bioinformatics_tools/ - Update this README with tool information
- Test the container thoroughly before deployment
These Dockerfiles are part of the DeepCritical project and follow the same licensing terms.
[69 tools called]
Dockerfiles created for:
- bcftools
- bedtools
- bowtie2
- busco
- bwa
- cutadapt
- deeptools
- fastp
- fastqc
- featurecounts
- flye
- freebayes
- hisat2
- homer
- htseq
- kallisto
- macs3
- meme
- minimap2
- multiqc
- picard
- qualimap
- salmon
- samtools
- seqtk
- star
- stringtie
- tophat
- trimgalore
Key features of each Dockerfile:
- Python 3.11-slim base image for consistency
- All required system dependencies pre-installed
- Tool-specific Python packages
- Health checks for container monitoring
- Proper environment variable configuration
- Working directory setup
test files for:
- bcftools_server
- bowtie2_server
- busco_server
- cutadapt_server
- deeptools_server
- fastp_server
- fastqc_server
- flye_server
- homer_server
- htseq_server
- kallisto_server
- macs3_server
- meme_server
- minimap2_server
- multiqc_server
- picard_server
- qualimap_server
- salmon_server
- seqtk_server
- stringtie_server
- tophat_server
- trimgalore_server
Test structure follows existing patterns:
- Inherits from
BaseBioinformaticsToolTest - Includes sample data fixtures
- Tests basic functionality, parameter validation, and error handling
- All marked with
@pytest.mark.optionalfor proper test organization
-
Build containers:
docker build -f docker/bioinformatics/Dockerfile.bcftools -t deepcritical-bcftools:latest . -
Run bioinformatics tests:
make test-bioinformatics
-
Use in bioinformatics workflows:
from DeepResearch.src.tools.bioinformatics.bcftools_server import BCFtoolsServer server = BCFtoolsServer() deployment = await server.deploy_with_testcontainers()
The implementation provides a complete containerized environment for all bioinformatics tools used in DeepCritical, ensuring reproducibility and easy deployment across different environments.