Claude
Skills
Sign in
Back

bio-epitranscriptomics-m6anet-analysis

Included with Lifetime
$97 forever

Detects m6A modifications from Oxford Nanopore direct-RNA-sequencing (ONT DRS) signal data using m6Anet (Hendra 2022 *Nat Methods* 19:1590; multiple-instance-learning neural network over DRACH 5-mer signal). Covers the required upstream pipeline (Dorado / Guppy basecalling -> minimap2 transcriptome alignment with `-ax map-ont -uf -k14 --secondary=no` -> nanopolish eventalign with `--scale-events --signal-index` (m6Anet-required) plus `--summary` / `--threads` housekeeping -> m6anet dataprep -> m6anet inference), per-site vs per-read probability interpretation including the `mod_ratio` per-site stoichiometry column, the DRACH-only modeling constraint, minimum-coverage thresholds (20-50 reads per site for stable probability estimates), multi-condition comparison via xPore (Pratanwanich 2021 *Nat Biotechnol* 39:1394), Nanocompore (Leger 2021 *Nat Commun* 12:7198), ELIGOS (Jenjaroenpun 2021 *NAR* 49:e7), and Dorado native modification calling (RNA004 chemistry, 2024+), reference-transcriptome version pinning, the cDNA-vs-DRS chemistry distinction (cDNA-Nanopore CANNOT be used for modification detection), and orthogonal validation against MeRIP / GLORI. Use when calling m6A from ONT DRS without immunoprecipitation, choosing m6Anet vs xPore vs Nanocompore vs ELIGOS vs Dorado native, interpreting per-site `probability_modified` vs `mod_ratio` vs per-read modification probabilities, comparing methylation between conditions from ONT data, deciding between m6Anet for known DRACH sites and Dorado/Remora for genome-wide screening, pinning RNA002 vs RNA004 chemistry and basecaller model versions, or troubleshooting eventalign / dataprep failures.

General

What this skill does


## Version Compatibility

Reference examples tested with: m6anet 2.1+ (PyPI; project capitalisation `m6Anet`), nanopolish 0.14+, minimap2 2.26+, samtools 1.19+, Dorado 0.5+, xpore 2.1+, nanocompore 1.0.4+, ELIGOS 2 (GitHub `novoalab/Eligos2`), CHEUI (GitHub `comprna/CHEUI`), pandas 2.2+, pyranges 0.0.129+, pysam 0.22+.

Before using code patterns, verify installed versions match. If versions differ:
- Python: `pip show m6anet` then `m6anet --help`, `m6anet dataprep --help`, `m6anet inference --help`
- CLI: `nanopolish --version`, `minimap2 --version`, `dorado --version`

If `m6anet` is invoked as a hyphenated command (`m6anet-dataprep`), the v1.x CLI is installed; v2.x uses subcommand syntax (`m6anet dataprep`). Pin m6anet version explicitly in any reproducible analysis. Dorado modification models are versioned independently of the basecaller (`[email protected]`, `m6A_DRACH@v1`, ...); model versions are NOT directly comparable across releases. RNA002 vs RNA004 nanopore chemistry use different signal characteristics — models trained on RNA002 do NOT transfer to RNA004.

# m6Anet Direct-RNA m6A Detection

**"Detect m6A from my Nanopore direct RNA data without IP"** -> Run the full pipeline from POD5 / FAST5 signal to per-site m6A modification probabilities: Dorado basecalling -> minimap2 alignment to TRANSCRIPTOME (not genome) with `-ax map-ont -uf -k14` -> nanopolish eventalign with `--scale-events --signal-index` (the m6Anet-required pair) -> m6anet dataprep -> m6anet inference. Report per-site `probability_modified` (model posterior that any reads at the site are modified) AND `mod_ratio` (per-site stoichiometry, the fraction of reads called modified) with coverage. CRITICAL: m6Anet is DRACH-only — non-DRACH sites are invisible to the model; cDNA-Nanopore data CANNOT be used (PCR erases the signal); RNA002 and RNA004 chemistry require different model versions.

- CLI: `dorado basecaller [email protected] --emit-fastq pod5/` -- modern RNA004 basecalling
- CLI: `minimap2 -ax map-ont -uf -k14 --secondary=no transcriptome.fa reads.fastq` -- transcriptome alignment
- CLI: `nanopolish eventalign --reads reads.fastq --bam aligned.bam --genome transcriptome.fa --scale-events --signal-index` -- signal-to-event (m6Anet-required flag pair)
- CLI: `m6anet dataprep --eventalign eventalign.txt --out_dir m6anet_data/` -- feature extraction
- CLI: `m6anet inference --input_dir m6anet_data/ --out_dir m6anet_results/` -- per-site probability + mod_ratio

## The Single Most Important Modern Insight -- m6Anet scores per-site DRACH probabilities, but reliability depends on coverage and the model is DRACH-only

