Will Hubbard

Analyzing my genome with AI

I paid Genome Computer $499 to sequence my whole genome at 30x. I sent in a saliva sample, and about three weeks later I had roughly 100 GB of data to download.

To analyze it, I used ChatGPT Work and Claude Cowork, which can both work with files on your computer. That mattered at this size. Uploading 100 GB into a chat wasn’t going to happen. With access to the files, the AI could query the data, write and run its own analysis code, look up research, and save what it found back into the project.

Two things made this work. Genome Computer delivers the data in a well-organized format, and I kept a shared analysis folder so the work carried over from one AI tool to the next.

The AI did a lot of the technical work really well. It also missed a well-known Alzheimer’s risk gene I carry, which a 23andMe test had already told me about.

Why 30x whole-genome sequencing

Traditional consumer DNA tests, like 23andMe’s genotyping kits, only check a preselected set of spots in your DNA where known differences show up. That works, and it’s useful for ancestry and some health risks. Whole-genome sequencing reads across the whole genome instead, so you get a much bigger dataset and can find differences that were never on anyone’s list. Basically, more of you gets measured, and you can keep coming back to the data with new questions. 23andMe explains the difference here.

The 30x part is how deep the sequencing goes. On average, every spot in your genome gets read about 30 times, which helps tell real genetic differences apart from errors. Coverage isn’t perfectly even, though, and some regions are still hard to read, so “whole genome” doesn’t mean every single position is nailed down. It’s still a lot more to work with. More on sequencing coverage.

What came back in the download

The files came in three layers:

Data Size What it contains
Two compressed FASTQs About 92 GB combined Short stretches of DNA written out as A, C, G, and T, with a quality score for every letter. This is the raw sequencing data.
Compressed gVCF About 2.6 GB The processed genetic calls. It covers where my DNA differs from the reference genome, plus the evidence for where it matches.
.genome bundle About 2.7 GB Searchable tables of variants, annotations, drug-response info, risk scores, supporting evidence, and docs.

The gVCF matters because it separates “we checked and this variant isn’t there” from “we couldn’t get a confident read here.” Those are very different things.

Later on I moved the big FASTQ files to an external SSD and kept the smaller processed data and the analysis on my computer.

Why the data structure matters

The .genome bundle is really a folder. Mine had about five million variant records in it, plus a readmygenome skill, which is a set of instructions that tells the AI how the data is organized and how to validate and query it. It came with helper scripts to actually do that.

At around 100 GB, there was no way the whole thing was fitting into a conversation. The structure gave the AI a way to work with it anyway. If I asked about a specific gene or medication, it could run a query and pull back only what was relevant, like the genetic calls, quality measures, and supporting evidence. The code dealt with the huge files, and the model only had to look at the small result. That also leaves more room in the conversation for the stuff that actually matters to the answer. Anthropic has a good write-up on this approach.

It also means the AI’s answers are based on specific evidence, and I can go check that evidence myself. That doesn’t stop it from misreading a result or missing something important, as you’ll see with APOE4.

A shared folder across AI tools

The other big piece was keeping a shared record of the analysis. Claude Cowork and ChatGPT Work both had access to the same project folder, so each one could read what the other had saved and keep going from there. Any other AI with file access and the right tools could do the same thing, because all the context lived in files, not inside one app.

Here’s a simplified version of the layout. The file names are just examples, and every analysis folder follows the same YYYY-MM-DD_topic naming pattern:

health/
├── genome/
│   ├── reads_R1.fastq.gz
│   ├── reads_R2.fastq.gz
│   ├── variants.gvcf.gz
│   └── sample.genome/
├── health-records/
│   ├── lab-results/
│   ├── medications/
│   ├── imaging/
│   └── clinical-notes/
└── analysis/
    ├── YYYY-MM-DD_initial-review/
    ├── YYYY-MM-DD_next-review/
    └── …

