23andMe by Me
How to keep your genome your own.
We’ve been focused a lot on the unique things you can build with open-source AI. But this week, what if we focus on something that we may only want to do when we’re in full control of the AI? Let’s work with the most unique — and private — data you own: your genome.
If you were mad when X changed its terms so it could train on your posts and DMs, then get this: 23andMe went bankrupt last year. In the proceedings, its DNA database was what it had always been on the balance sheet: an asset. Something to be valued, transferred, sold. Fifteen million users learned that “your data” — a.k.a. the most personal file ever created about them — was on the selling block.
A genome is a private key with no revocation path. But you don’t hold it alone: Half of it is your mother’s, and half of it goes to your kids. So when 23andMe’s database moves, it won’t be 15 million customers moving with it. It’s also their parents, their siblings, their children — generations that never clicked “I agree,” and who definitely didn’t agree to participate in this sale.
I’ve always wanted to get my genome sequenced, just out of nerdy curiosity. But I absolutely didn’t want to trust one of these cloud providers. So a few months ago, I went looking for a way to get sequenced without giving away my genome. After many emails, I found a lab that promised to delete my data after delivering it. A promise is not architecture, I know, but it was the best on offer. And when their portal offered cloud interpretation (as in, analyze the results)…the answer was no! Don’t read it, just deliver me the raw data.
I had a theory I wanted to test. Maybe I could start playing with locally run LLMs to see if they could analyze the genomic data for me. This way I’m not uploading my private data to a cloud provider. If local AI is worth anything, it’s worth it here. So read on, and I’ll tell you how I took the data — and interpretation — into my own hands, and how you can, too. (And how, in the end, the LLM wasn’t the most useful thing.)
Full disclosure: I’m not a genomics expert, and a lot of this was learned by bumbling around, reading the web, asking chatbots/AIs, and emailing actual experts. So take the following with a grain of salt, but I definitely had fun.
The Bill of Materials
Fascinatingly, what the company delivered was a VCF: a text file listing the 5,291,552 places where my DNA differs from the reference human genome. They literally called the reference a “build” — GRCh37, GRCh38 — with differences between builds called “liftover.” It reminds me of how software people talk.
I am a fork of the human reference build. You can be, too.
Here’s everything I needed to start doing some form analysis, from a computer to some tools to run on it — and some LLMs to start tinkering with:
The machine
Intel i9, 16 cores, 62GB RAM;
RTX 3070 (a gaming GPU)
The data — the world’s (free to download, ~145 GB)
The reference genome builds — the “standard human” everything gets compared against.
ClinVar — a public registry of DNA variants known to cause problems, with notes on how confident to be about each claim. (Security folks: it’s literally a CVE database — the industry’s shared list of known bugs — except for humans.)
gnomAD — a census of how common each variant is across humanity. Common usually means harmless; rare is where disease hides.
The 1000 Genomes panel — 2,504 public, anonymous genomes to compare against, for the privacy math later.
The tools/software that I downloaded
DeepVariant — a “variant caller”: the program that pieces the shredded snippets back together against the reference and decides where you truly differ. My lab already ran one to produce my VCF; this one is Google’s, sharing no code with theirs — my second opinion.
VEP — the annotator: takes each of my five million diffs and stamps it with what the world knows — which gene it sits in, what it changes, whether anyone has ever linked it to disease.
Cyrius — a specialist for one drug-metabolism gene that general-purpose tools famously misread, because it sits next to a nearly identical decoy copy of itself.
ExpansionHunter — measures the places where DNA can stutter: a short phrase repeated too many times, which past a threshold causes serious disease.
Manta — scans for big structural damage: whole chunks of chromosomes missing, duplicated, or flipped.
bcftools — the Swiss Army knife for VCF files: search, slice, count. (Engineers: the grep of genomics.)
The models
Llama 3.1 8B and Qwen 8B, running locally on the gaming GPU via Ollama.
One footnote: Three of the above tools describe themselves as open source. Their licenses say otherwise. Read carefully.
Nobody Has 261 Rare Diseases
It is very notable how quickly you can go from I am extraordinarily unlucky to my code is lying (and, honestly, how badly you want the latter to be true). I found that out when a missing database row nearly gave me 261 rare diseases.
The pipeline is unglamorous: quality-check the variants, then use VEP to annotate each one against ClinVar and gnomAD. When the first annotated report came back, 261 of 340 variants were flagged as ultra-rare disease candidates. Nobody has 261 rare diseases. Something in my pipeline was wrong.
When I started to dig in, there were false positives all over. When my code looked up a variant that gnomAD had never recorded, it got nothing back — and we translated nothing to false. Missing became zero, and zero read as rarest thing imaginable.
Great, I caught one bug in an afternoon. But I also noticed a bug in their data.
The Vendor Shipped With CI Off
Every record in a VCF carries a FILTER field — the pipeline’s own verdict on whether to trust the call. Mine arrived reading “.” on all 5,291,552 rows. Not pass. Not fail. Dot. I’m not sure my DNA company ever ran quality control.
So I did differential testing — basically akin to sending your blood to two unrelated labs and see what the differences are when it comes back. I took their raw data and ran it through DeepVariant, an independent caller: different codebase, different thresholds, different authors. I was looking for the clinical second opinion, to see where they may agree and where they may disagree.
Glad I did, because three of the six disease-causing findings — the ones that would headline a clinical report — were rejected outright by the second opinion. But all the drug-response calls held. However relieved I felt, it made me wonder about all the other findings that are being shipped around…
An owner can run this check. A renter gets a PDF.
If a sequencing vendor has ever handed you a VCF, check your FILTER column right now:
bcftools view -H your.vcf.gz | cut -f7 | sort | uniq -c
In my case, I had one vendor and one sample; whether this was a bad batch or standard practice is an open (and disturbing) question.
Comprehension or Transcription?
As an experiment, I built a quiz for my two local models: 60 variants from my own genome, half known-dangerous, half known-harmless. Is this variant dangerous?
Run cold — nothing but the variant itself — the models got it right 42% of the time. That’s less than a coin flip.
For months, I’ve been writing in this newsletter that the model alone was never the bet: Models plus harness is where the action is. So I built the harness around it: For each variant, retrieve the relevant ClinVar rows and put them in the prompt so the model reasons over the actual evidence. Score: 98%.
Now…that seemed way too high. So I did the thing you can only do when you own the eval: Break it on purpose.
Buried in those ClinVar rows sits one column that contains the conclusion: the field that just says pathogenic or benign. The rest is evidence: what the variant does, where it lands, how the protein changes. So I re-ran the quiz and deleted the answer key.
It cratered. Six of 60.
Then the control that made it hurt: nine lines of dumb if-then rules — no AI, frozen before the test — run on the same quiz. The rules caught 45. The model, with all the evidence in front of it, lost badly to an if statement. So the 98% wasn’t comprehension. It was transcription — the model reading the answer column back to me in complete sentences.
The harness didn’t assist the model. It replaced it.
If you take one thing into your next AI-for-X pitch meeting, it’s these four words: Show me the ablation.
What It Actually Found
After all the ghosts…the payoff. But first, the price list.
Your DNA is a cookie you can’t clear. It only takes a couple dozen common variants to make a genome unique among eight billion humans. A single routine prompt in this project carried 12 — enough, when measured against a real reference panel, to narrow the world to roughly 600,000 people.
One prompt. But nobody sends one prompt. You ask a cloud assistant about your BRCA genes (the breast-cancer-risk ones), then about cholesterol, then about why codeine does nothing for you, and the disclosures compose. Every question is a partial key leak, and the leaks join, because the join key is you.
Now, for this newsletter, every genetic fact I publish shrinks the crowd I can hide in. So, if you don’t mind, I’m only sharing one card from my hand.
There’s a gene called CYP2D6 that encodes a liver enzyme whose job is to metabolize and clear a surprising share of everyday medications: painkillers, antidepressants, and heart drugs are all on the list. It’s the gene that decides, among other things, whether codeine does anything for you. One more thing about this gene: The cheap, mail-in DNA kits are famously bad at reading it. Getting it right takes the full 72GB output of a sequencer, on your own disk. This meant that the most useful fact in my genome was invisible at the consumer tier: Turns out both of my copies of the gene are the slow kind, which means some standard doses are tuned for a body that isn’t mine.
I also went looking for bad news (carefully), and mostly didn’t find it. I screened, with ExpansionHunter, the three dozen places where DNA can stutter, repeating a short phrase over and over until, past a threshold, it causes disease. All of mine were in the normal range; one sat close enough to the line that a proper clinical lab is re-measuring it, because knowing your instrument’s limits is part of owning it. I also had Manta check whether any big chunks of my chromosomes were missing or scrambled and learned: nothing that matters.
One genome, one person, and none of this is a diagnosis. But it’s mine, on my disk, interrogated to my satisfaction.
The Owner’s Veto
The uncomfortable conclusion from all that counting: Unlinkability is not something a provider can grant, however sincere the privacy policy. The unit of disclosure is the session, and no single prompt ever looks alarming on its own.
That’s why nothing derived from my genome goes to a hosted model, ever. Now I really know how much could be disclosed safely, and I still choose not to do it.
Only an owner gets to make that call. A renter is never asked.
So what do I have to show for it? Questions I carried for years are closed. I know whether the thing that runs in my family is running in me. I know what I would pass on. I know how findable I am. And you know about the codeine.
I’m not going to tell you the rest. A renter’s results live in a portal, formatted for forwarding. Mine don’t have to exist anywhere but on the machine I’m typing this on.
Your Turn
You’ve always wondered why codeine does nothing for you. Whether cilantro really tastes like soap or you’re just being dramatic. Why one beer turns your face red. How findable you are.
I just answered all of those questions for myself. Here’s how you can get answers to yours.
Tonight, take possession. If you’ve ever been genotyped or sequenced — 23andMe, Ancestry, a hospital panel — your raw data is sitting in a portal. Go get it.
On 23andMe: your name (top right) → Settings → scroll to 23andMe Data → View → Download Raw Data. You’ll confirm your date of birth, submit a request, and get an email when the file is ready. (Yes, it still works post-bankruptcy.) On Ancestry: DNA tab → Your DNA Results Summary → Settings → Download DNA Data, then click the confirmation link they email you — it expires in about a week, so finish what you start. Anywhere else, hunt for “download raw data” in the DNA or privacy settings; almost every consumer service has one, buried on purpose or not.
No download button? Then demand it. In the US, a clinical lab is legally obliged to hand over your data under HIPAA’s right of access — not just the PDF, the data. In the UK and EU, the same move is a subject access request. They may say the raw files weren’t retained. Fine — now you know that, too, and knowing what your lab keeps is also ownership.
When the file lands, move it out of your Downloads folder and back it up. You now hold the only copy that answers to you.
If you need a reason for the urgency: In 2023, attackers logged into a few thousand 23andMe accounts with recycled passwords and walked away with profile data on nearly seven million people. Step zero of ownership is possession.
This weekend, ask the dumb questions. The fun stuff is trivially local — single-variant lookups you can grep out of a raw file. Cilantro = soap is one variant near OR6A2. Wet-vs.-dry earwax is ABCC11, and the same variant predicts whether you need deodorant (!). The alcohol flush is ALDH2. Fast-or-slow caffeine metabolism is CYP1A2.
When the itch gets real. Whole-genome sequencing now costs a few hundred dollars, and with raw reads on your own disk, the serious questions open up: how you metabolize a quarter of common medications, what you’d pass on to your kids, whether the scary line you read in a consumer report survives a second, independent opinion. The rig is a gaming PC. The software is free. The standing rule is the same as mine: It’s n of 1, and anything actionable gets confirmed by a real lab before you act on it.
The One-Way Door
Some queries you don’t casually run. APOE, the Alzheimer’s-risk gene, is the famous one: a genuine do you want to know? The final argument for local is that nobody else even sees which questions you asked. Or chose not to.
Coming full circle: This whole thing started as an AI experiment. My theory was that local LLMs could interpret my genome so no cloud provider ever had to see it. But honestly, I didn’t know much about genomics when I started this.
In the end, the LLMs were the least important component. Every trustworthy answer actually came from boring, deterministic software and public databases.
I came for the AI. I stayed for the ownership.



