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.html 或 motifs/ 目录的初步结果,我将帮您解读细菌 6mA 的生物学意义!🦠🧬✨
📊 核心区别:4mC_5mC vs 5mC_5hmC
| 参数 | 检测的修饰类型 | 主要适用生物 | 生物学意义 |
|---|---|---|---|
4mC_5mC |
N4-甲基胞嘧啶 (4mC) + 5-甲基胞嘧啶 (5mC) | ✅ 细菌/古菌 | 限制修饰系统 (R-M)、噬菌体防御、基因调控 |
5mC_5hmC |
5-甲基胞嘧啶 (5mC) + 5-羟甲基胞嘧啶 (5hmC) | ✅ 哺乳动物/真核生物 | 表观遗传调控、干细胞分化、神经发育、癌症 |
🔑 关键结论:
- 细菌研究(如您的 Acinetobacter/Pedobacter)→ 选
4mC_5mC或6mA- 哺乳动物研究(如人类/小鼠)→ 选
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_5hmC、5mCG、pseU等真核/修饰选项(细菌中极少或不存在)
🔧 使用示例(您的项目)
方案 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” | ❌ pseU、inosine_* 等专为 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。避免使用真核/修饰专用参数,确保检测的生物学相关性。
需要我帮您生成 6mA 和 4mC_5mC 的批量运行脚本吗?🦠🧬✨