Open data: which markers are on the chip your DNA file came from

dna-chip-coverage β€” a per-marker, per-platform coverage table built from published array manifests. CC BY 4.0, archived with a DOI.

A consumer DNA raw data file is a list of markers that one particular genotyping array happened to assay. If a marker is not on that array, nothing in the file supports a statement about it β€” but the file does not say so, and tools reading it often produce an answer anyway.

This dataset makes coverage a checkable fact. It answers one question and no others: does array X carry marker rsY?

What is in it

70 clinically discussed markers, resolved against five published Illumina array manifests, plus consumer products and markers observed in published raw data files.

  • Every call records the evidence it rests on β€” a manifest, an observed file, or an inference from a documented backbone.
  • Where the public record does not settle the question, the value is unknown rather than a guess. unknown is a real value, and the notes column says why.
  • A build script regenerates the whole table from the source manifests, so every number here is reproducible from scratch.
  • Out of scope, deliberately: genotype interpretation, risk estimates, allele frequencies, anything resembling medical advice.

Coverage across the five published arrays

Of the 70 markers in the dataset, this is how many each published array carries:

Marker coverage of 70 clinically discussed SNPs across five published Illumina genotyping arrays
ArrayCarriesMissingUndetermined
Infinium OmniExpress-24 v1.2 A133370
Infinium OmniExpress-24 v1.3 A133370
Infinium GSA-24 v1.0 C1 (build 37)56131
Infinium GSA-24 v1.0 C2 (build 38)56131
Infinium GSA-24 v2.0 A26451

Read "missing" as: this array has no probe for that locus. A consumer chip built on one of these arrays may add custom probes of its own, so a gap in the backbone is not automatically a gap in the chip β€” and no consumer vendor publishes a per-chip manifest.

What the data shows

Five findings, each worked through case by case in notable-gaps.md.

1. Half a pair is worse than none of it

Assigning an APOE Ξ΅ genotype requires both rs429358 and rs7412; neither site means anything alone. All five arrays carry rs7412. Exactly one carries rs429358. So a file from a chip built on OmniExpress-24 or GSA v1.0 yields the half that looks like an answer, and nothing in it announces that the other site was never assayed. The same shape recurs in TPMT (*3B without *3C), HFE (H63D without C282Y) and SERPINA1 (PiZ without PiS).

Read the full case β†’

2. The error has a direction, and it is reassurance

CYP2C19 is the clearest case. Both loss-of-function alleles β€” rs4244285 (*2) and rs4986893 (*3) β€” are on all five arrays. rs12248560 (*17), which increases function, is absent from both OmniExpress-24 revisions. An ultrarapid metaboliser therefore cannot be distinguished from a normal one and is systematically reported as normal. Across these cases the marker that drops out is disproportionately the one that would have changed a decision.

Read the full case β†’

3. Some questions no array here can answer at all

rs3892097 (CYP2D6*4) and rs1065852 (CYP2D6*10) β€” the most common loss-of-function alleles in European and East Asian populations respectively β€” are on none of the five arrays. Beyond that, CYP2D6 star-allele calling depends on gene deletions and duplications, and a genotyping array reports one call per probe and cannot represent copy number at all.

Read the full case β†’

4. Absence has a false version too

rs9923231 (VKORC1, the primary determinant of warfarin dose in CPIC's algorithm) is on all five arrays β€” but the manifests name it rs9923231, seq-rs9923231 and chr16-31107689:rs9923231-CT. Anything deciding presence by matching the literal rsID string reports it missing on three of five, when it is there. Presence in this dataset is resolved by genomic coordinate, with the probe name recorded so the alias stays visible.

Read the full case β†’

5. Newer is not a superset

26 of the 70 markers move the expected way β€” absent from OmniExpress-24, present on every GSA revision. But rs601338 (FUT2) and rs1801198 (TCN2) are on OmniExpress-24 and on no GSA revision, and lactase persistence rs4988235 is present, then absent on GSA v1.0, then present again on v2.0. The two backbones overlap on only 24% of positions, so array generation is not a proxy for coverage of any particular marker.

Read the full case β†’

Where a call comes from

Not every row rests on the same kind of evidence, and the evidence column says which. In descending order of what it settles:

  • manifest β€” read directly from a published array manifest. Definitive for that array.
  • public_file_observation β€” the marker was seen, or not seen, in files produced by the product itself. Definitive for what the product ships, including custom content a manifest cannot describe.
  • backbone_manifest_family β€” inherited from a backbone family whose revisions all agree.
  • no_public_manifest, family_revisions_disagree β€” nothing public settles it; the call is unknown and the notes say why.

Cite it

Each release is archived on Zenodo with a DOI. The DOI below always resolves to the latest version.

Attribution string
dna-chip-coverage by Andrey Soloviev, CC BY 4.0 β€” https://github.com/AndreySoloviev/dna-chip-coverage
BibTeX
@dataset{dna_chip_coverage,
  title     = {dna-chip-coverage: SNP marker coverage across
               consumer DNA genotyping arrays},
  author    = {Soloviev, Andrey},
  year      = {2026},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.21708539},
  url       = {https://doi.org/10.5281/zenodo.21708539}
}

The repositories

dna-chip-coverage

The dataset itself: coverage.csv, the markers and arrays it is built from, the notable-gaps analysis, every source with a retrieval date, and the build script that regenerates it.

View the dataset β†’

dnafile

A Go library and CLI for reading consumer raw DNA files β€” format detection, marker census, coverage checks. The companion tool for asking the coverage question of a file you actually hold.

View the library β†’

Licence

Data and documentation are CC BY 4.0; the code in scripts/ is MIT. Use it commercially, modify it, redistribute it β€” attribution is the only condition.

The array manifests the dataset is derived from remain the property of their publishers and are not redistributed; the build script downloads them from the original source. Coverage tells you whether a question can be asked of a file, not what the answer means β€” for clinical interpretation of any marker, consult ClinVar, PharmGKB or CPIC, and a clinician.

Ask My DNA maintains this dataset because the same question comes up on every file we read: was this marker measured at all? If you are holding your own raw data file, you can ask it there.

Check your own file

We use cookies for analytics. Learn more