Skip to main content

Genomic Epidemiology platform for disease X

Project description

gen-epix-api-logo

Genomic Epidemiology platform for disease X

tests sonarqube coverage


Source Code: https://github.com/RIVM-bioinformatics/gen-epix-api


Gen-EpiX: Genomic Epidemiology platform for disease X (beta version)

Gen-EpiX is platform for visualizing and analyzing genomic epidemiology data. It has fine-grained access controls for collaboration between multiple organizations.

Key Features

  • Visualisation: Visualize cases by time, place, person and also by genome through a phylogenetic tree coupled to the cases.
  • Fine-grained access: Give different organizations different access rights per disease, down to individual variables. Organizations can manage access of their own users by themselves.
  • Search: Search and filter cases, including on genetic similarity.
  • Signal detection: Detect, define and share sets of cases, signals and outbreaks.
  • Disease X: Any disease and corresponding analysis variables can be added.
  • Data: Adheres to the Medallion data architecture design pattern. The silver layer consists of normalized and standardized patient or subject data compliant with OMOP Common Data Model, and a dedicated database for genetic sequence data and computation of phylogenetic trees. The gold layer consists of case data ready for analysis in the form of a single row of data per case.
  • Tech: OpenAPI compliant API, deployable on cloud or on-premise, support for multiple authentication providers. Python/FastAPI backend and default TypeScript/React frontend available from gen-epix-web.

Deliberately not in scope

  • Disease-specific knowledge: Every organization has their own variables that are important for analysis, as well as their own bioinformatics to process genetic sequence data. We therefore avoided any disease-specific code both for the generation of these data and for the analysis variables that can be defined. Only the results are stored.
  • Collaboration-specific knowledge: Every collaboration or country (e.g. for public health surveillance of diseases) has their own specifics in terms of access rights and any relevant geographic regions. We therefore avoided any country-specific code, both for the type of organizations that have access, and for any geographic data.

Installation

Below is a streamlined installation guide for various platforms:

  1. Install ODBC development headers:

    sudo apt-get update
    sudo apt-get install -y unixodbc-dev
    
  2. Create and activate a conda environment:

    conda create --name gen-epix python=3.12
    conda activate gen-epix
    
  3. Install dependencies*:

    pip install -r requirements.txt
    pip install --no-binary :all: pyodbc==5.2.*
    

    *Some hardware architectures (especially Apple M1/M2/M3 chips) require pyodbc to be compiled from source for compatibility


  1. For development, add testing tools:
    pip install -r dev-requirements.txt
    

SSL Certificate Setup

  1. Install mkcert:

    # Linux
    sudo apt install mkcert
    
    # macOS
    brew install mkcert
    
  2. Generate certificates:

    mkcert -install
    mkcert -key-file key.pem -cert-file cert.pem localhost 127.0.0.1
    
  3. Copy the generated files:

    cp key.pem cert.pem /path/to/project/cert/
    
  4. For WSL users: Run the commands in Windows PowerShell and copy files to both the project cert directory and your WSL home directory.


Usage

Starting the API

  1. Activate the conda environment:
conda activate gen-epix
  1. Run the application:
python run.py [service] [app_type] [env_name] [idp_config]
  • service: The service to run (api, etl)
  • app_type: Specific configuration for an app type (casedb, seqdb, omopbd)
  • env_name: Name of the environment.
  • idp_config: Which authentication setting to use (idps, mock_idps, no_auth, debug, no_ssl)

Example

conda activate gen-epix
python run.py api casedb local idps
example-docs

Dependencies

Gen-EpiX relies on several Python packages to provide its functionality:

Core Dependencies

  • fastapi - Modern, high-performance web framework
  • sqlalchemy - SQL toolkit and Object-Relational Mapping (ORM) library
  • pydantic - Data validation and settings management
  • biopython - Tools for computational molecular biology

Database Connectors

  • pyodbc - ODBC database adapter

API Server

Development Tools

  • pytest - Testing framework
  • black - Code formatter
  • pylint - Static code analyzer
  • mypy - Static type checker

For a complete list of dependencies, refer to:

Python Version Gen-EpiX requires Python 3.12 or higher.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gen_epix-0.1.6.tar.gz (248.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gen_epix-0.1.6-py3-none-any.whl (354.5 kB view details)

Uploaded Python 3

File details

Details for the file gen_epix-0.1.6.tar.gz.

File metadata

  • Download URL: gen_epix-0.1.6.tar.gz
  • Upload date:
  • Size: 248.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for gen_epix-0.1.6.tar.gz
Algorithm Hash digest
SHA256 60f02ab78d950fbe8953a6fcd9d49b96e96f1f29adae4dcf82e4bc0d6f34e3f4
MD5 c84929deea796d28796c6abc92d6f673
BLAKE2b-256 beb855827fddbf14e4c29243476b5129facf1d23ef233d3a0b359a667061042d

See more details on using hashes here.

Provenance

The following attestation bundles were made for gen_epix-0.1.6.tar.gz:

Publisher: release.yaml on RIVM-bioinformatics/gen-epix-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gen_epix-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: gen_epix-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 354.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for gen_epix-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d7f76f0e7c4b8854bb7dbadb321db281fd36636a0c0640fba580c2f3d4cb9d7a
MD5 e4fc78df818dceaeeffab0c85b2e6d56
BLAKE2b-256 c4b3d74c465f14a23f9d0f5280692df3c0fe6496715a0fb2476334fdfd53c066

See more details on using hashes here.

Provenance

The following attestation bundles were made for gen_epix-0.1.6-py3-none-any.whl:

Publisher: release.yaml on RIVM-bioinformatics/gen-epix-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page