Local DNA Explorer · Phase 2 preview

Your raw DNA file, opened on your own machine

Select a raw genotype file from your disk. DNADojo detects the format, reports the reference build, counts what is in it and lets you search — with no upload, no account, and no third-party script on this page.

No upload endpoint exists Parsed in a Web Worker Nothing saved by default Zero third-party scripts

Select a raw genotype file

Idle
Unzip the download first. Up to 250 MB — a consumer export is normally well under 30 MB. Parsing is cancellable at any time.
This page makes no network request while parsing. Open your browser's network panel and watch.

How it works

Four steps, none of which involve a server

  1. Read the header

    The first 64 KB are decoded to identify the delimiter, the column layout and any build statement.

  2. Pick an adapter

    Each format adapter scores its confidence. The highest score wins, and the score is shown to you.

  3. Stream the file

    4 MB at a time through File.slice() and TextDecoder, so memory stays flat and the page stays responsive.

  4. Index in typed arrays

    Chromosome, position and genotype are stored columnar, which keeps a 700k-SNP file in tens of megabytes rather than hundreds.

A pipeline diagram showing a local file entering the browser, passing through a Web Worker that detects format and streams the parse, and producing an in-memory index, with a crossed-out arrow to any server.

What this preview does and does not do

CapabilityStatusNote
Format detectionWorkingSingle-genotype, two-allele and generic delimited layouts
Build detectionWorkingReported, never converted — see below
Streaming parse with cancelWorkingCancellable at any point; memory is released
rsID and region searchWorkingIn-memory index, no persistence
Saving a project on this deviceNot enabledIndexedDB is wired but opt-in and off by default
Matching against other peopleNeverDNADojo does not build a cross-user DNA database
Health interpretationNeverOut of scope by design

Reference builds are reported, not converted

GRCh37 and GRCh38 number the same physical positions differently. Converting between them reliably needs a proper lift-over with a clear record of what was converted and what failed. Until that exists here, the Explorer shows you the build — including when the file does not state one — and refuses to guess.

Where to get your file