All studies
DNA·October 26, 2026·4 min read

Convert 23andMe Raw Data to PLINK Format

Drop a 23andMe raw file on the free browser converter, choose PLINK 1.x text, and download zipped .ped and .map files without changing a genotype.

To convert a 23andMe raw data file to PLINK, drop the downloaded .txt or .zip on the free in-browser converter at healthosx.com/dna/convert/23andme-to-plink and choose PLINK 1.x text. You get a zipped download containing two files: a .map file with every marker and a .ped file with your genotypes in the standard PLINK text layout. The conversion reads the file on your device, copies each called genotype as-is, and writes 23andMe no-calls as PLINK's 0 0 missing code.

What PLINK .ped and .map actually are

PLINK 1.x text format is not one file. It is a pair. The .map file describes variants, one row per marker, with four columns in order: chromosome, variant ID, genetic distance and base-pair position. The .ped file describes samples and genotypes, one row per person. The first six columns are family ID, individual ID, paternal ID, maternal ID, sex and phenotype. After those six come two columns per marker, one for each allele. A 23andMe genotype such as AG becomes A G. A homozygous TT becomes T T. A no-call -- becomes 0 0, which is PLINK's missing value.

You often see .bed/.bim/.fam mentioned alongside PLINK. That is the binary form. This converter writes PLINK 1.x text, not binary. If a downstream tool wants binary, PLINK can convert the text pair with one command: plink --file converted --make-bed.

630k
markers in a typical 23andMe v5 .map file
1
sample row in the .ped file
2
text files downloaded, zipped
0
genotypes changed by conversion

How do I convert my 23andMe raw data to PLINK format?

Drop the raw file on healthosx.com/dna/convert/23andme-to-plink. Select PLINK 1.x text, and the converter returns a zipped .ped and .map. The file is read in your browser. It is never uploaded, and there is no account.

The steps are short.

  • Download your 23andMe raw data from the 23andMe account menu. Leave it zipped unless you are checking the contents.
  • Open the converter page and drop the .txt or .zip.
  • Choose PLINK 1.x text as the output.
  • Download the zipped .ped and .map.

The converter accepts a single 23andMe raw text file or the zipped download straight from 23andMe.

Which 23andMe columns go into PLINK

A 23andMe raw text file starts with a few # comment lines, then one marker per line in four tab-separated columns: rsid, chromosome, position, genotype. The converter carries those values into PLINK without changing the genotype letters.

23andMe columns to PLINK
23andMe columnPLINK destinationWhat happens
rsid.map column 2Copied as the variant ID
chromosome.map column 1Copied, e.g. 1, 2, X, Y, MT
position.map column 4Copied as base-pair position
genotype.ped allele columnsSplit into two allele columns; -- becomes 0 0

Scroll the table sideways for the rest →

For a standard 23andMe raw text export. PLINK 1.x text uses a .map file for variant information and a .ped file for the genotype row.

The rsid becomes the variant ID in the .map file. That includes 23andMe's internal i prefixed IDs, not just rs numbers. The chromosome becomes the .map chromosome column, and the position becomes the .map base-pair position. The third .map column, genetic distance, has no 23andMe equivalent and is written as 0 for each marker. The genotype column is split into the two allele columns of the .ped row.

A real line such as:

rs4988235 2 136608646 AG

becomes a .map row with chromosome 2, variant ID rs4988235, distance 0, position 136608646, and two .ped allele columns containing A and G. If the 23andMe line had --, the .ped columns would contain 0 and 0.

The converter copies genotypes; it does not call or fix them

PLINK conversion is a layout change. Every called genotype is copied, every no-call stays missing, and nothing is imputed or guessed.

That matters because some format converters try to fill no-calls, flip ambiguous alleles to a reference strand, or remove markers that do not map. This one does not. A genotype is copied letter for letter. A no-call stays a no-call. A marker that cannot be read is left out and counted, but a valid 23andMe line is not altered. The output is exactly as informative as the 23andMe export, just shaped for PLINK.

That also means the file will not become more complete. If 23andMe did not test a SNP, PLINK will not have it. If 23andMe returned a no-call, the converted file has a missing value. No imputation is done.

No-calls, build, and files that will not load

The obvious follow-up is why a converted file might still be refused. One common reason is that the target tool expects PLINK binary .bed/.bim/.fam rather than text .ped/.map. The fix is the --make-bed command above. Another is that a tool expects a different genome build. 23andMe v5 files are on GRCh37. Most PLINK-based tools that match by position will also expect GRCh37, but a tool built for GRCh38 will need a lift, not a format conversion. The converter can move GRCh38 positions to GRCh37 for chip layouts and PLINK, but a 23andMe file is already GRCh37.

Re-saving in Excel is a common way to break the file. If your file was opened and saved in a spreadsheet, download it again from 23andMe. A valid raw text file is tab-separated and begins with # This data file generated by 23andMe. A handful of no-calls is normal, usually well under 5%.

Read the same file without the command line

If the reason for converting is that you want your 23andMe file interpreted, the full free report at HealthOS reads the same file directly, in the browser, without asking for a format change. It covers traits, medication genes, ancestry and family lines. The conversion route is for tools that specifically require PLINK text.

New to raw DNA files? Start with the full guide: How to Download & Analyze Your 23andMe Raw Data Free

Written by

HealthOS Research

Keep reading