Calculation of multiple risk profiles
for
23andMe reports, using the PGS Catalog.
Visualize PRS calculation results by matched allele counts.
Slices are sized by the sum of the absolute effect weights (Σ|w|) of the variants in each group, not by the number of variants, so positive and negative weights cannot cancel each other out. The matched slice therefore equals the Absolute weight coverage metric above. Hover a slice for its signed total. Effect weights may be reported as beta, log(OR), or NR (not reported) depending on the score, so they are referred to here as effect weights rather than betas.
Clustering groups similar users and risk models together so you can spot patterns in your PRS results at a glance.
Group users and risk models by the similarity of their PRS results — an interactive users × models heatmap with dendrograms.
Interpret your PRS and clustering results using a cloud API (your own key) or a fully local model that runs entirely in your browser — no data leaves your device.
Interpret clustering and PRS results using your own OpenAI or Claude API key. Only summarized results are sent — no raw genotype data.
After loading weight and genomic files above, click to calculate PRS.
Upload your own raw 23andMe export file(s) directly from your device. Up to 5 files accepted.
Files are processed locally in your browser and are never uploaded to a server.
Browse and select up to 10 publicly available 23andMe files from the Personal Genome Project for demo or research workflows.
Load a set of pre-bundled example participants to quickly explore PRS calculations without uploading any files.
No file upload required — useful for testing and demonstrations.
Enter up to 10 PGP participant IDs. Download URLs are looked up from the curated participants list.
huA08F4D, huC8B936
Browse and select up to 10 publicly available models from the PGS Catalog for demo or research workflows.
Load a bundled set of example risk models to try the workflow without browsing the catalog.
Enter specific PGS IDs to add them directly, bypassing the trait/category browser.
A privacy-preserving polygenic risk score (PRS) calculator that runs entirely in your browser.
Created for research purposes, it demonstrates how the
PGS Catalog can be privately applied to direct-to-consumer genetic testing
data (such as 23andMe). No software download, installation, or configuration is needed. The
calculator matches individual PGS Catalog entries against a personal genome of roughly
600K – 1.4M single-nucleotide polymorphisms (SNPs), using
the reported effect_weight of each matched variant to compute a weighted score. It has
been tested on a range of devices — including smartphones — confirming the
feasibility of computing personal risk scores locally from a full 23andMe SNP file
(compressed or not).
Upload your own 23andMe file or browse public Personal Genome Project (PGP) participants. Files are parsed into SNP tables directly in the browser.
Search the PGS Catalog by trait or category and select up to 10 scoring models to evaluate against the loaded genomes.
Each model's variants are matched to your genotype by chromosome, position, and allele, then weighted by their effect coefficients to produce a polygenic risk score.
Compare scores across individuals with interactive plots and clustering, revealing patterns across traits and participants.
The calculator is assembled from small, independently published JavaScript SDKs. Each is imported directly in the browser and handles one part of the pipeline.
Fetches and parses Personal Genome Project participant metadata, profiles, and 23andMe genome files, turning raw SNP text into structured genotype tables.
View SDKQueries the PGS Catalog for scoring models — by trait or category — and downloads the harmonized scoring files (variants, alleles, and effect weights) used for matching.
View SDKProvides the clustering and dimensionality-reduction routines that group individuals and traits by their computed risk scores for visual comparison.
View SDKAn in-browser routine that aligns each PGS entry with your genotype by chromosome, position, and effect/other allele, then sums the effect weights to produce the polygenic risk score and quality-control flags.
Runs locally — no serverWhen you fetch models and participant genomes in the PRS tab, they are parsed and held in two places — and nothing ever leaves your device.
Selected genomes and scoring files are loaded into JavaScript arrays and stay resident while the page is open. The PRS math runs directly on these in-memory arrays — no round-trips. Reloading the page clears them.
Parsed genomes, scoring files, and computed scores are cached in the browser's IndexedDB storage, so they survive reloads and avoid re-fetching. Clear it anytime with the cache buttons.
A single genome holds 600K–1.4M SNPs, so memory scales mainly with the number of selected participants. A cap of 10 models and 10 participants keeps usage in check.
All data and calculations take place in the browser. No data or results are ever sent to a server. This application is, foremost, an exercise in privacy-preserving biomedical informatics for consumer genomics data.
effect_weight, on the scale of the original model. They are
not exponentiated, not normalized against a population reference, and give
no estimate of absolute disease risk.weight_type (beta, log(OR), OR, or NR)
is passed through as model metadata and shown in the model and score tables.
It is never inferred from the magnitude or sign of the weights.