Vol. 01 · No. 1 · Beta Edition
Node reference

Methylation nodes.

Illumina methylation arrays (27K, 450K, EPIC v1, EPIC v2, Mouse). Load IDAT reads raw intensities with the mepylome engine — methylprep only supplies manifests and annotation — and applies raw-signal preprocessing chosen by its prep parameter: raw, illumina, noob or swan. Load Methyl Beta takes a vendor beta matrix instead. Then Methyl QC (detection p, intensity, control strip, SNP heatmap, call rates), Methyl Normalize (NaN-aware between-array quantile, or none), Methyl Filter, DMP (Welch or limma-style moderated t), a 3+ group F-test, bumphunter-style DMRs, BED / ENCODE cCRE feature enrichment with a forest plot, CpG-bias-corrected GOmeth, and Manhattan / QQ / volcano / heatmap / locus plots.

12 nodesCategory · methylationin 4 templates

Where things go

Phenotype attaches with Merge Cell Meta (a sample sheet keyed by sample ID), not through the loader. Manifests and the extended probe annotation are resources — see the Resource Center.

Read before trusting an old result

BMIQ and noob are not Methyl Normalize options. They were removed in v0.14.4 because the implementations behind those labels were not BMIQ or NOOB and corrupted beta values silently. Real NOOB and SWAN operate on raw signal and live in Load IDAT’s prep. Methylation results produced with the old options should be re-run.

SWAN is not deterministic. It uses random sampling, so two runs differ slightly. Prefer illumina or noob when reproducibility matters.

Run Methyl Filter before DMP. SNP-associated, sex-chromosome, cross-reactive and low-call-rate probes are removed there; DMP without it is dominated by artefacts.

Load IDAT node

Load IDAT

loadIDAT

Load Illumina methylation IDAT (450K / EPIC v1 / EPIC v2 / Mouse). EPIC v2 auto-routes to mepylome (methylprep ceiling). IDAT pairs (_Grn + _Red) required. The array manifest is installed once through the Resource Center — a run never downloads. Detects Fasoo DRM lock and refuses with a clear message.

