首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SMURF流程之q2-sidle(二)-- 序列重建

SMURF流程之q2-sidle(二)-- 序列重建

作者头像
用户1075469
发布于 2021-03-11 06:54:09
发布于 2021-03-11 06:54:09
50000
代码可运行
举报
文章被收录于专栏:科技记者科技记者
运行总次数:0
代码可运行

继续前面的文档学习,地址在这里啦!官方文档‎ SMURF 算法的核心是基于基于 kmer 的短区域重建到全长框架中。有两个步骤,首先是ASV在单个区域基于kmer进行比对,然后完整的序列集组装成重建的计数表。

区域比对

第一步是每个区域把序列比对到数据库,使用 align-regional-kmers 命令,我们前面使用--kmer-db-fp选项设置了数据库,使用 --rep-seq-fp选项传递ASV序列,最后是区域定义,来自前面你给区域起的别名,要完全一致。比对是一个开心的可并行任务,我们可以通过多多线程提升性能(--p-n-workers参数)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 继续循环解决啦
for i in {1..6}
 do
qiime sidle align-regional-kmers \
--i-kmers ../database/../database/sidle-db-P${i}-100nt-kmers.qza \
--i-rep-seq P${i}_rep-seq-100nt.qza \
--p-region P${i} \
--p-n-workers 4 \
--o-regional-alignment alignment/P${i}_align-map.qza
done

‎这将输出一个对齐文件和任何不会与数据库对齐的 ASV 序列,以保留您自己的记录。‎另外,你可以设置与参考序列不同的长度,使用--p-max-mismatch参数(2-130)ps.我有点怀疑这样做有没有问题呀!‎您可能会发现,如果您有更长的 kmers,您可能需要相应地增加此参数。较低的(更严格的)值将增加丢弃的序列的数量,而较高的数字可能意味着您的匹配项质量较低。您可能会发现,如果您有更长的 kmers,您可能需要相应地增加此参数。较低的(更严格的)值将增加丢弃的序列的数量,数字越高可能意味着匹配项的质量越低。‎

表重建

这步里,首先,是区域片段重新比对到完整的数据库序列,然后相对丰度使用一个优化的步骤进行计算,最后生成重建的计数表。per-nucleotide-error参数和maximum-mismatch参数,决定了比对和错配的比例,Ps.我的理解是过程中会产生错误累积。min-abundance决定了要排队的数据库序列的最小丰度,这个参数在某种意义上取决于测序深度和你的偏好。最后,还是可以通过多多线程提升性能(--p-n-workers参数)。下面就是重建命令了,有点长呀:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
qiime sidle reconstruct-counts \
 --p-region P1 \
  --i-kmer-map ../database/sidle-db-P1-100nt-map.qza \
  --i-regional-alignment P1_align-map.qza \
  --i-regional-table P1_table-100nt.qza \
 --p-region P2 \
  --i-kmer-map ../database/sidle-db-P2-100nt-map.qza \
  --i-regional-alignment P2_align-map.qza\
  --i-regional-table P2_table-100nt.qza \
   --p-region P3 \
  --i-kmer-map ../database/sidle-db-P3-100nt-map.qza \
  --i-regional-alignment P3_align-map.qza \
  --i-regional-table P3_table-100nt.qza \
   --p-region P4 \
  --i-kmer-map ../database/sidle-db-P4-100nt-map.qza \
  --i-regional-alignment P4_align-map.qza \
  --i-regional-table P4_table-100nt.qza \
   --p-region P5 \
  --i-kmer-map ../database/sidle-db-P5-100nt-map.qza \
  --i-regional-alignment P5_align-map.qza \
  --i-regional-table P5_table-100nt.qza \
     --p-n-workers 8 \
 --o-reconstructed-table league_table.qza \
 --o-reconstruction-summary league_summary.qza \
 --o-reconstruction-map league_map.qza

好像这步是超级消耗资源的,我设置了个8核心,资源消耗竟然是*5的,用上了全部40核心的资源。。。不过几分钟就结束了,那么如果设置1个核心,可能是需要8倍时间的。该命令将生成一个计数表、一个包含有关映射到某个区域的数据库Kmer数量以及ASV ID的详细信息的文件,以及一个需要进行分类重建的映射。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#可视化看下
qiime feature-table summarize \
 --i-table reconstruction/league_table.qza \
 --o-visualization reconstruction/league_table.qzv

