ワンクリックで
dna-methylation
DNA methylation analysis — array (450K/EPIC), bisulfite-seq, DMP/DMR detection, clocks, deconvolution, and EWAS
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
DNA methylation analysis — array (450K/EPIC), bisulfite-seq, DMP/DMR detection, clocks, deconvolution, and EWAS
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Molecular structure analysis, SAR triage, compound library characterization, QSAR modeling, ADMET prediction, chemical space visualization, target engagement assessment, drug perturbation connectivity scoring, and selectivity profiling
Chromatin regulation analysis — ATAC-seq, ChIP-seq, CUT&Tag/CUT&Run, differential binding, motif analysis, and scATAC-seq
Systematic drug repurposing via signature matching, target-based analysis, network proximity, genetic evidence scoring, and clinical evidence mining
Functional enrichment and pathway analysis including GSEA, ORA, ssGSEA, GSVA, and decoupler-based activity inference
Genomic variant analysis — germline/somatic SNV, structural variants, CNV, GWAS, annotation, and filtering
Metabolomics and lipidomics analysis — untargeted/targeted workflows, normalization, annotation, and pathway mapping
| name | dna-methylation |
| description | DNA methylation analysis — array (450K/EPIC), bisulfite-seq, DMP/DMR detection, clocks, deconvolution, and EWAS |
| version | 1.0.0 |
| tags | ["methylation","450k","epic","bisulfite-seq","wgbs","rrbs","dmp","dmr"] |
Comprehensive guidelines for methylation array processing, bisulfite sequencing analysis, differential methylation, epigenetic clocks, cell type deconvolution, and epigenome-wide association studies.
Read this before planning any array pipeline. The analysis packages (minfi, ChAMP, DMRcate, missMethyl, EpiDISH, methylclock) are installed, but the Illumina array manifest and annotation packages they depend on are not — no IlluminaHumanMethylation450kanno.*, IlluminaHumanMethylationEPICanno.*, IlluminaHumanMethylationEPICv2anno.*, and no matching *manifest package. There is also no network egress, so they cannot be installed at runtime, and Bioconductor's ExperimentHub/AnnotationHub fetches fail even though those client packages are present.
What this means in practice:
| Step | Status |
|---|---|
IDAT → RGChannelSet → normalized betas (minfi, ChAMP) | Cannot run. Requires the manifest package to decode probe addresses. |
Genomic mapping / probe annotation (mapToGenome(), getAnnotation()) | Cannot run. Requires the anno package. |
Array DMR calling (DMRcate::cpg.annotate(datatype = "array")) | Cannot run. Resolves probe coordinates from the anno package. |
Deconvolution from an existing beta matrix (EpiDISH) | Runs. Self-contained references, no annotation dependency. |
Epigenetic clocks (methylclock) | Runs on a beta matrix, but needs clock coefficients — see references/methylclock-api.md. |
Bisulfite-seq (dmrseq / DSS) | Downstream only. Both run on a methylation/coverage matrix you already have; bisulfite read alignment and methylation extraction are upstream of this pack (see §2). |
How to proceed: verify the annotation package actually loads before building a pipeline around it. If it does not, say so plainly — name the missing package and the step it blocks — and then do the analysis the data does support. A beta or M-value matrix that arrives already processed (from GEO, a collaborator, or an upstream step) still supports DMP testing, deconvolution, clocks, and EWAS modelling; only the probe-to-genome annotation is missing, and results can be reported by CpG ID. Do not silently substitute a different array's annotation, and do not present an unannotated result as though it were annotated.
Everything below stays technically correct and applies as written if these packages are ever staged.
IDAT files
→ minfi::read.metharray.exp() (R)
→ QC: detection p-values, sample-level QC (sex check, SNP probes)
→ Probe filtering: remove failed (p > 0.01), cross-reactive, SNP-at-CpG probes
→ Normalization:
→ Noob (default — background correction + dye-bias normalization)
→ SWAN (alternative — type I/II probe adjustment)
→ Functional normalization (for large cohorts with known technical variation)
→ Beta-values (0-1 scale) AND M-values (logit-transformed)
Alternative pipeline (more automated):
IDAT files
→ ChAMP::champ.load() (R)
→ champ.filter() (cross-reactive, SNP, detection p-value)
→ champ.norm() with BMIQ (type I/II correction)
→ champ.DMP() → champ.DMR()
IlluminaHumanMethylation450kanno) vs EPIC (IlluminaHumanMethylationEPICanno) vs EPICv2. Wrong annotation silently produces incorrect results. None of these packages are staged here — confirm the one you need loads before starting, and if it does not, report the blocker rather than falling back to another platform's annotation (see Environment Constraint above).Entry point: a per-CpG coverage/methylation matrix. Bisulfite read trimming, alignment, deduplication and methylation extraction are upstream of this pack. If you were handed raw FASTQ, say so and stop rather than planning those stages.
Given a coverage matrix, the steps that belong here:
Per-CpG coverage/methylation matrix
→ Coverage filtering: require >= 5x (WGBS) or >= 10x (RRBS) per CpG
→ Merge CpG strand information (combine + and - strand)
→ DMR calling: dmrseq or DSS
Beta-values (for reporting) + M-values (for statistics)
→ Convert: M = log2(beta / (1 - beta))
→ Design matrix: model.matrix(~ group + covariates)
→ limma on M-values: lmFit → eBayes → topTable
→ Filter: padj < 0.05 AND abs(delta_beta) > 0.05
From array data (limma results)
→ DMRcate (kernel smoothing, default)
→ cpg.annotate() from limma results → dmrcate() → extractRanges()
→ Minimum 3 CpGs per DMR, bandwidth 1000bp
From bisulfite-seq data (BSseq objects)
→ dmrseq (regression-based, preferred for BS-seq)
→ Filter low-coverage CpGs → dmrseq() with appropriate testCovariate
→ DSS (Bayesian, alternative)
→ DMLtest() → callDMR()
Beta-values at specific CpG sets
→ methylclock package (R)
→ Horvath clock (353 CpGs, multi-tissue)
→ Hannum clock (71 CpGs, blood)
→ PhenoAge (513 CpGs, mortality-associated)
→ GrimAge (1030 CpGs, lifespan predictor)
Blood samples
→ minfi::estimateCellCounts() (Houseman reference, default)
→ Returns proportions of CD8T, CD4T, NK, Bcell, Mono, Gran
Any tissue with reference
→ EpiDISH (more reference panels, RPC/CBS/CP methods)
→ epidish() with appropriate reference matrix
M-values + phenotype + covariates
→ SVA: sva(), or SmartSVA for large probe sets — its export is smartsva.cpp(),
not smartsva(), which is defined but deliberately not exported
→ limma model: ~ trait + age + sex + cell_proportions + SVs
→ topTable with BH FDR correction
→ Annotate results with gene/CpG island context
var, samples as obs, beta-values as X, M-values in a layer.cpg_id, chromosome, position, gene, delta_beta, logFC_M, pvalue, padj.chr, start, end, n_cpgs, mean_delta_beta, pvalue, padj, overlapping_genes.gometh() / gsameth() instead of standard enrichment tools when input is a list of CpG sites or DMPs.references/minfi-api.md — IDAT loading, normalization, QC, and cell deconvolutionreferences/champ-api.md — ChAMP automated pipeline for array methylationreferences/dmrcate-api.md — DMR detection from limma resultsreferences/epidish-api.md — EpiDISH cell type deconvolution (RPC/CBS/CP methods, reference panels, CellDMC)references/methylclock-api.md — Epigenetic age prediction (Horvath, Hannum, PhenoAge, GrimAge clocks)