Can I Convert a BAM File to 23andMe Raw Data Without Using GATK
A BAM file is aligned reads, not a variant list, but a browser tool can call about two million known SNPs and write the 23andMe chip layout from the BAM and its .bai.
Most BAM to 23andMe conversions do not need GATK, because you are not discovering new variants. You are reading the aligned reads you already have, calling only about two million known SNP positions, and writing those calls in the 23andMe raw data layout. The converter needs the BAM plus its .bai index, and the output is a known-site chip-format file, not a whole-genome variant call.
Can I convert my BAM file to 23andMe raw data without using GATK?
Yes. If you have the aligned BAM and the .bai index that sits beside it, you can do this in a browser. Drop both files on the free BAM to 23andMe converter. It reads the reads on your device and calls your genotype at about two million known SNPs. The download is a text file with four tab-separated columns: rsid, chromosome, position, genotype. The file never leaves the browser and no account is required.
The word convert hides the actual step. A BAM does not hold a genotype for each SNP. The converter has to look at the reads stacked over each chosen position and decide the letters. That is site calling at known sites, not variant discovery across the genome.
A BAM to 23andMe conversion without GATK works when the goal is a chip-style file at known SNP positions. It does not replace a whole-genome variant call.
What a BAM file actually is
A BAM file is a binary version of a SAM file. Each record is one sequencing read with its chromosome, start position, mapping quality, CIGAR string and bases. It is not a table of variants. If you open it as text, you see compressed-looking nonsense, not lines starting with rsIDs.
A 23andMe raw data file has one line per marker: rsid chromosome position genotype.
The two formats answer different questions. A BAM says 'here are the reads.' A 23andMe file says 'here are the letters at this preset list of positions.' Moving from one to the other requires choosing which positions to call.
This is the central thing people get wrong. They assume BAM and 23andMe are two encodings of the same object. They are not.
What the converter does at those two million positions
The tool takes the BAM and the .bai and reads locally. At each known SNP it pulls the reads covering that base, counts the evidence, and calls a genotype. Where coverage is too thin or ambiguous, it writes a no-call (--) rather than guessing. The first line of the output says the file was converted from a BAM, so nobody mistakes it for a 23andMe export.
The known positions are the same common SNPs that consumer chips and most raw-DNA reports read. That is why the output fits the chip layout. The tool is not scanning the genome for everything that varies.
What you will see in the output
The download starts with a comment line naming the layout and saying it was converted. Then the marker lines. Three examples, in GRCh37 coordinates:
rs4988235 2 136608646 AGrs429358 19 45411941 CCrs7412 19 45412079 CT
These are not your results. They show the shape of the file: an rsID, a chromosome, a one-based position, and two letters. A no-call appears as --. Positions your reads do not cover are left out and counted rather than invented.
If you want the file to line up with tools that expect 23andMe's usual GRCh37 coordinates, choose GRCh37. The VCF path can write GRCh37 or GRCh38, and the page states the build.
Will this find a rare variant or a cancer driver?
No. That is the limit that matters. The converter only looks at about two million known SNP positions. A rare variant outside that list, an insertion, a deletion, or a structural variant will not appear in the 23andMe-style output. For those questions, run a real variant caller such as GATK HaplotypeCaller, DeepVariant, or bcftools mpileup on the BAM.
This also means a clean 23andMe file from a BAM can still miss the variant that actually matters to a family history or a rare disease. The output is useful for chip-format reports, not for ruling out a mutation.
| BAM to 23andMe without GATK | GATK / DeepVariant whole-genome call | |
|---|---|---|
| Positions tested | About 2 million known SNPs | All potentially variable sites |
| Finds rare variants outside the list | No | Yes |
| Finds indels and structural variants | No | Yes |
| Output | 23andMe-style text | VCF/gVCF |
| Runs in browser | Yes | No |
Scroll the table sideways for the rest →
The BAM to 23andMe path is deliberately narrower than a full variant call.
Why the .bai file matters
A BAM file is usually sorted by coordinate. The .bai index tells the tool where to jump to get the reads for one position without scanning the whole file. In a browser, scanning a whole-genome BAM for every one of two million positions would be painfully slow. The index makes random access possible.
If your BAM was made by samtools or a standard aligner, the .bai often has the same name with .bai appended. Drop both files. If you have only the BAM, run samtools index yourfile.bam on a machine with samtools to create the index first.
If you have the BAM and the .bai, open the BAM to 23andMe converter at HealthOS and drop both files. You get a chip-format text file, not a whole-genome call, but for most consumer DNA tools that is exactly what they need.
New to raw DNA files? Start with the full guide: How to Download & Analyze Your 23andMe Raw Data Free
Written by
HealthOS Research