Skip to content

amrnet/amrnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1,289 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

GitHub version License: GPL v3 Last Commit Issues Stars DOI

Making genome-derived AMR surveillance data accessible worldwide

πŸ”— Quick Links: 🌐 Live Dashboard β€’ πŸ“– Documentation β€’ πŸš€ Quick Start β€’ πŸ’¬ Community

Making genome-derived AMR surveillance data accessible worldwide

πŸ”— Quick Links: 🌐 Live Dashboard β€’ πŸ“– Documentation β€’ πŸš€ Quick Start β€’ πŸ’¬ Community

🎯 Overview

AMRnet is a comprehensive web-based platform that transforms complex antimicrobial resistance (AMR) genomic surveillance data into accessible, interactive visualisations. Our mission is to democratize access to high-quality AMR data for researchers, public health professionals, and policymakers worldwide.

✨ Key Features

  • πŸ—ΊοΈ Interactive Global Maps - Visualize resistance patterns across countries and regions
  • πŸ“Š Trend Analysis - Track resistance changes over time with dynamic graphs
  • πŸ” Advanced Filtering - Explore data by organism, drug, genotype, and geography
  • 🌍 Multi-Language Support - Available in English, French, Portuguese, and Spanish
  • πŸ“± Responsive Design - Optimised for desktop, tablet, and mobile devices
  • πŸ“ Data Export - Download filtered datasets for further analysis
  • πŸ”Œ API Access - Programmatic access to all data with comprehensive documentation

🦠 Supported Organisms

Organism Scientific Name Key Features
S. Typhi Salmonella Typhi Typhoid fever surveillance
K. pneumoniae Klebsiella pneumoniae Healthcare-associated infections
N. gonorrhoeae Neisseria gonorrhoeae Gonorrhea resistance monitoring
E. coli Escherichia coli ESBL and carbapenemase tracking
Shigella Shigella spp. Dysentery and MDR monitoring
Salmonella Salmonella enterica Non-typhoidal Salmonella surveillance

πŸš€ Quick Start

For Users

  1. 🌐 Visit the Dashboard: Go to amrnet.org
  2. 🦠 Select an Organism: Choose from our supported organisms
  3. πŸ” Apply Filters: Customize your view by geography, time, and resistance
  4. πŸ“Š Explore Visualizations: Interact with maps and graphs
  5. πŸ“₯ Export Data: Download results for your analysis

For Developers

# Clone the repository
git clone https://github.com/amrnet/amrnet.git
cd amrnet

# Install dependencies
npm install
cd client && npm install && cd ..

# Set up environment
cp .env.example .env
# Edit .env with your MongoDB connection string

# Start development servers
npm run start:dev

Visit http://localhost:3000 to see the application running locally.

πŸ“š Need more details? Check our Installation Guide and Developer Guide.

πŸ—οΈ Platform Architecture

AMRnet employs a modern, scalable MERN stack architecture designed to handle large-scale genomic surveillance data with enterprise-grade performance.

🎯 Interactive Architecture Diagrams

We provide comprehensive visual documentation of our platform architecture:

πŸ“Š Macro Architecture View

Macro Architecture

High-level overview of the four main architectural layers

πŸ”¬ Detailed Component View

Detailed Architecture

Comprehensive data pipeline and component breakdown

πŸ›οΈ Four-Layer Architecture

πŸ“± Frontend Layer (React 18)
β”œβ”€β”€ 🎨 Interactive UI Components with Material-UI
β”œβ”€β”€ πŸ“Š D3.js Data Visualizations & Dynamic Charts
β”œβ”€β”€ πŸ—ΊοΈ Geographic Maps with React Simple Maps
β”œβ”€β”€ 🌍 Multi-language Support (EN, ES, FR, PT)
└── πŸ“± Progressive Web App with Offline Capabilities

βš™οΈ Backend Layer (Node.js/Express)
β”œβ”€β”€ πŸ›‘οΈ RESTful API with Rate Limiting & Authentication
β”œβ”€β”€ ⚑ Optimized Endpoints with 70-87% Performance Gains
β”œβ”€β”€ πŸ—œοΈ Advanced Compression (90% Payload Reduction)
β”œβ”€β”€ πŸ”’ Security Framework (Helmet, CORS, OAuth2)
└── πŸ“Š Real-time Data Processing Pipelines

