How genomic-medicine-sweden/mimosa works
MIMOSA is a genomic-surveillance and outbreak-investigation application. Its principal workflow ingests allele profiles and sample metadata (from Bonsai or chewBBACA TSVs), processes samples and genetic similarity, then supports case monitoring and visualisation alongside user-managed sample, outbreak, and operational functions. The graph includes backend API domains and frontend product areas named in the tree; their detailed connections are limited where source excerpts were unavailable. Dashed edges indicate documented capabilities or likely integration whose implementation relationship was not shown.
Main entry points: main.py Pipeline runner · App.js Web application · DashboardOverview.js Surveillance dashboard · pipeline.controller.ts Pipeline control
Components 26
Ingestion pipeline
- Bonsai source
- chewBBaca TSV
- Pipeline runner
scripts/main.py - Sample processing
scripts/process_samples.py - Similarity processing
scripts/process_similarity.py - Data upload
scripts/upload.py - Bonsai API client
scripts/api.py
Backend API
- Authentication
backend/src/auth/auth.service.ts - Allele profiles
backend/src/chewbbaca/chewbbaca.service.ts - Sample features
backend/src/features/features.controller.ts - Clustering
backend/src/clustering/clustering.service.ts - Genetic distance
backend/src/distance/distance.service.ts - Outbreak detection
backend/src/outbreaks/outbreaks.service.ts - Sample exclusions
backend/src/excluded-samples/excluded-samples.service.ts
Surveillance interface
- Web application
frontend/src/components/App.js - Map and filtering
frontend/src/components/Map.js - Surveillance dashboard
frontend/src/components/dashboard/DashboardOverview.js - Cluster trees
frontend/src/components/dashboard/TreePage.js - Distance matrix
frontend/src/components/dashboard/MatrixPage.js
Administration and operations
- Pipeline control
backend/src/pipeline/pipeline.controller.ts - Pipeline logs
backend/src/logs/logs.service.ts - Alert email
backend/src/mail/mail.controller.ts - User management
backend/src/users/users.controller.ts
Other components
- Operator
- Application database
- Automation service
Connections 26
- Bonsai source → Pipeline runner: provides profiles
README.md - chewBBaca TSV → Pipeline runner: imports profiles
README.md - Pipeline runner → Bonsai API client: uses
scripts/main.py - Pipeline runner → Sample processing: uses
scripts/main.py - Pipeline runner → Similarity processing: uses
scripts/main.py - Pipeline runner → Data upload: uses
scripts/main.py - Pipeline runner → Application database: reads and writes
- Operator → Web application: uses
README.md - Web application → Map and filtering: presents
- Web application → Surveillance dashboard: presents
- Web application → Cluster trees: presents
- Web application → Distance matrix: presents
- Surveillance dashboard → Sample features: monitors
- Surveillance dashboard → Outbreak detection: monitors
- Surveillance dashboard → Clustering: views
- Surveillance dashboard → Genetic distance: views
- Pipeline control → Automation service: triggers
backend/src/pipeline/pipeline.controller.ts - Pipeline control → Pipeline logs: records trigger
backend/src/pipeline/pipeline.controller.ts - Operator → Pipeline control: requests run
- Alert email → User management: finds recipients
backend/src/mail/mail.controller.ts - Alert email → Automation service: sends alerts
- Operator → User management: administers accounts
- Allele profiles → Application database: stores profiles
- Sample features → Application database: manages features
- Sample exclusions → Application database: stores exclusions
- Outbreak detection → Application database: reads surveillance data