02 / Genetic evidence

Context

What can selected variants in a consumer genetic file tell someone about medication response—and what does that file leave unanswered?

Educational prototype · JavaScript / Python
Context prototype interface
Recorded prototype. Synthetic example. DPYD evidence trace: reported call, interpretation and dated source. The full reader covers eight selected markers across three genes. Inspect full desktop capture ↗

Working result

A local genetic-file reader with conditional findings, explicit coverage and replayable reports.

Review status

Synthetic inputs tested. Independent interpretation review remains open.

One consequential decision

Keep missing evidence visible

  1. Local genetic file
  2. Checked marker calls
  3. Conditional evidence report

Missing markers remain missing. A partial consumer file cannot justify filling the gaps with a normal-metabolism result.

The question

What can selected variants in a consumer genetic file tell someone about medication response—and what does that file leave unanswered?

What I built

A browser-local reader for supported 23andMe text exports. It checks eight selected markers across CYP2C19, SLCO1B1 and DPYD, then automatically explains the medication implications supported by the reported calls. Each finding shows its genetic basis, source and missing coverage. A synthetic example lets someone try the full flow without supplying personal data.

How it works

A cancellable Web Worker reads GRCh37 positive-strand files. Marker identity, chromosome and position must agree. Conflicting calls reject the import; missing, uncalled and unsupported variants stay distinct. Unrelated genetic records are discarded, and the file is not uploaded.

Deterministic rules connect selected calls to conditional clopidogrel, proton pump inhibitor, simvastatin and selected DPYD-related implications. The report never fills gaps with a normal-metabolism result. It does not assign a complete diplotype, clinical phenotype or dose.

Captured NCBI and CPIC sources accompany versioned rules. DPYD genomic calls and coding-strand labels are kept separate. The DPYD summary uses captured 2017 directional evidence and links a manually curated July 2026 update notice; a full replacement guideline was not verified. No activity values or dosing rules are applied. A downloaded report retains the selected calls and evidence fingerprints; an offline command recomputes its findings and rejects altered output. This checks consistency, not the authenticity of the original assay or clinical validity.

The report leads with implications, separates coverage by gene and places raw calls and source details beneath expandable sections. The earlier document-comparison library remains available as a reference.

Result

The private prototype completes file import, automatic interpretation and report download. Its current source has 109 recorded passing tests. Browser checks cover three genes, missing data, invalid coordinates, report replay and narrow layouts. These are engineering checks using synthetic inputs; independent clinical and usability review remain open.

Eight selected markers are limited coverage. Consumer-array data cannot establish a complete pharmacogenomic assessment, and the captured guidance is dated rather than continuously updated.

Repository

Public repository pending. The local source package runs with python3 verify.py and requires Python 3.9+ and Node 22+. Captured evidence can be replayed without live source requests.

What I'd do next

Evaluate whether readers understand the findings and coverage gaps. Add further genes or file formats only with explicit interpretation rules and failure tests.

Next project ↗Fieldnotes