|
为什么要训练分类集?
因为不同实验的扩增区域不同,鉴定物种分类的精度不同,提前的训练可以让分类结果更准确。但目前ITS区域训练对结果准确性提高不大,可以不用训练。
(一)分类器(官方提供或者自己训练)
1.官方提供
https://docs.qiime2.org/2020.11/data-resources/ ,里面有Silva和Greengenes的全长和V4区的分类器供下载直接使用。
如下Greengenes的V4区的分类器(gg-13-8版本库,99%相似度为阈值)
wget -O "gg-13-8-99-515-806-nb-classifier.qza" "https://data.qiime2.org/2019.4/common/gg-13-8-99-515-806-nb-classifier.qza"
2. 自己训练
(1) 下载准备文件
* 参考OTU数据集(训练用)
wget -O "85_otus.fasta" "https://data.qiime2.org/2020.6/tutorials/training-feature-classifiers/85_otus.fasta"
* 参考数据集的物种分类信息(训练用)
wget -O "85_otu_taxonomy.txt"
"https://data.qiime2.org/2020.6/tutorials/training-feature-classifiers/85_otu_taxonomy.txt"
* 代表序列文件(rep-seqs.qza)(测试用)
wget -O "rep-seqs.qza"
"https://data.qiime2.org/2020.6/tutorials/training-feature-classifiers/rep-seqs.qza"
(2) 数据导入到 QIIME 2 对象中
* 导入上述参考OTU数据集:
qiime tools import --type 'FeatureData[Sequence]' --input-path 85_otus.fasta --output-path 85_otus.qza
可视化结果
qiime feature-table tabulate-seqs --i-data 85_otus.qza --o-visualization 85_otus.qzv
* 导入物种分类信息文件:
qiime tools import --type 'FeatureData[Taxonomy]'
--input-format HeaderlessTSVTaxonomyFormat
--input-path 85_otu_taxonomy.txt --output-path ref-taxonomy.qza
可视化结果
time qiime metadata tabulate --m-input-file ref-taxonomy.qza --o-visualization ref-taxonomy.qzv
(由于默认源格式需要标题,而 Greengenes 序列物种注释文件(85_otu_Taxonomy.txt)是一个不带标题的制表符分隔文件,因此必须指定 HeaderlessTSVTaxonomyFormat 作为源格式。)
(3) 提取参考序列(16S rRNA v4区域 | v3-v4区域)
v4区域 (515F-806R,约290bp) | v3-v4区域 (341F-805R,约460bp) |
time qiime feature-classifier extract-reads \ --i-sequences 85_otus.qza \ --p-f-primer GTGCCAGCMGCCGCGGTAA \ --p-r-primer GGACTACHVGGGTWTCTAAT \ --p-trunc-len 120 \ --p-min-length 100 \ --p-max-length 400 \ --o-reads ref-seqs.qza | qiime feature-classifier extract-reads \ --i-sequences 85_otus.qza \ --p-f-primer ACTCCTACGGGAGGCAGC \ --p-r-primer GGACTACHVGGGTWTCTAAT \ --p-trunc-len 100 \ --o-reads ref-seqs.qza |
输出对象: ref-seqs.qza: 提取的扩增截取之后区域。 可视化结果 qiime feature-table tabulate-seqs --i-data ref-seqs.qza --o-visualization ref-seqs.qzv |
【备注】
注释:-p-trunc-len参数只能用于比对序列被剪裁成相同长度或更短的长度时,才需要剪裁参考序列。成功双端合并序列的长度通常是可变的;未在特定长度截断的单端读取的长度也可能是可变的。对于双端和未经修剪的单端读的物种分类,我们建议对在适当的引物位置提取但不修剪为等长的序列进行分类器训练。
注释:用于提取扩增区域的引物序列应该是包含在引物结构中的实际DNA结合(即生物)序列。它不应包含任何非生物、非匹配的序列,例如接头、连接物或条形码序列。如果你不确定你的引物序列的哪个部分是真正的DNA结合区域,你应该咨询为你构建测序文库的工程师,你选择的测序中心,或者这些引物的原始文献。如果你的引物序列长度大于30nt,它们很可能包含一些非生物序列。
注释:上面的示例命令使用min-length和max-length参数,来排除使用这些引物远远超出预期长度分布的模拟扩增结果。这样的扩增产物可能是非特异性扩增,应该排除。如果您将此命令调整为自己的项目中使用,请确保选择适合标记基因,而不是此处使用序列或参数。min-length参数在trim-left和trunc-len参数之后应用,在max-length之前应用,因此一定要设置适当的设置,以防止有效序列被过滤掉。
【解释】
如下图,原始序列(1111561),通过v4引物,并-p-trunc-len 120之后,最终得到黄字区域。
--p-f-primer和--p-r-primer获得扩增区域
--p-trunc-len从获得扩增区域最左端,继续剪裁固定长度(此功能是获得相同长度)
-p-min-length和--p-max-length排除非特异扩增,进一步清洗结果(v4扩增片段290bp左右,将100bp以下和400bp以上的剔除)
(4) 生成分类器
使用下面的命令训练Naive Bayes分类器
# 基于筛选的指定区段,生成实验特异的分类集 time qiime feature-classifier fit-classifier-naive-bayes \ --i-reference-reads ref-seqs.qza \ --i-reference-taxonomy ref-taxonomy.qza \ --o-classifier classifier.qza 输入: ref-seqs.qza:筛选的指定区段,参考序列 ref-taxonomy.qza:物种分类 输出对象: classifier.qza(自己训练的分类器) |
(二)测试(rep-seqs.qza)
# 使用训练后的分类集对结果进行注释 time qiime feature-classifier classify-sklearn \ --i-classifier classifier.qza \ --i-reads rep-seqs.qza \ --o-classification taxonomy.qza 输入: classifier.qza:(自己训练的分类器) rep-seqs.qza:测试用代表序列 输出对象: taxonomy.qza: 生成物种注释结果 # 可视化注释的结果 time qiime metadata tabulate \ --m-input-file taxonomy.qza \ --o-visualization taxonomy.qzv # 输出可视化: taxonomy.qzv: 生成物种注释可视化网页结果 |
物种注释可视化结果示例:
感兴趣的朋友,可以拿自己训练和官方提供的2个分类器,结果比较。看看有什么差异?
【补充】
根据我们的经验,在Unite参考数据库上训练的Fungal ITS分类器不会从提取/修剪引物扩增区域的方法中改善结果。我们建议在完整参考序列上训练Unite分类器。此外,我们推荐使用“developer”版本序列(位于qiime兼容版本下载中),因为标准版序列的已经被修剪到指定区域(不包括可能存在于标准引物产生的扩增子中的侧翼rRNA基因的部分)。
【参考】
.qza/.qzv结果文件 可视化网站(https://view.qiime2.org)
https://docs.qiime2.org/2020.6/tutorials/feature-classifier/
QIIME 2教程. 13训练特征分类器TrainingFeatureClassifiers(2020.11)
科学网—QIIME 2序列处理情况汇总详解 - 刘树青的博文 (sciencenet.cn)
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-17 12:06
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社