πŸ—„οΈ Database Layer (MongoDB Atlas)
β”œβ”€β”€ πŸ“‹ 8 Organism Collections (500K+ Records)
β”œβ”€β”€ οΏ½ Performance Indexes for Geographic & Temporal Queries
β”œβ”€β”€ πŸ”„ Aggregation Pipelines for Server-side Processing
β”œβ”€β”€ οΏ½ Advanced Filtering by Country, Drug, Genotype
└── ☁️ Cloud-hosted with Automated Backups

🌐 Infrastructure Layer
β”œβ”€β”€ πŸš€ Heroku Deployment with Auto-scaling
β”œβ”€β”€ πŸ”— Fixie Proxy for Secure Database Connections
β”œβ”€β”€ πŸ“ AWS S3 for Data Export & Backup Storage
└── οΏ½ CI/CD Pipeline with GitHub Actions

πŸ”§ Technology Stack

AMRnet leverages cutting-edge technologies for optimal performance:

Frontend Technologies
β”œβ”€β”€ βš›οΈ React 18 with Hooks & Functional Components
β”œβ”€β”€ 🎨 Material-UI v5 for Modern Design System
β”œβ”€β”€ πŸ“Š D3.js for Interactive Data Visualizations
β”œβ”€β”€ πŸ—ΊοΈ React Simple Maps for Geographic Visualizations
β”œβ”€β”€ 🌍 react-i18next for Internationalization
β”œβ”€β”€ πŸ“± Progressive Web App Features
└── ⚑ Performance: Code Splitting, Lazy Loading, Service Workers

Backend Technologies
β”œβ”€β”€ 🟒 Node.js v18.20.4 with Express.js Framework
β”œβ”€β”€ πŸ—„οΈ MongoDB with Mongoose ODM
β”œβ”€β”€ πŸ”’ Authentication: JWT, OAuth2, API Keys
β”œβ”€β”€ πŸ›‘οΈ Security: Helmet, CORS, Rate Limiting
β”œβ”€β”€ οΏ½ Data Processing: Aggregation Pipelines, Field Projection
β”œβ”€β”€ πŸ—œοΈ Compression: gzip, brotli for Payload Optimization
└── πŸ“ Logging: Winston with Sentry Error Tracking

Database & Infrastructure
β”œβ”€β”€ ☁️ MongoDB Atlas Cloud Database
β”œβ”€β”€ πŸ“ AWS S3 for File Storage & Data Exports
β”œβ”€β”€ πŸš€ Heroku Platform for Application Hosting
β”œβ”€β”€ οΏ½ Fixie SOCKS5 Proxy for Secure Connections
β”œβ”€β”€ πŸ”„ GitHub Actions for CI/CD Automation
└── πŸ“Š Performance Monitoring & Health Checks

🎯 Performance Metrics

Our architecture delivers enterprise-grade performance with measurable improvements:

Metric Before Optimization After Optimization Improvement
Load Times 3.2s average 0.4-1.0s average 70-87% faster
Payload Size 2.1MB average 0.2-1.0MB average 60-90% reduction
API Capacity 2,000 req/hour 10,000+ req/hour 500% increase
Database Queries 800ms average 120ms average 85% faster

πŸ“Š Data Coverage & Sources

AMRnet integrates surveillance data from major public genomic databases:

🦠 Supported Organisms (8 Species)

  • Salmonella Typhi - Global typhoid surveillance from Pathogenwatch
  • Klebsiella pneumoniae - Healthcare-associated infections from Pathogenwatch
  • Neisseria gonorrhoeae - STI surveillance from Pathogenwatch
  • Escherichia coli - Enteric infections from Enterobase
  • Diarrheagenic E. coli - Diarrheal disease surveillance from Enterobase
  • Shigella species - Shigellosis surveillance from Enterobase
  • Salmonella enterica - Non-typhoidal Salmonella from Enterobase
  • Invasive Salmonella - Bloodstream infections from Enterobase

🌍 Global Coverage

  • 500,000+ genomic records with AMR predictions
  • 75+ countries represented across all continents
  • 4 languages supported (English, Spanish, French, Portuguese)
  • Real-time updates from source databases

πŸ”¬ Data Sources

  • Pathogenwatch - 3 organisms with AMR predictions
  • Enterobase - 5 organisms with hierarchical clustering
  • Academic consortiums - Global Typhoid Genomics Consortium

πŸ”— Architecture Documentation

For comprehensive technical documentation, visit:

πŸ“– Documentation

Resource Description Link
User Guide Complete dashboard usage instructions πŸ“– Read the Docs
API Documentation RESTful API reference and examples πŸ”Œ API Docs
Developer Guide Adding new organisms and contributing πŸ› οΈ Dev Guide
Data Dictionary Data structure and field definitions πŸ“Š Data Docs