这里我是用了一个样本,133个汇总的feature(也就是以前的OTU),40598条等效数据库序列。您会注意到一些功能ID包含|字符,例如,1764594|195532|4471854。这意味着这两个数据库的序列在重建过程中不能被解析,因此我们将该序列分配给这两个区域。重建中使用的区域越多,就越有可能准确地重建数据库序列。第二个输出是summary。总结可以用来评估重建的质量;更多细节见SMURF文章原稿。默认情况下,摘要会将退化kmer视为唯一序列;您可以使用count-degenerates参数更改行为;如果为false,则仅当kmer属于唯一参考序列时才会对其进行计数。您可以通过将元数据制表来查看摘要。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 汇总摘要
qiime metadata tabulate \
 --m-input-file league_summary.qza \
 --o-visualization league_summary.qzv

几个V区的计数明细和汇总

物种重建

重建特征表之后,需要重建物种,特别的,如果多个数据库序列不能得到处理时。该功能获取重建过程中生成的数据库映射和与数据库相关联的分类,并返回重建的分类。有三种可能,第一,有相同的全部物种分类信息;第二,在一些点上有区别;第三,前面一直相同,直到一个缺失。相同的情况最简单,二取一即可。有些情况下,可能物种分类在高水平上(这里是种)会不一样,例如下面这个,这种情况下会取到属,而不是种。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1236    k__Bacteria; p__Firmictues; c__Clostridia; o__Clostridiales; f__Lachnospiraceae; g__Blautia; s__obeum
1237    k__Bacteria; p__Firmictues; c__Clostridia; o__Clostridiales; f__Lachnospiraceae; g__Roseburia; s__

--database 参数允许选择一个数据库进行,如 greengenes, silva 或不提供。如果是greengenes 或 silva,一些专门的数据库清理将会自动进行,特别是缺失和不明处理参数。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Entrobacteriales; f__Enterobacteriaceae; g__; s__

将会整理成:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Entrobacteriales; f__Enterobacteriaceae; g__unsp. f. Enterobacteriaceae; s__unsp. f. Enterobacteriaceae

这里我们用的是greengenes,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
qiime sidle reconstruct-taxonomy \
 --i-reconstruction-map league_map.qza \
 --i-taxonomy 。../database/sidle-db-taxonomy.qza \
 --p-database 'greengenes' \
 --p-define-missing 'inherit' \
 --o-reconstructed-taxonomy ./league_taxonomy.qza

进化树重建

最后一步便是重建进化树了,如果不能解析参考序列,则不能简单地从数据库继承系统发育树。因此,我们需要重建一个新的系统树。我们以两种方式处理序列:

  • 任何可以完全解析的数据库序列都可以保持其在参考树中的位置。
  • 无法解析的序列需要以某种方式进行处理。

我们可以随机选择一个序列来映射重建的区域。然而,当有几个序列组合在一起时,这可能不起作用。因此,如果我们不能解析数据库序列,我们可以从组合的数据中计算一个融合序列,在我们能够绘制的区域中提取它们,然后这些一致的序列可以被插入到使用SEPP或类似的系统发育参考主干中(必须使用相同的数据库版本)。

因此,第一步,对不能解析的序列重建共识序列,这一步官方教程的结果应该有问题,看报错信息进行了更正。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
qiime sidle reconstruct-fragment-rep-seqs \
 --p-region P1 \
  --i-kmer-map ../database/sidle-db-P1-100nt-map.qza \
 --p-region P2 \
  --i-kmer-map ../database/sidle-db-P2-100nt-map.qza \
   --p-region P3 \
  --i-kmer-map ../database/sidle-db-P3-100nt-map.qza \
   --p-region P4 \
  --i-kmer-map ../database/sidle-db-P4-100nt-map.qza \
   --p-region P5 \
  --i-kmer-map ../database/sidle-db-P5-100nt-map.qza \
  --i-reconstruction-map league_map.qza \
  --i-reconstruction-summary league_summary.qza \
  --i-aligned-sequences ../database/sidle-db-aligned-sequences.qza \
  --o-representative-fragments league-rep-seq-fragments.qza

现在,我们可以将序列放入参考树中了,首先下载参考树:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget  -O "sepp-refs-gg-13-8.qza" \
 "https://data.qiime2.org/2020.11/common/sepp-refs-gg-13-8.qza"

然后,插入序列:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
qiime fragment-insertion sepp \
 --i-representative-sequences league-rep-seq-fragments.qza \
 --i-reference-database sepp-refs-gg-13-8.qza \
 --o-tree league-tree.qza \
 --o-placements league-placements.qza

最后,就可以继续常规的qiime2分析流程了,多样性,统计等等,能不能用picrust2分析呢?或许也可以的。

