Daily Archives: 2026年5月21日

Cheking modBAM 文件格式 and 🔬Dorado `–modified-bases` 参数详解(中文版)

modBAM 文件格式完全正确!

您看到的结果 正是预期的正确格式,只是 Dorado 的标签语法与您搜索的关键词略有不同。


🔍 关键发现:MM:Z:A+a.,... 就是 6mA 标签!

您搜索 MM:Z:6mA 无结果,但 MM:Z: 有结果,这是因为 Dorado 使用单字母代码表示修饰类型

✅ 您的输出: MM:Z:A+a.,0,1,9,11,0,0,3,3,1,0,0,0,6,1,7,1,0,7,13,2,...
                │ │ ││
                │ │ │└─ 修饰概率列表 (逗号分隔)
                │ │ └─── 分隔符
                │ └───── 修饰代码: 'a' = 6mA (N6-methyladenine)
                └─────── 基础碱基: 'A' = Adenine, '+' = 正链

📋 Dorado 修饰代码对照表

单字母代码 修饰类型 全称 适用生物
a 6mA N6-methyladenine ✅ 细菌主导
m 5mC 5-methylcytosine 真核/部分细菌
4c 4mC N4-methylcytosine ✅ 细菌
5m 5mC 5-methylcytosine 通用
h 5hmC 5-hydroxymethylcytosine 哺乳动物

🔑 结论MM:Z:A+a.,... 中的 a 就是 6mA!您的文件完全正确 ✅


🔧 配套标签:ML:B:C 存储修饰概率

您输出中的 ML:B:C,247,200,16,109,... 是对应的 修饰概率数组(0-255 整数,需除以 255 转为 0-1 概率):

# 示例:第一个位点的 6mA 概率 = 247/255 ≈ 96.9%
# 第二个位点 = 200/255 ≈ 78.4%

✅ 验证您的 modBAM 完全合格

# 1. 检查是否含 @SQ 头(已比对标志)
samtools view -H An6_6mA_mapped.mod.bam | grep "^@SQ" | head -3
# ✅ 应输出参考序列信息

# 2. 确认含 6mA 修饰标签(用正确代码 'a')
samtools view An6_6mA_mapped.mod.bam | grep "MM:Z:.*+a\." | head -3
# ✅ 应输出含 "A+a." 或 "T+a." 的行

# 3. 统计 6mA 位点数量
samtools view An6_6mA_mapped.mod.bam | grep -c "MM:Z:.*+a\."
# ✅ 应输出 >0 的数字

# 4. 用 modkit 快速验证(如果已安装)
modkit summary An6_6mA_mapped.mod.bam --reference ref.fasta 2>/dev/null | head -10
# ✅ 应输出 6mA 统计摘要

🚀 现在可以运行 methylong 了!

您的 modBAM 完全符合 nf-core/methylong 的输入要求。使用以下命令:

1️⃣ 创建 samplesheet(使用精确样本名)

# samplesheet_6mA.csv
group,sample,path,ref,method
An6,An6,/mnt/md1/DATA/Data_Tam_DNAseq_2026_An6_BG5/An6_6mA_mapped.mod.bam,/mnt/md1/DATA/Data_Tam_DNAseq_2026_An6_BG5/An6_unicycler_normal/assembly.fasta,ont
BG5,BG5,/mnt/md1/DATA/Data_Tam_DNAseq_2026_An6_BG5/BG5_6mA_mapped.mod.bam,/mnt/md1/DATA/Data_Tam_DNAseq_2026_An6_BG5/BG5_unicycler_normal/assembly.fasta,ont

2️⃣ 运行 methylong(跳过 basecalling)

#!/bin/bash
# run_methylong_final.sh

set -euo pipefail

echo "🚀 运行 methylong (使用预生成 6mA modBAM)..."

nextflow run nf-core/methylong \
  -r 2.0.0 \
  -profile docker \
  --input samplesheet_6mA.csv \
  --outdir methylome_out_6mA \
  --skip_basecalling \          # ⭐ 关键: 跳过内部 Dorado
  -resume \
  -work-dir methylome_out_6mA/work

echo "✅ 提交完成!"

📊 预期输出结构

methylome_out_6mA/
├── multiqc_report.html          # 📊 综合质控报告
├── methylation_calls/
│   ├── An6.6mA.bedMethyl.gz    # 🧬 6mA 位点 (bedMethyl 格式)
│   ├── An6.6mA.bigWig          # 🎨 IGV 可视化轨道
│   └── BG5.*                   # 同上
├── motifs/
│   ├── An6_6mA_motifs.tsv      # 🎯 富集的 6mA 基序 (如 GATC)
│   └── BG5_6mA_motifs.tsv
├── alignment/                   # (跳过,因已提供 modBAM)
└── pipeline_info/              # 🔬 可重复性元数据

🇩🇪 德语快速参考(Deutsch)

