高分辨率的样本推断算法,可从扩增子测序数据中精确识别序列变异(ASV),替代传统的 OTU 聚类方法
- 类别: denoising
- 版本: 1.30
- 难度: intermediate
- 最后更新: 2026-03-18
# R/Bioconductor 安装
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("dada2")
# 或使用 QIIME 2 插件
qiime dada2 denoise-paired ...library(dada2)
filtFs <- filterAndTrim(fnFs, filtFs, truncLen=c(240,0))
errF <- learnErrors(filtFs)
dadaFs <- dada(filtFs, err=errF)
mergers <- mergePairs(dadaFs, filtFs, dadaRs, filtRs)
seqtab <- makeSequenceTable(mergers)
16S denoising ASV amplicon R bioconductor
# R 语言使用
library(dada2)
# 1. 读取文件路径
fnFs <- sort(list.files("fastq/", pattern="_R1_001.fastq.gz", full.names=TRUE))
fnRs <- sort(list.files("fastq/", pattern="_R2_001.fastq.gz", full.names=TRUE))
# 2. 质量过滤
filtered <- filterAndTrim(fnFs, filtFs, fnRs, filtRs,
truncLen=c(240,200),
maxN=0, maxEE=c(2,2),
truncQ=2, rm.phix=TRUE,
compress=TRUE, multithread=TRUE)
# 3. 学习错误模型
errF <- learnErrors(filtFs, multithread=TRUE)
errR <- learnErrors(filtRs, multithread=TRUE)
# 4. 去重
derepFs <- derepFastq(filtFs)
derepRs <- derepFastq(filtRs)
# 5. 去噪
dadaFs <- dada(derepFs, err=errF, multithread=TRUE)
dadaRs <- dada(derepRs, err=errR, multithread=TRUE)
# 6. 合并配对
mergers <- mergePairs(dadaFs, derepFs, dadaRs, derepRs)
# 7. 构建 ASV 表
seqtab <- makeSequenceTable(mergers)
# 8. 去嵌合体
seqtab.nochim <- removeBimeraDenovo(seqtab, method="consensus")
# 9. 分类注释
taxa <- assignTaxonomy(seqtab.nochim, "silva_nr99_v138.1_train_set.fa.gz")| 函数 | 说明 |
|---|---|
filterAndTrim() |
质量过滤和修剪 |
learnErrors() |
学习测序错误模型 |
derepFastq() |
快速去重 |
dada() |
核心去噪算法 |
mergePairs() |
合并配对端 |
makeSequenceTable() |
构建 ASV 表 |
removeBimeraDenovo() |
去嵌合体 |
assignTaxonomy() |
分类注释 |
- 📖 官方文档: https://benjjneb.github.io/dada2/
- 🎓 教程: https://benjjneb.github.io/dada2/tutorial.html
- 📄 论文: Callahan et al. (2016) DADA2: High-resolution sample inference from Illumina amplicon data. Nature Methods. DOI: 10.1038/nmeth.3869
- QIIME 2
- DEBLUR
- UNOISE3