This directory contains Docker configurations for PyEED's bioinformatics services:
- BLAST for sequence similarity searches
- Clustal Omega for multiple sequence alignment
- MMSeqs2 for fast sequence clustering
- Install Docker and Docker Compose on your system
- Clone this repository
- Navigate to the docker directory
- Run the services:
docker-compose up -dThe BLAST service requires a local BLAST database. The service mounts the local database directory to the container:
volumes:
- ./blast:/usr/local/bin/data- Place your FASTA sequences in
./blast/test_files/ - Create BLAST database in
./blast/test_db/:
cd blast/test_db
makeblastdb -in ../test_files/protein_sequences.fasta -dbtype prot -out protein_dbThe database files (*.pdb, *.phr, etc.) will be available to the container through the mounted volume.
Clustal Omega service mounts two directories:
volumes:
- ./clustalo:/app/data # Input/output dataThis allows:
- Persistent storage of alignment results
- Access to input/output files from host system
MMSeqs2 service mounts its directory for code and data:
volumes:
- ./mmseqs2:/appThis enables:
- Code updates without rebuilding container
- Access to clustering results
- Temporary file management
Docker volumes provide a way to persist data and share files between the host system and containers. In the context of PyEED:
-
Syntax:
- ./local/path:/container/path- Left side: Path on your host machine
- Right side: Path inside the container
-
Use Cases:
- Persisting databases (BLAST)
- Sharing configuration files
-
Benefits:
- Data persists between container restarts
- Easy data backup
- Direct file access from host
- Improved development workflow
After starting the services, they are available at:
- BLAST: http://localhost:6001
- Clustal Omega: http://localhost:5001
- MMSeqs2: http://localhost:8001
Each service provides a Swagger UI at /docs for API documentation.
To modify the services:
- Edit code in the respective service directories
- Changes are reflected immediately due to volume mounting
- For dependency changes, rebuild the containers:
docker-compose build
docker-compose up -d-
Volume Permissions:
- Ensure proper read/write permissions on mounted directories
- Fix with:
chmod -R 755 ./service_directory
-
Database Access:
- Verify database files are in correct location
- Check file permissions
- Ensure proper volume mounting
-
Port Conflicts:
- Change ports in docker-compose.yml if needed
- Check for other services using same ports
version: "2.2"
services:
clustalo:
build:
context: clustalo/
container_name: clustalo
ports:
- "5001:5001"
volumes:
- ./clustalo:/app/data
blast:
build:
context: blast/
container_name: blast
ports:
- "6001:6001"
volumes:
- /mnt/databases:/databases
mmseqs:
build:
context: mmseqs2/
container_name: mmseqs
ports:
- "8001:8001"
volumes:
- ./mmseqs2:/appTo build the services, run:
docker-compose buildTo start the services, run:
docker-compose up -d