Pathyaപഥ്യം
Live on AWS Mumbai · 177/177 gene calls read on held-out reports

India's gene data
is stuck in WhatsApp
photos.

Pharmacogenomic results in India arrive as PDFs and phone photos, and stay there. Pathya reads each one with Muse Spark, quotes every call, standardises it with PharmCAT, removes identifiers, and adds it to a cohort researchers can count.

Open the research cohort

This synthetic Indian-panel report, photographed skewed and noisy like a WhatsApp forward, is what the button reads. About 30 seconds, or open a finished record. Research tool, not medical advice.

Pipeline
  1. 1
    Report in
    PDF, WhatsApp photo, voice or VCF
    Input
  2. 2
    Read every call
    verbatim quotes, strict schema
    Muse Spark
  3. 3
    Standardise
    PharmVar alleles, CPIC phenotype terms
    PharmCAT
  4. 4
    Quality checks
    India panel coverage, identifier removed
    Rules
  5. 5
    Research record
    JSON · TSV · CSV, joins the cohort
    Output
  6. 6
    Curator verifies
    each call against the source
    Human
Scroll for the story

01 · The gap

The test was done.
Nobody counted it.

Pharmacogenomic tests are already being run in India. The results are correct, and almost none of them reach a dataset.

  1. A lab in Kochi

    A DPYD result is issued

    Panel genotyping, printed as a PDF: DPYD c.1236G>A heterozygous (HapB3). A photo of it goes to the hospital on WhatsApp.

  2. Then

    It stays in a phone

    The result lives in a chat thread and a paper file. No registry ever sees it, so it never counts towards what India knows about its own variants.

  3. The result

    India's evidence stays thin

    Indian DPYD frequency data rests on two studies of about 2,000 and 1,612 people. There is no ICMR guideline on DPYD testing, and the variant most Indians carry, c.85T>C, is still an open question.

  4. With Pathya, under a minute

    Every report becomes a counted record

    The photo is read and each call quoted from the page, standardised to PharmVar names, stripped of identifiers, checked for panel gaps, and added to a cohort with confidence intervals. A curator verifies it against the source.

  5. Illustrative, built from the synthetic demo report. Figures: PMID 33105068, PMID 40810747, PMC11300675.

Why the data matters

48%

of fluoropyrimidine deaths are in DPYD variant carriers, who are about 4% of patients

Sharma 2021

~25%

of Indians carry DPYD c.85T>C. CPIC calls it normal; South Indian cohorts report a toxicity signal

PMC11300675

3612

people in the two studies India's DPYD frequency data rests on

PMID 33105068 · PMID 40810747

0

Indian national guidelines on DPYD testing

ICMR / NCG, none found

02 · The population

India carries a different risk.

CPIC's DPYD tables were built on European data. In Indians the decreased-function variants are different, and the most common variant has an effect nobody has settled. Change the view.

Who carries what
Show
  • 33HapB3 carriers, the most common Indian decreased-function variant
  • ~2*2A carriers, the classic European variant, rare here
  • ~21rarer decreased-function variants only sequencing finds
  • ~250c.85T>C (*9A). CPIC: normal function. South Indian cohorts report a toxicity signal: an open research question
~5.6%
carry a decreased-function DPYD variant
And about one in four carry c.85T>C, a variant whose effect CPIC and South Indian cohorts disagree on.

Per 1,000, rounded from PMID 40810747 (WES, n=1,612) and PMID 33105068 (n=2,000). Groups can overlap in real patients.

03 · The system

The model reads.
The record is verifiable.

Muse Spark reads the page and quotes each call; Muse Voice takes results read aloud in Malayalam or English. PharmCAT standardises the names, rules check panel coverage and remove identifiers, and every step is logged. Nothing in the record is advice.

VERIFIABLE COREPharmCAT 3.4PharmVar allele names, CPIC phenotype termsQuality rulesIndia panel coverage, identifier removedAudit logevery step, append-onlyLab reportPDF, photo, voiceMuse Sparkreads, quotesRecordJSON · TSV · CSVCohortgroup statisticsa curator verifies each callIN: gene calls + verbatim quotesOUT: de-identified record, no advice

04 · The proof

Tested on reports
it had never seen.

Thirty-six synthetic Indian lab reports, as clean PDFs, phone photos and the kind of skewed, shadowed photo that arrives over WhatsApp. Every gene call scored against the truth.

Reading the lab report

177 gene calls · 36 reports · exact diplotype

Clean PDF

Muse Spark 1.3100%
Spark Open100%
OCR + rules98%

Phone photo

Muse Spark 1.3100%
Spark Open100%
OCR + rules44%

Harsh photo: skewed, shadowed, compressed

Muse Spark 1.3100%
Spark Open100%
OCR + rules0%

Open weights, same answers

Muse Spark Open, run on Baseten, matched hosted Muse Spark call for call. A lab or biobank can run the reader on its own servers, so genomic data never leaves the building.

177/177

gene calls on held-out reports, open-weights model

Open dataset. IndiPGx-Read v0.1: 72 synthetic Indian lab reports with ground truth (4 layouts × 3 renders × 2 sets) and the scoring harness, in the public repository.

Held out. New genotypes and new photos, generated with a seed the pipeline was never tuned on, in four layouts Indian labs use: star table, rsID table, narrative, variant checklist. The OCR baseline was written knowing every layout, so this is its best case. Real lab formats will be harder; de-identified reports from a partner lab are the next test.

Found along the way: two real bugs on the development set, fixed before the held-out run.

05 · The cohort

One report is a result.
A thousand are evidence.

Every record joins a cohort: carrier frequency per India-relevant variant, with a confidence interval, and a count of the panels that never tested it.

Demo cohort, live

loading… · synthetic reports

Counted honestly. A report whose panel never named a variant is left out of that variant's denominator, not counted as a non-carrier. Intervals are Wilson 95%.

Ready for a study. One CSV, one row per record, PharmVar names. No patient identifiers, no advice.

Open the cohort

06 · Your turn

Build a record. Watch it read.

Upload a report or a photo, read the results aloud, or pick a sample. Every step streams from the server as it finishes.

Use synthetic or de-identified reports only. Content sent to the Meta API may be used to improve Meta models.

Try a sample