Hendra 2022 *Nat Methods* 19:1590 recommends a minimum 20-50 reads per site for stable per-site `probability_modified` estimates; sites with <20 reads at probability_modified > 0.9 are likely false positives driven by per-read noise. The per-site `mod_ratio` column (the fraction of reads called modified at the site) is the stoichiometry-aware signal — informative even when per-site `probability_modified` is borderline. CRITICAL: m6Anet only scores DRACH 5-mers (D=A/G/U, R=A/G, A=methylated, C=C, H=A/C/U); non-DRACH sites are invisible to the model regardless of methylation status. For non-DRACH discovery, switch to Dorado / Remora modification basecallers (genome-wide; pin the modification-model version explicitly) or to xPore / Nanocompore (which compare two conditions without an a-priori 5-mer restriction). cDNA-Nanopore data cannot be used for m6Anet because PCR amplification erases the modification signal — only direct-RNA-sequencing (ONT DRS, kit SQK-RNA002 or SQK-RNA004) preserves the modification signal in the ionic current. Cross-method comparison: m6Anet ~0.51 recall on the Pratanwanich/Hendra synthetic-mix benchmark at >=10% modification / >=10x coverage; Dorado RNA004 recall is markedly higher (reported ~0.9 at the same threshold in a 2024-2025 RNA004 benchmark) but with higher per-site FDR (~40% at low-prevalence sites) — the two figures are NOT from a head-to-head test set, so treat as bounds rather than a comparable pair. The systematic 10-tool benchmark Zhong 2023 *Nat Commun* 14:1906 documents broader precision-vs-recall tradeoffs. The right modern pipeline is Dorado native for first-pass discovery -> m6Anet (or CHEUI) for filtering high-confidence subset -> GLORI for orthogonal stoichiometry validation at named loci.

## Algorithmic Taxonomy

| Tool | Mechanism | RNA002 | RNA004 | Strength | Fails when |
|------|-----------|--------|--------|----------|------------|
| m6Anet (Hendra 2022 *Nat Methods* 19:1590) | Multiple-instance-learning NN over DRACH 5-mer ionic-current features from nanopolish eventalign | YES | YES (recent) | Best-in-class for DRACH m6A on RNA002; generalises across cell lines | DRACH-only; requires nanopolish eventalign upstream |
| CHEUI (Acera Mateos 2024 *Nat Commun* 15:3899) | Deep CNN on ionic-current signals predicting m6A AND m5C in single molecules | YES | Limited | Simultaneous m6A + m5C calling; single-molecule co-occurrence | Newer; smaller user base; m5C less validated than m6A |
| Nanocompore (Leger 2021 *Nat Commun* 12:7198) | 2-component GMM comparing current + dwell-time between two samples | YES | Limited | Generic (any modification with signal change); replicate-aware | Requires modification-free control sample (WT vs KO or IVT) |
| xPore (Pratanwanich 2021 *Nat Biotechnol* 39:1394) | Bayesian multi-sample GMM; estimates fraction-modified per site per sample | YES | Limited | No matched WT/KO needed; multi-sample design; replicate support | Per-site coverage threshold dropout |
| ELIGOS / Eligos2 (Jenjaroenpun 2021 *NAR* 49:e7) | Compares error profile between native dRNA and unmodified controls (IVT) | YES | Limited | General-purpose; validated on yeast rRNA (95% recall); both error AND signal modes | Requires IVT or cDNA-seq control; modification-type-blind |
| EpiNano (Liu H et al. 2019 *Nat Commun* 10:4079) | Basecalling-error features as classifier features for m6A | Albacore 2.1.7 only | NO | Historical relevance; the original error-feature approach | Tied to obsolete Albacore basecaller; do NOT use for new analyses |
| Tombo (`ont-tombo`; Stoiber 2017 bioRxiv) | Signal-level model comparison; de novo against canonical RNA model OR sample-compare | YES | Limited | First general modification-detection tool; multi-modification | Less actively maintained since 2020; modern Dorado / m6Anet preferred |
| Dorado native modification calls (ONT; RNA004 chemistry, 2024+) | ONT basecaller with built-in modification calling (m6A, Ψ, m5C, inosine) | Limited (ONT focus shifted to RNA004; verify against current Dorado release notes) | YES | Modification calls in same output as base calls; per-read probabilities; first-pass discovery | Per-site precision lower than m6Anet at borderline sites; FDR ~40% at low-prevalence sites; model-version-pinning mandatory |
| m6ABasecaller / m6Aiso / mAFiA / m6ATM (2023-2024) | Newer ML approaches integrated with Dorado / basecaller | Mixed | Mixed | Active development; some integrated with Dorado | Less benchmarked; verify model lineage before reporting |
| DRUMMER | Pipeline integrating multiple modification tools | YES | Limited | Convenience wrapper | Inherits each tool's limitations |
| DiffErr | Error-rate differential between samples | YES | Limited | Lightweight differential | Modification-type-blind |

## Decision Tree by Scenario

| Scenario | Recommended | Why wrong choices fail |
|----------|-------------|------------------------|
| RNA002 chemistry, single-sample m6A discovery, DRACH context | m6Anet for first-pass; CHEUI for cross-check at high-confidence | EpiNano tied to obsolete basecaller; Tombo less maintained |
| RNA004 chemistry, first-pass screening | Dorado native modification calling -> m6Anet (or CHEUI) for filtering high-confidence subset | Single Dorado pass has ~40% FDR at low-prevalence sites |
| Two-condition comparison (WT vs KO) | xPore (Baye

Related in General