Every report noted when the analysis was done, what got checked, the evidence behind it, and what was still unresolved. The scripts and queries lived right next to the reports. That way a later session could read the earlier work, push back on a conclusion, or pick up an investigation where it left off.

The folder ended up being how the AI tools talked to each other. I think that idea works for a lot more than genetics. If you save enough of the work, the next tool can understand it and keep going. You just have to actually write the context down, and tell the next AI to read it.

Claude Cowork, ChatGPT Work, and other AI tools share a health folder containing a genome subfolder with FASTQ, gVCF, and .genome files, plus health records and dated analysis history.

How I analyzed the data

This happened over a few passes in September and October. It included:

  • Checking the data. Validating the bundle, recording checksums, looking at coverage and quality, and reading both FASTQs all the way through. Each one had roughly 583 million reads. The paired IDs matched, and the scans didn’t turn up any formatting or decompression errors.
  • Reviewing genetic findings. Refreshing the public clinical annotations, computationally triaging 1,677 candidates, checking 64 selected common-risk sites, and looking at selected coding regions across 94 genes.
  • Rebuilding medication-response results. Reconstructing 1,226 target positions and running PharmCAT, a tool that interprets how your genetics may affect your response to medications. This brought back results that earlier summaries had suppressed, including UGT1A1 and CYP2C19 findings. For UGT1A1, it also went back and checked the raw reads.
  • Auditing the risk scores. Recalculating all 19 raw polygenic scores (scores that combine the effects of lots of genetic variants) from the published model weights and my genetic calls. The math checked out, and so did some extra spot checks against the source records. What we couldn’t verify was how those scores got turned into rankings against other people.

It pulled from public references like ClinVar, which tracks how genetic variants have been interpreted, and the PGS Catalog, which has published risk-score models. The audit saved which version of each reference it used and when, so a later review could see exactly what evidence a conclusion was based on.

Along the way, the tools wrote database queries, Python scripts, and even a compiled C++ program to scan the FASTQs. I could just describe a question and the AI would do most of the technical work, leaving behind code and evidence that later sessions could double-check.

It also put together a summary written for a doctor, with the findings, the evidence, and questions to discuss. That’s something I can actually bring to an appointment, along with the longer technical reports.

What I learned

To be honest, not much of it changed what I should be doing right now.

One result lined up with something I already knew: I have Gilbert’s syndrome. It’s a common, usually mild inherited condition where your liver processes bilirubin more slowly. Bilirubin is the yellow pigment your body makes when it breaks down old red blood cells. When it builds up, it can show up on bloodwork and sometimes make your skin or eyes a little yellow. The analysis found changes in UGT1A1, the gene behind that processing, which fits the diagnosis. More on Gilbert’s syndrome.

It also flagged that I’m genetically prone to high lipoprotein(a), or Lp(a). That’s a particle in your blood that carries cholesterol. When it’s high, it can add to plaque buildup and inflammation in your arteries, which raises your risk of heart attack and stroke. Your Lp(a) level is mostly inherited, so you can eat well and exercise and still have high Lp(a). Those habits are still good for your heart, they just don’t do much for Lp(a) itself. You also need a separate blood test to measure it, because a standard cholesterol panel doesn’t include it. The American Heart Association has a good explainer.

I already knew my Lp(a) was high from past blood tests. The DNA analysis found a variant in the LPA gene that’s linked to higher levels, which adds some genetic context to a number I’d already measured. The blood test tells me where I actually am. Putting those two together was useful, and it’s a good example of why I want my genome looked at alongside the rest of my medical history.

We also looked into a possible PIK3CG carrier finding, some variants of uncertain significance, and traits like lactose digestion, eye pigmentation, bitter taste, freckling, caffeine response, and muscle protein. How strong the evidence was, and how useful any of it was in practice, varied.

The APOE4 finding AI missed

I already knew I carry APOE4 from an earlier 23andMe test. GPT-6 Astra, which ran my first broad review of the whole genome, missed it entirely. It only came up after I specifically asked about APOE.