πŸ› οΈ Installation

Prerequisites

  • Node.js 18+ with npm
  • MongoDB 6.0+ (local or Atlas cloud)
  • Git for version control

Development Setup

  1. Clone and Install:

    git clone https://github.com/amrnet/amrnet.git
    cd amrnet
    npm install
  2. Client Dependencies:

    cd client
    npm install
    cd ..
  3. Environment Configuration:

    cp .env.example .env

    Edit .env with your configuration:

    MONGODB_URI=mongodb://localhost:27017/amrnet
    NODE_ENV=development
    PORT=3000
  4. Start Development Servers:

    npm run start:dev

The application will be available at http://localhost:3000 with hot reloading enabled.

Production Deployment

For production deployment instructions, see our Deployment Guide.

πŸ”Œ API Access

AMRnet provides a comprehensive RESTful API for programmatic access to all data.

Quick Examples

# Get all S. Typhi data
curl "https://api.amrnet.org/styphi"

# Filter by country and year
curl "https://api.amrnet.org/styphi?country=BGD&year_start=2020"

# Get summary statistics
curl "https://api.amrnet.org/styphi/summary"

Python Integration

import requests
import pandas as pd

# Fetch AMR data
response = requests.get('https://api.amrnet.org/styphi',
                       params={'country': 'USA', 'limit': 1000})
data = response.json()

# Convert to DataFrame
df = pd.DataFrame(data['data'])
print(f"Retrieved {len(df)} samples")

πŸ“š Full API Documentation: amrnet.readthedocs.io/api

🀝 Contributing

We welcome contributions from the global AMR surveillance community!

Ways to Contribute

Development Workflow

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

Code Standards

  • ESLint: Follow our JavaScript style guide
  • Prettier: Code formatting consistency
  • JSDoc: Document all functions and components
  • Testing: Include unit tests for new features

πŸ“‹ Full Contributing Guide: CONTRIBUTING.md

πŸ“œ Citation & Licensing

How to Cite

If you use AMRnet data or visualizations in your work, please cite:

@software{amrnet2023,
  title = {AMRnet: Global Antimicrobial Resistance Surveillance Dashboard},
  author = {Cerdeira, L, Sharma, V, Holt, Kathryn E. and {AMRnet Team}},
  year = {2024},
  url = {https://www.amrnet.org},
  doi = {10.5281/zenodo.10810218}
}

DOI: 10.5281/zenodo.10810218

License

AMRnet is released under the GNU General Public License v3.0 (GPL-3.0).

  • βœ… Use - Commercial and non-commercial use allowed
  • βœ… Modify - Create derivative works and modifications
  • βœ… Distribute - Share original and modified versions
  • ⚠️ Share Alike - Derivatives must use GPL-3.0 license
  • ⚠️ Disclose Source - Source code must be made available

See LICENSE for full details.

🎯 Funding & Acknowledgments

Primary Funding

AMRnet is proudly funded by:

  • πŸ›οΈ Wellcome Trust - Core platform development and maintenance
  • πŸŽ“ London School of Hygiene & Tropical Medicine - Institutional support
  • 🀝 Global Partnership - International collaboration network

Acknowledgments

We gratefully acknowledge:

  • Global Typhoid Genomics Consortium - Data curation and expertise
  • Pathogenwatch Team - Bioinformatics pipeline support
  • EnteroBase Contributors - Database infrastructure
  • Open Source Community - Technology stack and tools
  • International Collaborators - Data sharing and validation

πŸ†˜ Support & Community

Getting Help

Type Resource Response Time
πŸ› Bugs GitHub Issues 1-3 days
πŸ’‘ Features GitHub Discussions 3-7 days
πŸ“§ General [email protected] 5-10 days
πŸ“– Documentation Read the Docs Self-service

Community Guidelines

We're committed to fostering an inclusive, welcoming community:

  • 🀝 Be Respectful - Treat all community members with courtesy
  • 🎯 Stay On Topic - Keep discussions relevant to AMR surveillance
  • πŸ“š Help Others - Share knowledge and assist newcomers
  • πŸ” Search First - Check existing issues before creating new ones
  • πŸ“ Be Clear - Provide detailed bug reports and feature requests

οΏ½ Contact & Links

AMRnet - Powered by AMRnet team.

🌐 Dashboard β€’ πŸ“– Docs β€’ πŸ’» GitHub β€’ πŸ“§ Contact

Making AMR surveillance data accessible to everyone, everywhere