High-level
The system is a docker compose stack centered on a core FastAPI app with supporting bioinformatics and visualization services. Key components:
FastAPI app (
app): Web UI and API, orchestrates PGx operations.PostgreSQL (
db): Main database.PharmCAT (
pharmcat): API wrapper around PharmCAT JAR for phenotype/report generation.GATK API (
gatk-api): Wrapper around GATK tooling.PyPGx (
pypgx): Service exposing PyPGx-based calling for supported genes.HAPI FHIR (
fhir-server): External FHIR server for EHR integration.Nextflow runner (
nextflow): Orchestrates pipelines; mounts the project workspace.Kroki + Mermaid (
kroki,mermaid): Renders diagrams (Mermaid, Graphviz, etc.).Genome downloader (
genome-downloader): Retrieves reference genomes.
Ports (host → container):
App UI/API:
${BIND_ADDRESS:-8765} → 8000DB:
5444 → 5432PharmCAT:
5001 → 5000GATK API:
5002 → 5000PyPGx:
5053 → 5000FHIR:
8090 → 8080Kroki:
8001 → 8000Nextflow runner:
5055 → 5055Docs (this service):
5070 → 8000
Data mounts
Shared host directories used across services:
./datafor uploads, reports, and inter-service artifacts./referencefor reference genomes
Workflows
See app/visualizations/workflow.md and app/visualizations/workflow.mmd for diagrams and detailed flows. The app also integrates with Kroki to render diagrams in the UI.
Further Reading
For detailed technical architecture, design principles, and implementation details, see the System Architecture documentation.