← Back to chromly.app

The science behind Chromly

A guide to what you're seeing when you fly through your genome.

Most DNA tests give you a pie chart and a spreadsheet. Chromly gives you the shape. The 3D form of your chromosomes, the genes living on each one, the SNPs that make your copy of the human genome yours. This page is about what we actually render, where the data comes from, and where we draw the line between "real science" and "rendered for you to look at."

TL;DR

Your DNA file (from 23andMe, AncestryDNA, MyHeritage, FamilyTreeDNA, Living DNA, or any VCF) is read in your browser. We map your variants onto a 3D model of all 24 chromosomes built on GRCh38 coordinates. Chromosome folding respects published TAD boundaries; surface color comes from those same TADs. Gene write-ups are curated and ship with the app. Gene coordinates and chromosome structure are queried live from Ensembl and UCSC. Your DNA file is never uploaded.

In this guide

  1. What's in a raw DNA file
  2. GRCh38, the human genome reference
  3. Chromosome territories and TADs
  4. SNPs, rsIDs, and what they mean
  5. Where the gene annotations come from
  6. The privacy-first architecture
  7. What Chromly is, and what it isn't

1. What's in a raw DNA file

When you order a test from 23andMe or AncestryDNA, the lab runs a SNP genotyping array. That's a chip that reads roughly 600,000 to 700,000 specific positions in your genome. What you get back is a plain-text file, usually tab-separated, with one row per position. A single row looks like this:

rs4680   22   19951271   AG

Four things, left to right. The variant's reference ID (here rs4680). Which chromosome it sits on (22). Where on that chromosome (position 19,951,271). And your genotype: one A and one G, one letter from each parent. VCF files carry the same information in a richer, more standardized format.

Worth being honest about scale here. A SNP array is not whole-genome sequencing. It reads about 700,000 of your 3,000,000,000 base pairs. That's roughly 0.02% of you. The positions were chosen because they vary between people and have been studied; the rest is inferred to match the human reference.

2. GRCh38, the human genome reference

Chromly's 3D model is built on GRCh38, short for "Genome Reference Consortium human build 38." It's the current standard assembly, released in 2013 and patched continuously since. Every major genomic database (Ensembl, NCBI, UCSC, ClinVar) uses it as the shared coordinate system for where genes and variants sit.

So when a row in your file says "chromosome 22, position 19951271," Chromly looks up that exact GRCh38 coordinate and places a marker at the matching spot on the 3D chromosome. The relative chromosome sizes in the territory view (chr1 the largest, chr21 the smallest autosome) are real GRCh38 base-pair counts, not artistic license.

Some older 23andMe exports still use GRCh37 / hg19 coordinates. Chromly has a GRCh37 mode you can toggle. Important caveat: the conversion is an approximate proportional mapping by chromosome arm, not a precise base-pair liftover. Fine for exploring. Not fine if you're cross-referencing ClinVar records and need positions to match to the base pair. In that case, use the original build the file was produced in.

3. Chromosome territories and TADs

Inside a cell nucleus, chromosomes don't drift around like long strings. They occupy distinct, roughly bounded regions called chromosome territories. This was first shown with chromosome painting (FISH) and later refined with Hi-C, which measures how often any two pieces of DNA actually touch in 3D space.

Hi-C also revealed a sub-structure. Each chromosome is organized into topologically associating domains, or TADs. Think of them as neighborhoods of DNA that interact a lot with themselves and almost never across the boundary. TADs are how genes get reached (or not) by their distant regulatory elements.

Here's what Chromly is doing with that. The 3D shape of each chromosome is generated by a polymer-style random walk that is constrained by published TAD boundaries from population Hi-C studies (foundational work: Dixon et al., Nature 2012; Rao et al., Cell 2014). The walk is procedural. The boundaries it folds around are not. Surface coloring comes from those same TAD assignments. If you have a real .hic file (your own or one from 4D Nucleome), you can drop it into the app's Hi-C panel and see the contact matrix alongside the 3D view.

The part I want to be careful about

Your specific chromosomes, in your specific cells, right now? Not knowable from a SNP file. Single-cell Hi-C and imaging (Bintu et al., Science 2018) show that any one cell's domain boundaries wander away from the population average; the "stable TAD map" is a statistical summary, not a snapshot.