That’s a big miss. APOE4 is a well-established genetic risk factor for late-onset Alzheimer’s. It’s well known enough that 23andMe has a dedicated Alzheimer’s risk report. This was a significant, well-studied result that a consumer test had already told me about.

Once I asked, Astra checked the two positions that determine your APOE type and found ε3/ε4, which means I have one copy of ε4. Having APOE4 raises your risk of Alzheimer’s. It doesn’t mean I have it or that I’ll definitely get it. More on APOE and Alzheimer’s risk.

The evidence was sitting in the files the whole time. The bundle’s automatic summaries never combined those two positions into an APOE result, and Astra’s broad review didn’t notice. The bundle’s screening rules were mostly looking for rare variants and ones already classified as disease-causing, and APOE4 is a common risk variant. That explains how it got missed. I still expected a health-focused review to check something this well known.

The only reason I caught it is that I already knew the answer. Which makes me wonder what else I wouldn’t have known to ask about. A detailed report can look really thorough and still leave out something that matters.

Other checks found a summary that said there were zero polygenic scores when the tables actually had 19, and flags that didn’t match their own definitions. Having the data organized made those problems possible to find. It didn’t mean the first answer was complete.

There were limits too. We didn’t realign the genome or rerun every variant-calling pipeline, and some complex regions never got resolved. This was a research project, not a clinical genetic workup.

Connecting the rest of my health information

Adding my medical history made all of this a lot more relevant. The review grew to 20 unique medical PDFs, covering old labs, calcium-score CT and MRI reports, and body-composition scans, plus blood-pressure data and prescription records.

It pulled my earlier Lp(a) measurements into the analysis. It also found an older LDL cholesterol result the first review had missed and a drop in lean tissue while I was losing weight. And it could compare a low genetic vitamin D score against an actual blood test, which was within the lab’s normal range. Some of the most useful follow-up questions came just from getting records I already had organized.

Why I’m comfortable with the privacy tradeoff

I’m not that worried about other people knowing my DNA. For me, the upside of understanding it is worth more than the privacy risk.

I get why other people feel differently. Your genetic data can identify you, and it says things about your health and your biological relatives. Breaches and misuse are real risks, and genetic data is hard to anonymize.

Also, keeping the files on my computer doesn’t mean the analysis happens fully offline. OpenAI’s documentation, for example, says relevant file excerpts and tool results can get sent to its services during local Work tasks. Having the files local made the project practical. It doesn’t guarantee the data never leaves my computer.

I’m OK with that tradeoff. I want the chance to understand an inherited risk, connect something to my medical history, or learn something new as the science gets better. There wasn’t a lot I could act on right away from this first round, but I still think understanding my DNA is worth more than the risk of someone else knowing it.

How to try this yourself

If you want to do something similar, the setup is easy to copy. Keep the original files, use an AI tool that can work with the folder, and make it read and update a dated analysis history. Here’s a good instruction to start with:

Read the project documentation and existing analyses first. Validate the data before interpreting it. Investigate my question, cite the source records and research, and distinguish observed results from interpretation. Record what you couldn’t check. Save the findings, methods, and reusable scripts in a new dated analysis folder without changing the original data.

What I want next

For the most part, I only need to sequence my genome once, and I can keep coming back to it for years. Some gaps might need better sequencing or targeted tests down the road, but new research can change what we learn from the data I already have. The dated reports give any future analysis a place to start, and the original files are still there to check against.

The harder part is keeping the rest of my health records up to date. Maintaining a local copy of my medical history is a lot of ongoing work. ChatGPT Health already syncs records from the providers and health apps I’ve connected, so new results just show up without me having to go collect them. Here’s how Health connects and syncs records.

What I haven’t been able to do yet is connect this genome project to Health. That’s the gap I want closed. A new genetic finding is a lot more useful when the AI can also check it against an actual lab result, a medication I’m taking, or a question I should be asking my doctor.