Probe-level annotation for the Illumina Infinium DNA methylation arrays: genomic
coordinates, mapping quality, design/quality masks, and
KnowYourCG feature sets (chromatin
states, transcription-factor binding, CpG islands, imprinting, …). Every
per-probe file is pinned positionally to one canonical probe ordering per
platform, and each release is an internally coherent, SHA256SUMS-verified,
git-tagged snapshot.
- Interactive browser & downloads: https://zwdzwd.github.io/InfiniumAnnotation
- Analyze arrays in R: sesame (Bioconductor)
- From IDATs on the command line: sesame-cli
- Feature enrichment: KnowYourCG
- Read/query the
.cmfiles: YAME
| Platform | Array | Manifest | Genome | Probes | Reference |
|---|---|---|---|---|---|
| MSA | Infinium Methylation Screening Array (MSA-48v1-0) | B1 | hg38 | 284,309 | Goldberg 2025 |
| EPICv2 | Infinium MethylationEPIC v2.0 (EPIC-8v2-0) | A2 | hg38 | 937,690 | Kaur 2024 |
| EPIC | Infinium MethylationEPIC v1.0 | B5 | hg38 | 866,553 | Zhou 2016 |
| HM450 | HumanMethylation450 | v1.2 | hg38 | 486,427 | Zhou 2016 |
| HM27 | HumanMethylation27 | v1.2 | hg38 | 27,722 | Zhou 2016 |
| MM285 | Infinium Mouse Methylation (MouseMethylation-12v1-0) | A2 | mm10, mm39 | 287,692 | Zhou 2022 |
| Mammal40 | HorvathMammal40 Mammalian Methylation | Canonical 3.2019 | hg38 | 38,607 | Arneson 2022 |
Probe counts are exact rows in each <PLAT>.ordering.tsv.gz. Each manifest
revision is the current/final one Illumina ships for that array.
Files are row-aligned: data row i of every file below is the same probe. The ordering is the only file that carries probe names — it is the index.
| File | Contents |
|---|---|
<PLAT>.ordering.tsv.gz |
The probe index. Probe_ID, M/U (bead addresses), col (color channel). Genome-independent; derived from the manufacturer manifest, LC_ALL=C sorted. |
<PLAT>.<genome>.coord.tsv.gz |
Per-probe genomic coordinate: CpG_chrm, CpG_beg (0-based), strand, mapQ. Positional; no probe IDs stored (see below). |
<PLAT>.<genome>.mask.cm (+.idx) |
Design/quality masks (M_mapping, M_nonuniq, SNP masks, …) as a YAME .cm bitset — one record per mask. Positional. |
<PLAT>.typeI_ext.tsv.gz |
Infinium-I extension base for the GCT bisulfite-conversion control: C (extension C — Grn here means unconverted), T (background reference), . otherwise. M_general-masked probes are excluded. Positional. |
KYCG/ |
KnowYourCG feature sets as .cm (one dir, its own SHA256SUMS). Positional. |
SHA256SUMS |
Binds the set. Verify with cd <PLAT> && sha256sum -c SHA256SUMS. |
strand is the interrogated cytosine's strand (+ = the C of the CpG on the
top strand at CpG_beg; - = the C complementing the G) — it matches sesame's
probe_strand. The interval width is implied by probe class (from the Probe_ID
prefix): a cg probe is a 2-bp CpG (end = CpG_beg + 2); ch/rs/nv probes
target a single base (end = CpG_beg + 1).
The coord, mask.cm, and KYCG/ files are positional to the ordering and
do not store probe IDs (the IDs live once, in the ordering). Attach them with
sesame attach-probe, which prepends the ordering's Probe_ID to any
positional file — a coord .tsv.gz, a .cm mask/feature, or a preprocess beta
.cg:
# Coordinate table with probe names:
sesame attach-probe --index MSA.ordering.tsv.gz MSA.hg38.coord.tsv.gz
# Probe_ID CpG_chrm CpG_beg strand mapQ
# Mask matrix with probe names (unpacks the .cm and prepends Probe_ID):
sesame attach-probe --index MSA.ordering.tsv.gz MSA.hg38.mask.cm
# Probe_ID <one column per mask tag>Use --platform MSA instead of --index to pull the ordering from the fetched
store. Without the binary, the same pairing is a positional paste, e.g.
paste <(zcat MSA.ordering.tsv.gz | cut -f1) <(zcat MSA.hg38.coord.tsv.gz).
- sesame-cli —
attach-probe(above); alsopreprocess(IDATs → beta.cgin this same ordering),dml,cnv. - YAME reads/queries the
.cmfiles directly (yame unpack,yame summary, …); rows come out in ordering order. - In R, sesame and KnowYourCG consume these directly.
The repository is released as git tags; each tag is a self-consistent
snapshot (every file bound by SHA256SUMS). Use the latest tag (v7) unless
you need to reproduce an older result.
Common build parameters across all platforms:
- Mapping: BISCUIT (bisulfite-aware
BWA-MEM) with an added primary-chromosome preference pass
(
biscuit postalt --unplaced) that keeps a probe on the main assembly when it also hits an equal-scoring unplaced/_altcontig. - Ordering: from the manufacturer manifest (bead addresses + color channel),
LC_ALL=Csorted — reproducible from any shell, authoritative for addresses. - coord strand: the interrogated-cytosine strand (SAM FLAG), verified 100%
against sesame's
probe_strand. - Masks: mapping masks (
M_mapping,M_nonuniq) from the alignment; SNP masks from dbSNP (human) / Mouse Genomes Project strain SNPs (mm10).
Tag history: v1 MSA · v2 +postalt, +EPICv2 · v3 +HM450/EPIC, +coord ·
v4 coord positional layout · v5 coord strand fix · v6 +MM285
(mm10+mm39) · v7 +Mammal40/HM27.
Per platform:
- MSA — Goldberg et al., Scalable screening of ternary-code DNA methylation dynamics associated with human traits, Cell Genomics 2025.
- EPICv2 — Kaur et al., Comprehensive evaluation of the Infinium human MethylationEPIC v2 BeadChip, Epigenetics Communications 2024.
- EPIC / HM450 / HM27 — Zhou, Laird & Shen, Comprehensive characterization, annotation and innovative use of Infinium DNA methylation BeadChip probes, Nucleic Acids Research 2016.
- MM285 — Zhou, Hinoue, Barnes et al., DNA methylation dynamics and dysregulation delineated by high-throughput profiling in the mouse, Cell Genomics 2022.
- Mammal40 — Arneson, Haghani et al. (Horvath), A mammalian methylation array for profiling methylation levels at conserved sequences, Nature Communications 2022.
Methods:
- Feature interpretation (KnowYourCG) — Goldberg*, Fu*, et al., KnowYourCG: Facilitating base-level sparse methylome interpretation, Science Advances 2025.