Node LibraryMethylation
OutAnnData (samples × probes, beta + M-values)
Parameters (8)
NameTypeDefaultDescription
idat_dirdirectory—IDAT directory (recursive).
array_typeselectautoauto/450k/epic/epicv2/mouse.
collapse_replicatescheckboxtrueCollapse EPIC v2 replicate probes.
replicate_methodselectmeanmean/median/first.
prepselectilluminaRaw-signal preprocessing applied before beta values are computed: 'illumina' (Illumina's own scaling — the default and the historical behaviour) / 'noob' (real out-of-band background correction) / 'swan' (subset-quantile within-array normalization, corrects Type I vs Type II design bias) / 'raw' (no preprocessing). Blank = 'illumina'.
sample_sheetfile (.csv, .tsv, .txt)—Optional sample sheet.
value_typeselectbeta"beta" or "m".
beta_filefile (.csv, .tsv, .txt)—Optional fallback path to a pre-processed beta matrix if IDAT loading fails.

Load Methyl Beta Matrix

loadMethylBeta

Load pre-processed beta-value matrix (CSV/TSV/TXT). Used when raw IDAT is unavailable. Auto-detects orientation. Vendor percent (0-100) auto-divided. EPIC v2 replicates collapsed.

Node LibraryMethylation
OutAnnData (samples × probes)
Parameters (8)
NameTypeDefaultDescription
beta_filefile (.csv, .tsv, .txt)—Beta matrix file (.csv/.tsv/.txt, .gz OK).
separatorselectautoauto/comma/tab.
orientationselectautoauto/probes_x_samples/samples_x_probes.
array_typeselectauto450k/epic/epicv2/mouse.
collapse_replicatescheckboxtrueCollapse EPIC v2 replicate probes (same CpG measured multiple times).
replicate_methodselectmeanAggregation for replicate probes: mean / median / first.
value_typeselectbeta"beta" or "m".
sample_sheetfile (.csv, .tsv, .txt)—Optional CSV/TSV whose row IDs match sample column names in the beta matrix.
Methyl QC node

Methyl QC

methylQC

Per-sample / per-probe call rates with a built-in QC plot. "label" or "filter" mode.

Node LibraryMethylation
InAnnData (methylation)
OutAnnData (obs/var QC columns), PNG image (optional)
Parameters (15)
NameTypeDefaultDescription
min_call_rate_samplenumber0.95Min sample call rate.
min_call_rate_probenumber0.95Min probe call rate.
modeselectlabel"label" or "filter".
show_plotcheckboxtrueRender a QC plot. Drawn before filtering, so failing samples stay visible.
plot_typeselectviolin"violin" (one panel per metric with the call-rate threshold line), "scatter" (call rate vs mean beta), or "histogram".
metricstextcall_rate,mean_beta,median_betaComma-separated metrics to plot. Add "probe_call_rate" for a probe-level panel.
color_byobs column—Sample metadata column for colouring. Empty falls back to QC_pass.
group_colorscolor map—Canonical categorical color overrides for the active color_by owner. Empty color_by uses obs['QC_pass']; null preserves the existing plot palette.
detection_conventionselectminfi_meanWhich detection-p convention plot_type='detection_p' renders. These are two DIFFERENT STATISTICS on the same data, each with its own cutoff, and the cutoffs are NOT interchangeable. 'minfi_mean' = per-sample MEAN of minfi's detectionP against a 0.01 sample cutoff (the F1000 workflow / ewastools idiom, barplot(colMeans(detP)) + abline(h=0.01)). 'poobah_fraction' = per-sample FRACTION of probes failing pOOBah at probe p>0.05, against a 0.05 sample cutoff (the sesame method with the wateRmelon pfilter / meffil sample rule). Ignored unless plot_type='detection_p'.
control_typestextBISULFITE CONVERSION I,BISULFITE CONVERSION IIComma-separated Illumina Control_Type names to panel in plot_type='control_strip'. Case-insensitive; unknown names are skipped with a warning; 'all' shows every type on the array. Ignored unless plot_type='control_strip'. Typical EPIC v2 types: BISULFITE CONVERSION I, BISULFITE CONVERSION II, EXTENSION, HYBRIDIZATION, NEGATIVE, NON-POLYMORPHIC, NORM_A, NORM_C, NORM_G, NORM_T, RESTORATION, SPECIFICITY I, SPECIFICITY II, STAINING, TARGET REMOVAL (the exact set is array-specific — the node reads it from the manifest).
snp_cmapselectRdYlBu_rColormap used only by plot_type='snp_heatmap'. Channel and PASS/FAIL diagnostic colors remain fixed because they encode physical or QC meaning. Options: RdYlBu_r, viridis, plasma, coolwarm, Spectral_r, Blues.
font_sizenumber—Matplotlib font size override. Empty = matplotlib default.
publication_qualitycheckboxfalse300 dpi output when on, else 96.
figsize_wnumber12Figure width (inches).
figsize_hnumber4Figure height (inches).
Methyl Normalize node

Methyl Normalize

methylNormalize

NaN-aware between-array quantile normalization in beta space, or no-op. Raw-signal NOOB/SWAN preprocessing belongs in Load IDAT.

Node LibraryMethylation
InAnnData
OutAnnData (normalized X, layers normalized_beta)
Parameters (2)
NameTypeDefaultDescription
methodselectquantilequantile or none. Retired bmiq/noob values fail with a migration message.
convert_to_mcheckboxfalsePlace M-values in X.
Methyl Filter node

Methyl Filter

methylFilter

Drop SNP-associated, sex chromosome, cross-reactive, low call rate probes. Mandatory before DMP.

Node LibraryMethylation
InAnnData
OutAnnData (probes filtered)
Parameters (8)
NameTypeDefaultDescription
remove_snp_probescheckboxtruers* + manifest SNP set.
remove_sex_chrcheckboxtrueDrop chrX/chrY.
remove_ch_probescheckboxtrueDrop 'ch.' non-CpG (CpH) probes — ChAMP filterNoCG parity.
remove_masked_probescheckboxfalseDrop probes flagged by the Zhou-lab MASK_general recommendation (needs var['mask_general']).
remove_cross_reactivecheckboxfalseBundled or user CSV blacklist.
cross_reactive_filefile (.csv, .tsv, .txt)—Optional probe_id CSV.
min_call_ratenumber0.95Drop probes below this.
max_detp_frac_failednumber0.0Maximum fraction of samples in which a probe may fail detection-p. 0 = drop a probe failing in any sample. Applied only when Load IDAT wrote the per-probe detection columns.
DMP Analysis node

DMP Analysis

dmpAnalysis

Differentially Methylated Position — vectorized Welch's t-test or limma-style moderated t-test. reference_group / test_group are dropdowns populated from obs categories (v0.9.0-beta.42+).

Node LibraryMethylation
InAnnData (filtered, normalized, with phenotype)
OutAnnData (uns["dmp_results"])
Parameters (9)
NameTypeDefaultDescription
condition_colobs column—obs column with two groups.
reference_groupobs value—Baseline group.
test_groupobs value—Comparison group.
testselectwelch"welch" or "moderated".
use_m_valuescheckboxtrueUse M-values.
covariatestext—Comma-separated obs columns to adjust for (age, sex, slide, cell-type proportions). Non-empty switches the node to a per-probe linear model that tests the condition coefficient. Numeric columns enter as-is; anything else is treated as a factor and treatment-coded. A column perfectly confounded with the condition is REFUSED with an explanation, never silently dropped.
blockobs column—A single obs column to hold constant — subject ID for paired samples, or batch / slide. Added to the design alongside covariates.
alphanumber0.05BH FDR threshold.
delta_beta_thresholdnumber0.1Min |delta_beta|.

Multi-Group DM (3+ groups)

methylMultiGroupDM

Multi-group (3+) differential methylation — omnibus moderated F-test (empirical-Bayes shrinkage, limma-style) plus a reference contrast per group. Pure numpy, not R limma. Runs the whole 3+ group comparison in one node and keeps every result. Leave downstream_group blank for the omnibus/union view (best for a 3-group heatmap) or pick a group to promote that pairwise contrast to Volcano/DMR. For exactly two groups use DMP Analysis.

Node LibraryMethylation
InAnnData (filtered, normalized, with a 3+ group phenotype)
OutAnnData (uns["multigroup_*"] + promoted uns["dmp_results"])
Parameters (7)
NameTypeDefaultDescription
condition_colobs column—obs column with 3 or more groups.
reference_groupobs value—Baseline for every contrast.
methodselectmoderated_f"moderated_f" (eBayes) or "plain_anova".
use_m_valuescheckboxtrueUse M-values.
alphanumber0.05BH FDR (omnibus + contrasts).
delta_beta_thresholdnumber0.1Min |delta_beta|.
downstream_groupobs value—View promoted downstream: blank = omnibus/union, or a group for that contrast.
DMR Analysis node

DMR Analysis

dmrAnalysis

Differentially Methylated Regions (Bumphunter-style) — groups adjacent same-direction DMPs within max_gap_bp.

Node LibraryMethylation
InAnnData (with DMP results, chr/pos in var)
OutAnnData (uns["dmr_results"])
Parameters (6)
NameTypeDefaultDescription
min_probesnumber3Min CpGs per DMR.
max_gap_bpnumber1000Max bp gap between probes.
require_same_directioncheckboxtrueAll probes agree in direction.
smooth_windownumber0Rolling-mean window (probes).
alphanumber0.05DMP FDR threshold.
delta_beta_thresholdnumber0.1Min |delta_beta| per probe.

DMP Feature Enrichment

dmpFeatureEnrichmentsince v0.15.0

Fisher enrichment of significant DMPs against local BED or cached ENCODE SCREEN cCRE classes, with BH FDR and a 95% CI forest plot. Uses non-significant probes from the actual DMP-tested universe as background. Custom BED and ENCODE modes are local/cache-only; genome-build mismatch fails and no implicit liftover or download occurs.

Node LibraryMethylation
InAnnData (with DMP results and chr/pos), Local BED3+ annotation
OutAnnData (managed enrichment table + provenance), PNG forest plot
Parameters (22)
NameTypeDefaultDescription
feature_sourceselectcustom_bedcustom_bed or encode_ccre; both require a local bed_path.
bed_pathfile (.bed, .gz, .tsv, .txt)—Required local or cached zero-based, half-open BED file.
feature_columntext—Optional zero-based class column or BED-header name; blank uses the source default.
feature_checksumtext—Optional expected SHA-256; mismatch fails closed.
genome_buildselect—Probe build from metadata, or hg19/hg38/mm10/mm39.
feature_genome_buildselect—BED build from its header; ENCODE defaults to hg38.
probe_position_baseselect1Illumina positions are normally one-based.
directionselectallall, hyper, hypo, or split.
alternativeselectgreaterFisher alternative: greater, less, or two-sided.
fdr_scopeselectper_directionBH correction per direction or globally.
fdr_alphanumber0.05BH FDR threshold.
forest_x_minnumber0.01Log-axis display minimum; stored statistics are not clipped.
forest_x_maxnumber100.0Log-axis display maximum; stored statistics are not clipped.
max_forest_rowsnumber60Rows rendered; full result table remains stored.
forest_all_colorcolor#4C78A8Forest point/interval color for the combined all-DMP direction.
forest_hyper_colorcolor#D64F4FForest point/interval color for hypermethylated DMP enrichment rows.
forest_hypo_colorcolor#3B75AFForest point/interval color for hypomethylated DMP enrichment rows.
titletextDMP genomic-feature enrichmentForest plot title.
dpinumber150Forest PNG DPI, clamped to 72-600.
feature_releasetext—Optional annotation release provenance.
feature_urltext—Optional provenance only; never fetched.
feature_download_datetext—Optional local annotation download date.
Methyl Visualization node

Methyl Visualization

methylVisualization

Genomic-coordinate Manhattan, capped/raw QQ and volcano, top/random/most-variable heatmap up to 10,000 probes, and direction-aware annotation distributions plus existing methylation plots.

Node LibraryMethylation
InAnnData (methylation)
OutPNG image
Plots (10)beta_distnorm_comparisonbeta_by_typeqq_plotmanhattanheatmapsample_pcavolcanocpg_boxplotfeature_distribution
Parameters (29)
NameTypeDefaultDescription
plot_typetextbeta_dist10 plot types: beta_dist, norm_comparison, beta_by_type, qq_plot, manhattan, heatmap, sample_pca, volcano, cpg_boxplot, feature_distribution.
n_top_probesnumber50Heatmap probes, up to 10,000.
selection_modeselecttop_dmptop_dmp, seeded random, or most_variable.
random_seednumber0Reproducible random-probe seed.
variability_metrictextsdSD or MAD for most-variable selection.
min_observed_fractionnumber0.8Minimum finite sample fraction per selected probe.
cluster_probe_limitnumber2000Disable row clustering above this count; sample clustering may continue.
dendrogramcheckboxtrueHeatmap only — cluster probes and samples hierarchically (clustermap). Off gives the plain rank-ordered heatmap.
color_bytext—Sample color column. Used by sample_pca (point colour) and, as a column colour bar, by the clustered heatmap.
beta_type_stageselectautobeta_by_type only — which matrix to draw: "auto" (normalized if present), "raw", or "normalized".
cpg_probestext—cpg_boxplot only — comma-separated probe ids. Empty auto-picks the top hits by adjusted p-value.
n_cpgnumber6cpg_boxplot only — how many CpGs to auto-pick (1–12). Ignored when cpg_probes is set.
group_bytext—cpg_boxplot only — grouping column. Empty falls back to the DMP condition column.
show_pointscheckboxtruecpg_boxplot only — overlay jittered per-sample points.
x_axis_modeselectgenomicManhattan cumulative genomic coordinates or legacy index.
y_axis_modeselectcappedQQ/Manhattan/volcano display: capped or raw; p-values stay unchanged.
y_capnumber—Optional explicit -log10(p) display cap.
feature_dist_splitselectall_vs_sigAll-vs-significant or Hyper/Hypo direction.
feature_dist_axisselectbothCpG island, TSS-distance proxy, or both.
feature_dist_y_modetextautoCount, within-direction %, or within-category 100%.
include_overall_panelcheckboxfalseShow overall Hyper/Hypo counts.
merge_shore_shelfcheckboxfalseMerge north/south shore and shelf categories.
feature_hyper_colortext#f97316Hyper bar color for direction-split feature_distribution panels, including number_of_dmps.
feature_hypo_colortext#2563ebHypo bar color for direction-split feature_distribution panels, including number_of_dmps.
all_colorcolor#94a3b8All-probe bar color for feature_distribution all_vs_sig mode.
sig_colorcolor#dc2626Significant-DMP bar color for feature_distribution all_vs_sig mode.
x_label_rotationnumber45feature_distribution annotation-panel X tick rotation in degrees, clamped to 0-90.
delta_beta_thresholdnumber0.1Volcano cutoff.
n_labelnumber10Top hits annotated (volcano).

Methyl DMR Locus Plot

methylDMRLocusPlotsince v0.9.0-beta.41

Genome-browser-style locus plot for one DMR — per-sample beta + group means, DMR span shaded.

Node LibraryMethylation
InAnnData (with DMR results)
OutPNG image
Parameters (12)
NameTypeDefaultDescription
dmr_ranknumber11 = top DMR by min_padj.
padding_bpnumber5000Flanking bases.
color_byobs column—Group column (same as DMP condition_col).
group_colorscolor map—Canonical categorical color overrides for the obs column selected by color_by. null preserves the existing locus palette.
chrtext—Manual chromosome.
startnumber—Manual region start (bp).
endnumber—Manual region end (bp).
figsize_wnumber10Figure width in inches.
figsize_hnumber5Figure height in inches.
alpha_pointnumber0.35Transparency (0-1) of per-sample beta-value dots. Lower = more transparent; useful when many samples overlap.
dmr_highlight_colorcolor#dc2626Color of the selected DMR span and boundary lines.
publication_qualitycheckboxfalseGenerate high-resolution (300 DPI) publication-quality figure.

Methyl GOmeth

methylGOmethsince v0.9.0-beta.43

CpG-bias-corrected gene-set enrichment for DMP results (gometh-style two-step). Removes the bias toward CpG-rich genes that plain hypergeometric gives. v0.9.0-beta.43+ — gene names lazy-downloaded from zhou-lab.

Node LibraryMethylation
InAnnData (with DMP results, gene var column)
OutAnnData (uns["methyl_gometh_results"]) + PNG
Parameters (15)
NameTypeDefaultDescription
gene_set_libraryselectKEGG_2021_Humangseapy/Enrichr library.
organismselecthuman"human" or "mouse".
directionselectallall, hyper, hypo, or split while preserving one tested-CpG universe.
bias_correctioncheckboxtrueApply gene-level Fisher correction.
methodselectwalleniusWhich CpG-bias correction to use: 'wallenius' (missMethyl gometh — probability weighting by probe count plus a Wallenius non-central hypergeometric term test; the default and the published method) or 'two_stage' (gene-level Fisher selection then a plain hypergeometric term test; the pre-v0.27.1 behaviour). Ignored when bias_correction is false.
gene_alphanumber0.05Gene-level BH FDR.
term_alphanumber0.05Term-level BH FDR.
min_overlapnumber2Min overlapping genes.
max_term_sizenumber1000Skip very generic terms.
top_nnumber15Top terms in bar plot.
figsize_wnumber10Bar plot width in inches.
figsize_hnumber8Bar plot height in inches.
term_sig_colorcolor#dc2626Bar color for terms passing the term-level FDR cutoff.
term_ns_colorcolor#94a3b8Bar color for terms that do not pass the term-level FDR cutoff.
publication_qualitycheckboxfalseRender at 300 DPI with publication font sizes (slower).