Welcome to the ESKAPE AMR Platform – a free, open-source web application that integrates seven species-specific genomic analysis pipelines into a single, user-friendly interface.
This project is currently under active development. The web interface and core functionality are ready for testing and collaboration. We are actively seeking institutional hosting partners to transition the platform from a personal laptop to a dedicated server, enabling 24/7 availability for the wider research community. Your feedback, contributions, and collaboration are highly welcome.
- Overview
- Key Features
- How It Works
- Getting Started
- Usage Guide
- API Reference
- Deployment
- For Power Users: Command-Line Pipelines
- Contributing
- License
- Contact & Support
- Acknowledgements
The ESKAPE AMR Platform is a fully-featured web application designed to democratize access to advanced bacterial genomic surveillance. It addresses the fragmentation of existing bioinformatics tools by providing a single, integrated interface for analyzing the most critical drug-resistant pathogens.
This platform leverages a robust backend to asynchronously run the species-optimized command-line pipelines, delivering comprehensive, publication-ready reports without requiring command-line expertise. It is built with the needs of researchers, clinicians, and public health labs in mind, particularly in low-resource settings.
The platform integrates the following species-specific pipelines:
| Pathogen | Pipeline | Key Analyses |
|---|---|---|
| S. aureus | StaphScope | MLST, spa typing, SCCmec, AMR, virulence, plasmids, lineage. |
| A. baumannii | AcinetoScope | Dual MLST, K/O capsule typing, AMR, carbapenemase tracking. |
| E. coli | EcoliTyper | MLST, serotyping, CH-typing, phylogrouping, pathotyping, AMR, virulence. |
| K. pneumoniae | Kleboscope | MLST, K-locus typing, virulence markers (ICEKp, iuc, rmp), AMR. |
| P. aeruginosa | PseudoScope | MLST, PAST serogrouping, AMR, virulence factors (exoU/exoS). |
| E. faecium | EnteroMark | MLST, vancomycin/linezolid resistance, high-level aminoglycosides. |
| E. cloacae complex | EnteroScope | MLST, carbapenemases, efflux pumps, biofilm markers. |
- Asynchronous Job Processing: Close your browser and receive an email when your analysis is complete.
- Intuitive File Upload: Upload single or multiple FASTA files, or entire ZIP archives.
- Dynamic Module Selection: Choose exactly which analyses to run for each pathogen.
- Real-Time Progress & Logs: Monitor your job with live logs as they stream from the pipeline.
- Comprehensive, Tabbed Results: Explore results in an organized, interactive interface for each module.
- One-Click Download: Download all your results, images, and data as a single ZIP archive.
- Administrative Dashboard: Monitor platform usage and moderate community feedback.
- Free and Open Source: All code is released under the MIT license, ensuring full transparency and reproducibility.
- Country Monitoring: Anonymized IP-based geolocation helps understand platform reach.
- Community Feedback: Users can submit and share testimonials (moderated).
- Email Notifications: Get a direct link to your results when the job finishes.
- Automatic Job Cleanup: Old job data is automatically deleted after 24 hours.
- Tutorial & Documentation: Built-in guide and video tutorial to get you started.
- Informative Pages: Dedicated sections for publications, team, funding, roadmap, and data policy.
The platform uses a decoupled, asynchronous architecture to handle computational tasks efficiently.
User Browser
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Frontend (Flask + Jinja2) │
│ • Landing page, tool pages, progress, results. │
│ • Bootstrap 5 for responsive design. │
│ • AJAX polling for live logs. │
└─────────────────────────────────────────────────────────────┘
│
▼ (HTTP requests)
┌─────────────────────────────────────────────────────────────┐
│ Backend (Flask routes) │
│ • Upload handling, job creation, status endpoint. │
│ • Admin page for monitoring and comment moderation. │
└─────────────────────────────────────────────────────────────┘
│
▼ (Celery task)
┌─────────────────────────────────────────────────────────────┐
│ Task Queue (Celery + Redis) │
│ • Asynchronous pipeline execution. │
│ • Each pipeline runs in its own Conda environment. │
│ • Logs written to job-specific directories. │
└─────────────────────────────────────────────────────────────┘
- Backend: Flask (Python web framework)
- Task Queue: Celery with Redis broker
- Bioinformatics Engine: Species-specific Conda environments
- Frontend: Bootstrap 5, JavaScript, Jinja2 templates
- Deployment: Gunicorn + Nginx (for production)
- Python 3.9+
- Conda (for pipeline environments)
- Redis Server
-
Clone the repository:
git clone https://github.com/bbeckley-hub/eskape-web-platform.git cd eskape-web-platform -
Set up the Python environment:
conda create -n eskape-web python=3.9 -y conda activate eskape-web pip install -r requirements.txt
-
Install the required pipeline environments (example for StaphScope):
conda create -n staphscope_env -c conda-forge -c bioconda -c bbeckley-hub staphscope -y # Repeat for ecolityper_env, acinetoscope_env, etc. as needed. -
Configure paths in
config.py: Update thePIPELINE_EXECUTABLESdictionary to point to the correct Conda environment paths for each pipeline.PIPELINE_EXECUTABLES = { 'staphscope': '/home/user/miniconda3/envs/staphscope_env/bin/staphscope', # ... add other pipelines }
-
Start Redis:
redis-server
You need to run three services in separate terminals.
Terminal 1 – Celery Worker:
conda activate eskape-web
celery -A tasks worker --loglevel=info --concurrency 4Terminal 2 – Flask App:
conda activate eskape-web
python app.pyTerminal 3 – (Optional) Cloudflare Tunnel for Public Access:
cloudflared tunnel run staphscopeNote: For local testing, simply visit http://localhost:5000.
- Go to the Tools page and select a pathogen.
- Upload your genome(s): Click to select one or more FASTA files or a ZIP archive containing them.
- (Optional) Enter your email to receive a notification when your job is finished.
- (Optional) Select modules: Uncheck any analyses you wish to skip.
- (StaphScope) Adjust AMR settings: Fine-tune the minimum identity and coverage thresholds or disable mutation reporting using the sliders.
- Click Submit Job.
Once the job finishes, you will be automatically redirected to the results page, which is organized into tabs for each analysis module (e.g., MLST, AMR, ABRicate). Each tab provides:
- An interactive HTML report you can view in your browser.
- Links to download raw data (TSV, JSON, or CSV).
- The option to download all results as a single ZIP file.
The web app provides a simple REST API for programmatic access:
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Home page with upload form. |
/submit/<slug> |
POST | Submit files for analysis. |
/status/<job_id> |
GET | Check job status (RUNNING, COMPLETED, FAILED). |
/progress/<job_id> |
GET | Progress page with live logs. |
/results/<job_id> |
GET | Results page. |
/results/<job_id>/download |
GET | Download all results as ZIP. |
- OS: Ubuntu 20.04/22.04 (recommended)
- CPU: 4+ cores
- RAM: 8+ GB (16+ GB recommended for concurrent jobs)
- Storage: 50+ GB for jobs, logs, and reference databases
For a production deployment, use Gunicorn and Nginx. We provide systemd service file examples for Gunicorn and Celery in the docs/ folder.
We are actively seeking institutional hosting partners to move this platform from a personal laptop to a reliable, 24/7 server environment. If your institution is interested in collaborating, please contact us.
The web version is designed for ease of use and has a 10-file limit. For large batch processing (100+ genomes), use the command-line versions, which are available as Conda packages on Bioconda.
# Example for StaphScope
conda create -n staphscope -c conda-forge -c bioconda staphscope -y
conda activate staphscope
abricate --setupdb # Setup databases first
staphscope -i "*.fna" -o resultsContributions are welcome! We are particularly interested in:
- Bug reports and feature requests.
- Contributions to the code, documentation, or new pipelines.
- Feedback from users in low-resource settings.
Please feel free to submit a Pull Request or open an Issue on GitHub.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.
Author: Brown Beckley
Affiliation: University of Ghana Medical School – Department of Medical Biochemistry
Email: brownbeckley94@gmail.com
GitHub: @bbeckley-hub
Project Link: https://github.com/bbeckley-hub/eskape-web-platform
Live Demo: https://staphscope.dpdns.org (Testing domain, may be offline)
- The researchers and institutions who have provided data and feedback.
- The open-source community for the incredible tools and libraries that make this work possible.
- Dr. Vincent Amarh for guidance and support.
- All contributors, beta testers, and users.
⭐ If you find this platform useful, please star the repository on GitHub!