好了,一波三折,终于完成了这个教程的学习,不得不说这个技术好像还不够成熟,特别是qiime2的这个插件。有什么其他好的方法,欢迎交流,我的微信:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科技记者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SMURF流程之q2-sidle(三)——数据库准备
这一步是提取一个区域的数据库,基于K-mer,为了提升内存效率,把简并碱基和重复kmer作为一条序列。
用户1075469
2021/03/11
6160
SMURF流程之q2-sidle(三)——数据库准备
SMURF流程之q2-sidle(一)
前面说到Science封面文章用的16S数据分析流程有qiime2的插件版本,可以解决基于matlab MCR standalone版本的报错,于是实践一下!https://github.com/jwdebelius/q2-sidle。conda的安装就不表了,教程挺多的。
用户1075469
2021/03/11
6980
SMURF流程之q2-sidle(一)
SMURF(5R)-Science封面文章使用的16S新流程(二)
前面介绍的SMURF流程的运行以失败告终了,不过这个是这篇文章的参考方法,至于这篇文章改进过的方法,还没有试过,这就试一下,顺便考虑是否能把6区的移植过来,搞个6R呢,可能,算法上有略微的区别,毕竟这篇Science研究的是肿瘤中的含量很少的微生物,用了严格的去污染策略,不管怎样,试试吧!
用户1075469
2021/02/15
7470
适用于QIIME2的UNITE 9.0分类器及训练方法
在使用 QIIME2 分析 ITS 数据时,需要注释降噪得到的代表序列,而注释需要输入所参考的数据库。
小汪Waud
2023/11/17
9715
适用于QIIME2的UNITE 9.0分类器及训练方法
扩增子分析流程
该 SOP 基于 QIIME2 2020.2,学习之前建议先过一遍 QIIME2 “Moving Pictures” tutorial[1]。
生信菜鸟团
2020/06/17
4.6K0
ubiome类似数据dada2处理探索3
我简单处理了下otu序列和表,使它们能导入qiime2,应该是一行shell代码解决的,shell水平不行,python来顶了。
用户1075469
2020/03/03
4390
[翻译]q2 picrust2 教程
picrust2 beta既可以单独安装,也可以以qiime2-PICRUST2插件方式安装和使用,两者都可以在linux和Mac上运行,windows请使用虚拟机。
用户1075469
2020/03/03
3.5K0
ubiome类似数据dada2处理探索6
接着前面的内容,这里再进行下数据库的处理,看看从参考数据库就按测序数据处理是不是能提高物种注释的精度。这里先预报一下,种的分类结果并不能有明显的提升,或许是因为序列长度的缺陷,即使再努力提高技巧,终究不能解决根本的问题,250bp的长度,对比1500bp左右的全长,显然还是太短了,难以实现精确的分类,所以,要想更精确,只有上16S全长,这只能寄望于Pacbio,Oxford Nanopore,和10x linked reads或者类似的技术,比如华大的sLtFR等技术提升读长了。再激进些,等测序成本足够低,上宏基因组,宏转录组了。
用户1075469
2020/03/03
6070
Kraken2 Vs qiime2 16S物种注释
最早接触Kraken2这个软件是在宏基因组,但官网上说其实这个软件也是可以用于16S物种注释的。当时没怎么在意,后面发现有个美国肠道微生物检测公司Thryve是使用这个软件进行物种注释的。最近发现2020年9月的一篇文章是比较了kraken2和qiime2的物种注释结果,详细见宏基因组公众号的文章。
用户1075469
2021/03/11
1.6K0
Kraken2 Vs qiime2 16S物种注释
数据分析-cuttag分析流程分享3-个性化分析内容
在进行了前面两次的流程分析,目前已经得到了bedgarph文件和peak文件,需要在后面对peak文件进行相关的分析,主要有差异peak分析、peak的注释、注释基因的富集分析以及motif分析,我做了几次,发现里面的坑还是很多的。
小胡子刺猬的生信学习123
2022/04/06
6.2K6
数据分析-cuttag分析流程分享3-个性化分析内容
鉴定lncRNA流程全套代码整理
前两期周更我们通过一篇文章的复现整理了mRNA和lncRNA分析基本流程,但并没有涉及新lncRNA的鉴定,本周的推文本质上是我个人学习鉴定lncRNA的全套流程笔记,整合了我们公众号往期的资源,对代码进行了勘误更新,内容非常详实。
生信菜鸟团
2023/08/23
4K1
鉴定lncRNA流程全套代码整理
关于 16s 序列的注释算法
16S rRNA 扩增子测序已被广泛应用于微生物组研究,其中一个至关重要的步骤就是对相应序列(OTU 或者 ASV)进行分类学注释。虽然已经有大量的注释算法被开发出来,但是我们最普遍用到的仍是朴素贝叶斯分类器(NBC)。追溯其历史,RDP(Ribosomal Database Project)首先使用了NBC 算法[1]来对序列进行分类注释,证明了16S rRNA 序列可以进行属水平分类。很多研究也证明 NBC 在标记基因序列分类上的效果确实十分稳健,比如 QIIME2 内置的 q2-feature-classifier[2] 分类器。
生信菜鸟团
2021/08/25
1.6K0
关于 16s 序列的注释算法
GATK的人类宿主的微生物检测流程PathSeq和在空转上的运用
Download the latest RefSeq accession catalog RefSeq-releaseXX.catalog.gz, where XX is the latest RefSeq release number, at: ftp://ftp.ncbi.nlm.nih.gov/refseq/release/release-catalog/ Download NCBI taxonomy data files dump (no need to extract the archive): ftp://ftp.ncbi.nlm.nih.gov/pub/taxonomy/taxdump.tar.gz Assuming these files are now in your current working directory, build the taxonomy file using PathSeqBuildReferenceTaxonomy:
追风少年i
2023/12/27
9560
GATK的人类宿主的微生物检测流程PathSeq和在空转上的运用
宏转录组学习笔记(二)
继续前面的学习,前面已经把软件安装完成,数据库准备好,下面就是分析的过程了,基本上按照原文的命令进行的,由于教程中没有给出tara_f135_full_megahit.fasta这个文件,这里我们就把这几个样本的组装提到了前面,自己组装获得这个序列,然后再进行物种注释。
用户1075469
2020/03/31
1.6K0
宏转录组学习笔记(二)
qiime2-2019.4更新学习笔记
q2cli 1.在查看插件的详细信息时清理 –version 输出! 2.将多个小时的血液、汗水和眼泪投入到清理q2cli体验中,变化包括: 1)--cmd-config 已经被删除了(它没有得到充分的记录,并且增加了很大的复杂性)。我们鼓励需要编程控制的QIIME2用户改用PythonAPI,这要灵活得多。 2)--py-packages从qiime info 中移除了(它已经坏了),使用conda list代替。 3)--output-dir 和--o选项中,在执行命令之前,请确保路径是可写的。 4)
用户1075469
2020/03/03
1K0
ChIP-seq详细分析流程
参考生信技能树1以及生信技能树2 只记录从数据下载,到最终结果展示,具体生物学知识请自行查阅 稍后关于ChIP-seq的背景知识我会再发布一篇文章。 数据下载:数据存放地址 关于环境配置和软件安装请参考我之前的RNA-seq分析流程
Y大宽
2018/09/10
4.3K1
ChIP-seq详细分析流程
SAHMI 单细胞宿主-微生物互作分析代码实战
2020年11月29日,拙文《单细胞时代 || 宿主-微生物组相互作用》中,浅谈了在单细胞水平分析宿主细胞与微生物组的相互作用,当时主要参考的文章是:Host-Microbiome Interactions in the Era of Single-Cell Biology。
生信技能树jimmy
2024/06/13
2.3K2
SAHMI 单细胞宿主-微生物互作分析代码实战
SILVA、GREENGENES、RDP三大数据库的序列探索统计
最近对16s的三大数据库的序列的具体序列情况挺好奇的,决定统计一下各个序列的长度分布情况,以及这些序列具体分布在哪几个V区,有助于我解决后面16So数据的问题。还是用上我三脚猫的功夫,开始今天 的探索,没有人探索的事情,还是挺开心的。
用户1075469
2020/03/03
2.3K0
BLAST—序列相似性搜索必备神器
BLAST(Basic Local Alignment Search Tool) 是一款用于在蛋白质或 DNA 数据库中进行相似性搜索的分析工具。BLAST 程序能够快速比对查询序列与公开数据库中的序列,并计算相似性得分,以进行统计分析。
生信菜鸟团
2025/03/12
5020
BLAST—序列相似性搜索必备神器
全基因组 - 人类基因组变异分析(PacBio) (3)-- pbmm2
长读段比对算法与一代/二代测序数据的比对算法有很大的不同,因为长读段通常更长、包含更多错误和变异,并且需要更复杂的比对策略。
三代测序说
2023/10/26
1.6K1
全基因组 - 人类基因组变异分析(PacBio) (3)-- pbmm2
相关推荐
SMURF流程之q2-sidle(三)——数据库准备
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验