Skip to content

bbeckley-hub/eskape-web-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧬 ESKAPE AMR Platform

A Unified, Species-Optimized Web Suite for Genomic Surveillance of ESKAPE Pathogens and E. coli

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.

Python Flask Celery License: MIT Stars

📌 Development Status Notice

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.

📋 Table of Contents

  1. Overview
  2. Key Features
  3. How It Works
  4. Getting Started
  5. Usage Guide
  6. API Reference
  7. Deployment
  8. For Power Users: Command-Line Pipelines
  9. Contributing
  10. License
  11. Contact & Support
  12. Acknowledgements

🎯 Overview

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.

Integrated Pathogen Pipelines

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.

✨ Key Features

Web Application Features

  • 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.

Web Platform-Specific Features

  • 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.

⚙️ How It Works

Architecture Overview

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.                │
└─────────────────────────────────────────────────────────────┘

Technology Stack

  • 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)

🚀 Getting Started (Local Development)

Prerequisites

  • Python 3.9+
  • Conda (for pipeline environments)
  • Redis Server

Installation for Local Development

  1. Clone the repository:

    git clone https://github.com/bbeckley-hub/eskape-web-platform.git
    cd eskape-web-platform
  2. Set up the Python environment:

    conda create -n eskape-web python=3.9 -y
    conda activate eskape-web
    pip install -r requirements.txt
  3. 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.
  4. Configure paths in config.py: Update the PIPELINE_EXECUTABLES dictionary 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
    }
  5. Start Redis:

    redis-server

Running the Services

You need to run three services in separate terminals.

Terminal 1 – Celery Worker:

conda activate eskape-web
celery -A tasks worker --loglevel=info --concurrency 4

Terminal 2 – Flask App:

conda activate eskape-web
python app.py

Terminal 3 – (Optional) Cloudflare Tunnel for Public Access:

cloudflared tunnel run staphscope

Note: For local testing, simply visit http://localhost:5000.

📚 Usage Guide

Submitting a Job

  1. Go to the Tools page and select a pathogen.
  2. Upload your genome(s): Click to select one or more FASTA files or a ZIP archive containing them.
  3. (Optional) Enter your email to receive a notification when your job is finished.
  4. (Optional) Select modules: Uncheck any analyses you wish to skip.
  5. (StaphScope) Adjust AMR settings: Fine-tune the minimum identity and coverage thresholds or disable mutation reporting using the sliders.
  6. Click Submit Job.

Understanding Your Results

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.

🖥️ API Reference

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.

🚀 Deployment

System Requirements

  • 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

Using Gunicorn & Nginx

For a production deployment, use Gunicorn and Nginx. We provide systemd service file examples for Gunicorn and Celery in the docs/ folder.

Institutional Hosting

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.

📦 For Power Users: Command-Line Pipelines

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 results

🤝 Contributing

Contributions 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.

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add some AmazingFeature').
  4. Push to the branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

📬 Contact & Support

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)

🙏 Acknowledgements

  • 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!

About

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.

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors