Welcome to ClientVPS Mirrors

Introduction

Introduction

What is Syrona?

Syrona compares health datasets built on the OMOP Common Data Model. Given two OMOP CDM databases (or two cohorts within the same database), it:

  1. Extracts stratified prevalence tables across three clinical domains (conditions, procedures, drugs)
  2. Compares paired datasets by computing log2 prevalence ratios per stratum
  3. Synthesizes (pools) results via multi-level random-effects meta-analysis

The output is a set of CSV tables that can be explored in the Syrona dashboard or consumed by downstream tools.

How it differs from other OHDSI tools

Tool Purpose
ACHILLES Profile a single database (aggregate statistics)
CohortDiagnostics Validate cohort definitions (incidence, attrition)
CohortContrast Feature selection: target vs control within one database
Syrona Compare 2 datasets (cohorts, sites) by prevalences of the 3 domains (diagnoses, procedures, drugs)

Syrona is designed for multi-site comparisons where you want to understand how prevalence patterns differ between institutions, countries, or data sources.

Installation

# From GitHub:
# install.packages("remotes")
remotes::install_github("HealthInformaticsUT/syrona")

Dependencies

Quick start

1. Connect to a database

library(syrona)

# PostgreSQL (the typical production CDM; e.g. via SSH tunnel).
# Omit `password` and set PGPASSWORD in ~/.Renviron, or use ~/.pgpass.
db <- syrona_connect_pg(
  dbname = "omop",
  user = "analyst",
  cdm_schema = "cdm",
  write_schema = "results_analyst"
)

# Or a local DuckDB file (read-only by default)
db <- syrona_connect("path/to/omop.duckdb")

2. Extract a dataset

# Extract all three domains
tables <- extract_all("Dataset_A", db = db)

# Or a single domain (faster for large databases)
tables <- extract_all("Dataset_A", db = db, domains = "conditions")

3. Compare two datasets

# After extracting both datasets:
compare_all("Dataset_A", "Dataset_B")

4. Disconnect

syrona_disconnect(db)

Output structure

Syrona writes CSV files to two directories:

data/
  sources/                        # Phase 1: extracted datasets
    Dataset_A/
      _metadata.csv
      condition_prevalence.csv    # concept x year x sex x age_group
      condition_info.csv          # concept metadata
      condition_chapters.csv      # SNOMED/ICD-10 chapter assignments
      condition_attributes.csv    # SNOMED relationship targets
      demographics.csv            # birth year x sex counts
      death_counts.csv            # deaths by stratum
      ...                         # same pattern for procedures + drugs
    Dataset_B/
      ...
  comparisons/                    # Phase 2-3: comparison results
    Dataset_A_vs_Dataset_B/
      _metadata.csv
      condition_yearly.csv        # per-stratum prevalence ratios
      condition_meta_agegroups.csv # meta across years
      condition_meta_by_sex.csv   # meta across age groups
      condition_meta_summary.csv  # final summary (one row per concept)
      ...                         # same pattern for procedures + drugs

Next steps

Need a high-speed mirror for your open-source project?
Contact our mirror admin team at info@clientvps.com.

This archive is provided as a free public service to the community.
Proudly supported by infrastructure from VPSPulse , RxServers , BuyNumber , UnitVPS , OffshoreName and secure payment technology by ArionPay.