// coordinates // open in a browser // dataset catalogue // loaded tracks // extraction recipes // BS vs EM-seq vs ONT // caveats // sources
Read · public reference methylomes

Public bisulfite & EM-seq data over the CD55 window

Where to find published CpG methylation for the same 6,500 bp / 137-CpG region we sequence with nanopore — across T cells, K562 and dozens of other sorted human cell types. Every entry links to the primary repository, with the exact coordinates and the commands to cut the window out.

Region of interest
6,500 bp window around the CD55 promoter containing 137 CpGs TSS → 137 CpGs · 6,500 bp
GRCh38 / hg38 chr1:207318058-207324558
What this page is — and is not. This is a verified index of where the public data live, not a re-analysis of it. No methylation values are plotted here, because none of these datasets have been downloaded and processed for this window yet. Everything below was checked against the primary repository. Section 4 renders real values as soon as the extractor script has been run and its JSON committed — until then it stays empty on purpose.

1 · Coordinates, and the assembly trap

The window is the same 6,500 bp / 137 CpGs used throughout this site. Most public methylomes are aligned to GRCh38 or, for anything older than about 2016, to GRCh37/hg19 — so the assembly is the first thing to get right.

T2T-CHM13v2.0 hs1 chr1:206583354-206589854 Our nanopore reference. UCSC calls this assembly hs1.
GRCh38 / hg38 hg38 chr1:207318058-207324558 The lingua franca of public methylomes — ENCODE, the methylation atlas, BLUEPRINT reprocessing.
GRCh37 / hg19 liftOver Not listed here on purpose. Roadmap Epigenomics, TCGA 450K and most pre-2016 GEO submissions are hg19; convert the hg38 window yourself rather than trusting a number typed from memory.
Watch the off-by-one: BED and bigWig are 0-based half-open, while the coordinates above are written in the 1-based inclusive style the genome browsers use. A CpG is two bases, so also decide up front whether you are reporting the C on the plus strand, the G on the minus strand, or the strand-collapsed pair.

2 · Open the window in a browser

The fastest look before downloading anything. Each link jumps straight to the region; the first one also loads the Human Methylation Atlas track hub, which puts sorted CD4 T, CD8 T, naive T, B, NK and monocyte methylomes on screen at once.

3 · Dataset catalogue

Whole-genome assays (WGBS, EM-seq) cover this window by construction; array and capture assays may not have a single probe here, so those rows are flagged. Filter by what you need.

Dataset Cell type Assay Assembly Access

4 · Loaded tracks

Once fetch_public_cd55_roi.py has run, its output lands in docs/data/public_cd55_roi.json and every dataset below is drawn straight from it — one mark per CpG, positioned by base pair across the window.

5 · Cutting the window out

All snippets use the hg38 window. Swap in the T2T coordinates only for files that were actually aligned to T2T-CHM13v2.0 — and check the contig naming in the header first (chr1 vs NC_060925.1).

From a bigWig (ENCODE, Roadmap, BLUEPRINT)

# hg38 window
CHR=chr1; START=207318058; END=207324558

# methylation fraction and read depth come as two separate bigWigs
bigWigToBedGraph -chrom=$CHR -start=$START -end=$END frac.bigWig  roi.frac.bedGraph
bigWigToBedGraph -chrom=$CHR -start=$START -end=$END cov.bigWig   roi.cov.bedGraph

# join on position; drop CpGs below your depth cutoff before averaging
join -j2 <(sort -k2,2 roi.frac.bedGraph) <(sort -k2,2 roi.cov.bedGraph) > roi.joined.txt

From a per-CpG BED (ENCODE bedMethyl-style)

# ENCODE WGBS experiments ship a per-CpG bed; sort, compress, index once
sort -k1,1 -k2,2n ENCFFxxxxxx.bed | bgzip > cpg.bed.gz
tabix -p bed cpg.bed.gz
tabix cpg.bed.gz chr1:207318058-207324558 > roi.cpg.bed

From raw EM-seq / WGBS reads (SRA)

# e.g. the matched NEB EM-seq vs WGBS pair on NA12878
fasterq-dump --split-files SRR10532145
bwameth.py --reference GRCh38.fa SRR10532145_1.fastq SRR10532145_2.fastq \
  | samtools sort -o em.bam -
samtools index em.bam

# per-CpG calls restricted to the window
MethylDackel extract -r chr1:207318058-207324558 --mergeContext GRCh38.fa em.bam

From the Human Methylation Atlas (wgbstools .beta files)

# the atlas is distributed as .beta files indexed by CpG number, not by bp
wgbstools convert -r chr1:207318058-207324558     # → CpG index range for the window
wgbstools beta_to_table -r chr1:207318058-207324558 *.beta > roi_atlas.tsv

check flag names against `wgbstools --help`; the CLI has changed between releases
Whatever the source, keep the per-CpG depth alongside the fraction. A public methylome at 5× over this window gives a fraction that looks precise and is not — the same trap as reading a single nanopore molecule as if it were a population average.

6 · What each platform actually measures

These are not three ways of measuring the same thing, and the differences matter when a public track is used to sanity-check our nanopore calls.

Platform Reads out Watch for
WGBS 5mC + 5hmC, indistinguishable Bisulfite fragments DNA and biases coverage; unconverted C reads as methylated. Older datasets often sit at low depth.
EM-seq 5mC + 5hmC, indistinguishable Enzymatic, so less DNA damage and more even coverage than WGBS at equal depth — but the same 5mC/5hmC ambiguity unless a separate protocol is run.
Nanopore 5mC and 5hmC separately, per molecule Our own data. Per-read calls make single-molecule patterns visible, at the cost of a model-dependent call with its own error profile.
450K / EPIC Beta value at fixed probe positions Only a few CpGs per locus, if any. Check the manifest for probes inside the window before assuming coverage.

7 · Before comparing any of this to our data

8 · Sources