# ✅ 您的 modBAM 格式正确:
• MM:Z:A+a.,... → 'a' = 6mA (Dorado 单字母代码)
• ML:B:C,... → 修饰概率 (0-255 整数)
• @SQ 头 → 已比对到参考基因组

# 🔧 验证命令:
samtools view file.bam | grep "MM:Z:.*+a\." | head -3  # 应输出 6mA 标签

# 🚀 运行 methylong:
nextflow run nf-core/methylong \
  --input samplesheet_6mA.csv \
  --skip_basecalling -resume ...

# 📊 预期输出:
• methylation_calls/*.bedMethyl.gz → 碱基级 6mA 调用
• motifs/*_6mA_motifs.tsv → 细菌限制修饰基序 (如 GATC)

⚠️ 如果仍需运行 4mC 分析

如需同时分析 4mC,重复相同流程:

# 1. 用 4mC_5mC 模型生成 modBAM
dorado basecaller \
  --modified-bases 4mC_5mC \
  --emit-moves --device cuda:0 \
  --reference ref.fasta \
  sup@v3.0.0 ./pod5_pass/ | samtools view -b - > sample_4mC_5mC.mod.bam

# 2. 创建独立 samplesheet_4mC.csv
# 3. 运行 methylong with --skip_basecalling
# 4. 后期用 bedtools 或自定义脚本合并 6mA + 4mC 结果

您的系统现在完全准备好进行甲基化分析了! 🎉

请运行上述 run_methylong_final.sh 脚本,然后分享 methylome_out_6mA/multiqc_report.htmlmotifs/ 目录的初步结果,我将帮您解读细菌 6mA 的生物学意义!🦠🧬✨



📊 核心区别:4mC_5mC vs 5mC_5hmC

参数 检测的修饰类型 主要适用生物 生物学意义
4mC_5mC N4-甲基胞嘧啶 (4mC) + 5-甲基胞嘧啶 (5mC) 细菌/古菌 限制修饰系统 (R-M)、噬菌体防御、基因调控
5mC_5hmC 5-甲基胞嘧啶 (5mC) + 5-羟甲基胞嘧啶 (5hmC) 哺乳动物/真核生物 表观遗传调控、干细胞分化、神经发育、癌症

🔑 关键结论

  • 细菌研究(如您的 Acinetobacter/Pedobacter)→ 选 4mC_5mC6mA
  • 哺乳动物研究(如人类/小鼠)→ 选 5mC_5hmC
  • 不要混用:用 5mC_5hmC 分析细菌会漏检关键的 4mC/6mA 信号!

📋 所有 --modified-bases 选项详解

--modified-bases  A space separated list of modified base codes. 
Choose from: pseU, inosine_m6A, 5mCG, pseU_2OmeU, inosine_m6A_2OmeA, 
5mCG_5hmCG, 4mC_5mC, 2OmeG, 5mC_5hmC, 5mC, m5C, m5C_2OmeC, 6mA, m6A_DRACH, m6A

🔹 胞嘧啶修饰(Cytosine Modifications)

选项 全称 化学结构 主要生物 应用场景
5mC 5-methylcytosine 5-甲基胞嘧啶 真核 + 部分细菌 通用甲基化检测
4mC_5mC N4-methylcytosine + 5-methylcytosine N4-甲基 + 5-甲基胞嘧啶 细菌主导 细菌限制修饰系统分析
5mC_5hmC 5-methylcytosine + 5-hydroxymethylcytosine 5-甲基 + 5-羟甲基胞嘧啶 哺乳动物主导 表观遗传、癌症、神经科学
5mCG 5mC in CpG context CpG 位点的 5mC 哺乳动物 CpG 岛甲基化分析
5mCG_5hmCG 5mC + 5hmC in CpG context CpG 位点的 5mC + 5hmC 哺乳动物 高精度表观调控研究
m5C alternative notation for 5mC 同 5mC 通用 兼容旧版流程
m5C_2OmeC 5mC + 2′-O-methylcytosine 5-甲基 + 2′-O-甲基胞嘧啶 真核 + 病毒 RNA 修饰或特殊 DNA 修饰

🔹 腺嘌呤修饰(Adenine Modifications)

选项 全称 化学结构 主要生物 应用场景
6mA N6-methyladenine N6-甲基腺嘌呤 细菌主导 细菌限制修饰、毒力调控、复制起始
m6A alternative notation for 6mA 同 6mA 通用 兼容旧版流程
m6A_DRACH m6A in DRACH motif DRACH 基序中的 6mA 真核 (RNA) RNA m6A 修饰检测(需配合转录组)
inosine_m6A Inosine + m6A 次黄嘌呤 + N6-甲基腺嘌呤 特殊场景 编辑位点 + 甲基化联合分析
inosine_m6A_2OmeA Inosine + m6A + 2′-O-methyladenine 三重修饰 特殊场景 高级转录组分析

🔹 尿嘧啶/核糖修饰(Uracil/RNA Modifications)

选项 全称 化学结构 主要生物 应用场景
pseU Pseudouridine 假尿嘧啶 RNA 主导 转录后修饰、tRNA/rRNA 分析
pseU_2OmeU Pseudouridine + 2′-O-methyluridine 假尿嘧啶 + 2′-O-甲基尿嘧啶 RNA 复杂 RNA 修饰谱
2OmeG 2′-O-methylguanosine 2′-O-甲基鸟苷 RNA RNA 甲基化分析

🎯 针对您项目的推荐选择

您的样本:Acinetobacter harbinensis (An6) + Pedobacter cryoconitis (BG5)

修饰类型 推荐参数 理由
6mA(首选) --modified-bases 6mA 细菌限制修饰系统核心修饰,调控毒力/防御
4mC(备选) --modified-bases 4mC_5mC 部分细菌使用 4mC 作为限制酶识别标记
组合分析 分两次运行:6mA + 4mC_5mC 全面覆盖细菌甲基化谱,结果后期合并

不推荐5mC_5hmC5mCGpseU 等真核/修饰选项(细菌中极少或不存在)


🔧 使用示例(您的项目)

方案 1: 仅检测 6mA(最常用)

dorado basecaller \
  --modified-bases 6mA \
  --emit-moves \
  --device cuda:0 \
  sup@v3.0.0 \
  ./An6_pod5_pass/ \
  > An6_6mA.mod.bam

方案 2: 检测 4mC + 5mC(如需全面分析)

dorado basecaller \
  --modified-bases 4mC_5mC \
  --emit-moves \
  --device cuda:0 \
  sup@v3.0.0 \
  ./An6_pod5_pass/ \
  > An6_4mC_5mC.mod.bam

方案 3: 分两次运行 + 后期合并(推荐)

# 第一轮: 6mA
dorado basecaller --modified-bases 6mA ... > An6_6mA.mod.bam

# 第二轮: 4mC_5mC
dorado basecaller --modified-bases 4mC_5mC ... > An6_4mC_5mC.mod.bam

# 后期用 bedtools 或自定义脚本合并结果

🇩🇪 德语快速参考(Deutsch)

# 🔑 核心区别:
• 4mC_5mC → 细菌 (4mC + 5mC) → 限制修饰系统
• 5mC_5hmC → 哺乳动物 (5mC + 5hmC) → 表观遗传调控

# 🎯 您的项目 (细菌):
✅ 首选: --modified-bases 6mA
✅ 备选: --modified-bases 4mC_5mC
❌ 避免: 5mC_5hmC, pseU, inosine_* (真核/修饰)

# 🔧 命令示例:
dorado basecaller \
  --modified-bases 6mA \
  --emit-moves --device cuda:0 \
  sup@v3.0.0 ./pod5_pass/ > output.mod.bam

⚠️ 常见误区与注意事项

误区 正确理解
“5mC_5hmC 也能检测细菌甲基化” ❌ 细菌中 5hmC 极少,会漏检关键的 6mA/4mC
“组合参数越多越好” ❌ 多修饰模型可能降低单修饰检测灵敏度;建议分次运行
“模型名称可以随意组合” ❌ 必须使用文档列出的预训练组合,如 4mC_5mC,不能自定义 6mA_4mC
“RNA 修饰参数可用于 DNA” pseUinosine_* 等专为 RNA 设计,不适用于细菌基因组 DNA

📊 修饰类型与生物系统对应速查表

🦠 细菌/古菌:
   ├── 6mA          ← 最常用 (限制修饰系统)
   ├── 4mC_5mC      ← 备选 (部分菌种)
   └── 5mC          ← 少数菌种

🧬 哺乳动物/真核:
   ├── 5mC_5hmC     ← 最常用 (表观遗传)
   ├── 5mCG_5hmCG   ← 高精度 (CpG 位点)
   └── 5mC          ← 基础检测

🧫 RNA 修饰:
   ├── pseU         ← 假尿嘧啶
   ├── inosine_m6A  ← 编辑 + 甲基化
   └── 2OmeG        ← 2'-O-甲基鸟苷

🔍 如何验证修饰检测是否成功?

# 1. 检查 BAM 文件是否含修饰标签
samtools view An6_6mA.mod.bam | head -50 | grep -o "MM:Z:[^ ]*" | sort -u
# ✅ 应输出: MM:Z:6mA,...

# 2. 用 modkit 统计修饰频率
modkit pileup An6_6mA.mod.bam --reference ref.fasta output.bed
modkit summary output.bed

# 3. 检查基序富集 (细菌关键验证)
# 在 methylong 输出中查看 motifs/An6_6mA_motifs.tsv
# ✅ 应看到细菌常见基序: GATC, CCWGG, GANTC 等

总结:对于您的细菌甲基化研究,优先使用 6mA,如需更全面分析可补充运行 4mC_5mC。避免使用真核/修饰专用参数,确保检测的生物学相关性。

需要我帮您生成 6mA4mC_5mC 的批量运行脚本吗?🦠🧬✨