So what is Chromly's render? Real chromosome sizes from GRCh38. Folding that respects population-level TAD boundaries. Your SNPs placed in their correct GRCh38 positions. The walk between those constraints is one plausible configuration, not a measurement of your own geometry. That's the same hedge that every published 3D-genome reconstruction method (Chrom3D, PASTIS, ShRec3D) writes into its methods section. We want it on the box, not buried.

4. SNPs, rsIDs, and what they mean

A SNP, short for single nucleotide polymorphism, is just a spot in the genome where humans differ by one letter. At rs4680 on chromosome 22, some people have an A and some have a G. Both are normal. The rs prefix is a reference number from dbSNP, NCBI's catalog of known human variants.

Reality check on what's known. Of the roughly 700,000 SNPs in a typical 23andMe file, only a few hundred have been studied well enough to associate with a specific trait. Chromly surfaces the ones with real annotations and shows the rest as structural context. They are still real positions in your genome; the science just hasn't caught up to most of them yet.

You'll see variants like rs4680 in COMT and rs12913832 in HERC2 highlighted in the app. Those are widely studied for traits like enzyme activity and pigmentation, and they make a good first stop. The curated database covers thousands more genes than any one session puts in front of you.

5. Where the gene descriptions come from

When you click a gene in Chromly and read what it does, you are reading curated educational writing that ships with the app. It is not a live database scrape, and I think that distinction matters enough to explain how the database is built.

Every gene entry is anchored to its NCBI Gene summary, which is fetched once during authoring via NCBI's E-utilities. That's so the chromosome, the coordinates, and the basic biological identity of the gene match the reference databases. The authoring queue is then ordered by ClinVar variant count: genes with the most pathogenic and likely-pathogenic entries in ClinVar get written about first, because those are the genes people are most likely to be looking up.

There's also a quality gate. If a gene's biology can't be summarized without resorting to vague hand-waves like "involved in cellular processes," it doesn't make it into the database. We'd rather cover fewer genes well than every gene poorly. The finished text ships as a content-hashed bundle at /data/mutations/, so opening a gene card doesn't hit any backend.

A few things are queried live when you use the app, but only ever with the one identifier you clicked, never your file or your variant list:

Every gene card also links out to its NCBI Gene and Ensembl pages. Chromly is not trying to be your only source. It's trying to be the place you start, not the place you stop.

6. The privacy-first architecture

Chromly is a static web app. There is no backend that receives your DNA. Here's what actually happens when you drop your file in.

The browser's File API reads the file off your disk straight into memory. It does not cross a network. JavaScript running in your browser then parses it, builds the 3D scene with WebGL 2.0, and draws it on your GPU.

If you choose to save your loaded genome inside Chromly, it goes to the browser's Origin Private File System (OPFS). That's a sandbox visible only to chromly.app on your own device, invisible to other sites and not on any cloud. Set an optional PIN and your saved profile is encrypted with a key derived from it before it hits OPFS.

The only piece of Chromly that talks to a server is the license-key check during first activation. That check sees an email address and a license key. It never sees your DNA, your variants, or anything derived from them.

7. What Chromly is, and what it isn't

Chromly is a personal exploration tool. It's for seeing the actual shape of your chromosomes, learning what your SNPs are up to, and building real intuition for the molecule you're made of. It's for curiosity and for genuinely looking at your own biology.

It is not a clinical diagnostic. We don't predict disease risk, we don't prescribe treatment, and we don't give medical advice. Some of the variants Chromly highlights show up in clinical literature, and we link straight to that literature so you can read it. But the question of "what does this mean for me, specifically" is a conversation for a physician or a genetic counselor. It is not for an app to answer, no matter how nicely the app is rendered.

If you want a clinical-grade interpretation, the National Society of Genetic Counselors can connect you with someone credentialed. Chromly is meant to sit alongside that path, not replace it.

Ready to see your own genome?

Drop your raw DNA file in and start exploring. Your data never leaves your browser.

Get Chromly — $29

Who built Chromly, and why one-person scope reinforces the privacy story →

← Back to chromly.app