参考

https://zhuanlan.zhihu.com/p/470457258、德布鲁因图和OLC组装基因组 - 简书 (jianshu.com)、[算法学习 1] 基因组组装算法 De Bruijn Graph - 知乎 (zhihu.com)、https://nmdc.cn/​​​​​​

感谢国家微生物科学数据中心和互联网。

Megahit(宏基因组组装工具)

原理

基于kmer迭代的DBG算法。

kmer:kmer指将reads切碎的长度(7mer),Megahit中的参数有kmin、kmax,step。其中kmin指最小切割长度,kmax指最大切割长度,step指迭代kmer的步长。

其他参数:

kmer是奇数为了避免正反义链混淆。

DBG(De Bruijn Graph)算法:De Bruijn graph是一个展示符号序列之间重叠关系的有向图。

将reads打碎之后,通过overlap部分拼接,得到De Bruijn graph,寻找最优路径,得到最初的contig

e.g

两个reads分别以5mer打碎(移动1),制成 De Bruijn graph。因为有重复序列GATCT,所以形成了泡。将图简化后即可得到contigs(涉及消除由SNP等引起的错误,合并相邻序列)

Megahit的工作:对于要处理的reads,megahit先使用kmin切割,构建最初dbg,得到此kmer下的contig;然后他使kmer变成kmin+step,重复,若contig好于上一代则继续迭代,否则终止。或kmer=kmax时终止。

Metabat2(宏基因组分箱)

分箱Binning:将宏基因组测序得到的不同生物的序列或contigs按物种分开的过程。环境中存在大量不可培养的微生物,这样可以获得他们的基因组序列。

输入:MetaBat2的输入为组装的contig序列(.fasta)以及将二代reads比对到contig序列上的比对文件(bam格式,BWA,Bowtie2)。

输出结果为一个个bin(.fa)。

GTDB-tk(基因组分类数据库,物种注释和进化树构建工具)

*特别感谢这篇文献

GTDB(基因组分类数据库):是基于大量基因组的系统发育分析来构建基因组分类学研究的标准流程,从而对微生物进行分类 。

工作流程

classify_wf:基于GTDB参考树,基因组物种注释,包括鉴定、比对、分类三步

de_novo_wf:推荐新树并用GTDB注释,包括鉴定、比对、推断树、确定根和装饰

主要方法模块

identify:基因组中鉴定标记基因

align:多序列对齐

classify:确定物种分类

infer:从多序列对齐序列建树

root:使用外类群定根

decorate:使用GTDB分类注释树

工具

infer_ranks: 使用RED估计分类级和内部结果

ani_rep: 计算GTDB代表基因组的ANI(基因组相似性计算)

trim_msa: 多序列对齐结果筛选

export_msa : 导出未剪裁的细菌/古菌多序列对齐文件

物种注释流程:classify_wf

classify_wf的输入(—genome_dir)为包含多个基因组的文件夹,并指定输出文件(—out_dir)。可选参数有扩展名(—extension)默认为fna,可选fa,gz等;输出文件名前缀(—prefix),默认为gtdbtk;设置多线程加速(—cpus)。

user_genome     classification  fastani_reference       fastani_reference_radius fastani_taxonomy        fastani_ani
K4093L.5.fa     d__Bacteria;p__Proteobacteria;c__Gammaproteobacteria;o__Burkholderiales;f__Burkholderiaceae;g__Rhodoferax;s__
B4018L.2.fa     d__Bacteria;p__Proteobacteria;c__Gammaproteobacteria;o__Burkholderiales;f__Burkholderiaceae;g__Rhodoferax;s__
W4194L.6.fa     d__Bacteria;p__Proteobacteria;c__Gammaproteobacteria;o__Burkholderiales;f__Burkholderiaceae;g__Rhodoferax;s__
K4096L.2.fa     d__Bacteria;p__Proteobacteria;c__Gammaproteobacteria;o__Burkholderiales;f__Gallionellaceae;g__Sideroxydans;s__
W4194L.3.fa     d__Bacteria;p__Proteobacteria;c__Gammaproteobacteria;o__Burkholderiales;f__Gallionellaceae;g__Sideroxydans;s__
L4105L.2.fa     d__Bacteria;p__Proteobacteria;c__Gammaproteobacteria;o__Burkholderiales;f__Gallionellaceae;g__PALSA-1006;s__

以上为结果示例(我没太看懂)

多序列对齐结果建树:infer

多序列比对:

多序列比对(多序列联配,Multiple sequence alignment, MSA)是指把多条(3 条或以上)有系统进化关系的蛋白质分子的氨基酸序列或核酸序列进行比对,尽可能地把相同的碱基或氨基酸残基排在同一列上。这样做的意义是,对齐的碱基或氨基酸残基在进化上是同源的,即来自共同祖先(common ancestor)。

原理:序列比对是将同源序列位点上匹配位点(相同或相似残基)与不匹配位点(不相似的残基)按照一定的记分规则转化成序列间相似性或差异性数值进行比较,相似值最大时的比对结果具有最多的匹配位点,从数学角度讲,应该是最优的比对结果。比对结果反映了数学模型或算法在多大程度上反映序列之间的相似性关系以及它们的生物学特征(唐玉荣,2003)。

参考:序列的比对结果主要是为了寻找相似的序列,序列的相似性可以是定性的描述,也可以是定量的数值。在进行序列比较时经常使用“同源”(homology)和“相似”(similarity)这两个概念,这是两个经常容易被混淆的不同概念。两条序列同源是指它们具有共同的祖先。在这个意义上,无所谓同源的程度,两条序列要么同源,要么不同源。而相似则是有程度的差别,如两条序列的相似程度达到30%或60%。一般来说,相似性很高的两条序列往往具有同源关系。但也有例外,即两条序列的相似性很高,但它们可能并不是同源序列,这两条序列的相似性可能是由随机因素所产生的,这在进化上称为“趋同”(convergence),这样一对序列可称为同功序列直向同源(orthologous)序列是来自于不同的种属同源序列,而共生同源(paralogous)序列则是来自于同一种属的序列,它是由进化过程中的序列复制而产生的 。

输入.fa文件,输出结果可用itol(https://itol.embl.de/)在线可视化

从基因组直接建树,de_novo_wf:

构建新树并用GTDB注释,包括鉴定、比对、推断树、确定根和装饰。

输入文件为细菌基因组的目录(—genome_dir),指定扩展名类型(—extension),以及输出目录(—out_dir)。必须参数有需要选择细菌(—bacteria)/古菌,指定外类群(—outgroup_taxon)。可选常用参数有结果前缀(—prefix)和使用线程数(—cpus)。

输出有:

  • bin.bac120.decorated.tree: 修饰的有根树

  • bin.bac120.decorated.tree-table:

    树相关信息表

  • bin.bac120.user_msa.fasta:

    多序列对齐文件

checkM:

用于评估分理处的微生物、单细胞和宏基因组的质量工具。

CheckM首先基于完整的已测序细菌基因组作为参考基因组,构建基因组的进化树,构建每个谱系(可以理解为一类物种)的单拷贝基因集(管家基因)(single copy genes,SCGs,为什么是单拷贝?因为这样可以开展基因组混合程度、污染程度等的评估)。在使用时,将我们的Bin与参考基因组一起建树,基于进化关系找到Bin的参考物种,然后结合参考物种的单拷贝基因集,计算两个重要指标

Completeness,完整度,Bin基因与对应SCGs相比,基因数量是否完整,取值[0,100%],数值越大,表示Bin质量越好;

Contamination,污染度,Bin基因包含多个物种的SCGs,即一个Bin存在多个物种的程度,取值[0,100%],数值越小,表示Bin质量越好。

获得每个bin的污染度、完整度信息后,挑选高质量的bin进行物种、功能注释。再后续分析中,并没有固定标准。需要的数量多,则放宽阈值;需要的数量少,则提升阈值。其中,最常用的指标是污染度小于10%,且完整度大于80%。大家可以在这个基础上上下调整。
————————————————
原文链接:https://blog.csdn.net/dunghill_cock/article/details/124298067

checkM接受基因组由contig组成,且文件默认为.fna,可以用 -x指定其他后缀(-x fa),bin id

工作流程:

1. lineage-specific<世系特异性>:

根据基因组在参考基因组发育树中的位置,来推断它的single-copy基因集,需要有checkM的数据库

checkm lineage_wf <bin folder> <output folder>tree;tree_qa; lineage_set; analyze; qa
建树;检查树;构建Marker文件; 分析污染程度和完整度; 对基因组质量进行总结

2.taxonomic-specific(物种分类特异性):

自己知道自己的数据来自哪个门,什么科的

checkm taxonomy_wf <rank> <taxon> <bin folder> <output folder>

3.custom marker genes(自行指定基因marker):

>checkm anylyze <custom HMM file> <bin folder> <output folder>

HMM file:指定Marker 的预测结果文件。

隐马尔可夫模型? 不懂

绘制2,3,4图(每个bar代表一个bin):

checkm dist_plot --image_type pdf -x fa <out_folder> <bin_folder> <plot_folder> <tetra_profile> dist_value

绘制1图,每一行代表一个bin,每一竖条代表一个Marker:

checkm bin_qa_plot --image_type pdf -x fa <out_folder> <bin_folder> <plot_folder>

还可以绘制Nx图来检验contig的拼接好坏,没听懂。

Megahit, metaSPAdes, metabat2, GTDB-tk, checkM相关推荐

  1. OPERA-MS:宏基因组二、三代测序混合组装

    之前详细介绍了宏基因组二.三代混合组装软件OPERA-MS的Nature Biotechnology文章.详见下文: NBT:宏基因组二.三代混合组装软件OPERA-MS 今天带来软件的使用经验,主要 ...

  2. 宏基因组分析软件2综述、metaSPAdes、IDBA-UD、MetaQuast、Prokka、metaProdigal

    今天是第1254期日报. 聚焦宏基因组拼接.基因注释软件,让选择不再困难. 上一期:0918 | 宏基因组分析软件专题(一) 微生物组数据分析思想.步骤及软件和数据库选择指南 Hereditas(Be ...

  3. metaSPAdes:新型多功能宏基因组拼接工具

    文章目录 metaSPAdes:新型多功能宏基因组拼接软件 热心肠日报 摘要 结果 metaSPAdes流程概述 表1. 所有数据集和所有组装程序的支架总长度(以兆为单位) 图1. 支架累计长度图 表 ...

  4. 宏基因组实战3. MEGAHIT组装拼接及quast评估

    前情提要 如果您在学习本教程中存在困难,可能因为缺少背景知识,建议先阅读本系统前期文章 宏基因组分析理论教程 微生物组入门圣经+宏基因组分析实操课程 1背景知识-Shell入门与本地blast实战 2 ...

  5. 宏基因组分箱CheckM评估结果的提取

    CheckM CheckM在前文已经提过了,是一款评估宏基因组分箱质量的软件.目前我使用MetaBAT2这款软件已经对我的数据进行了一次分箱,现在利用CheckM进行质量评估.目前阶段,我主要想看Co ...

  6. SemiBin宏基因组半监督分箱工具中GTDB数据的下载与配置

    最近想学一学宏基因组的分箱工具使用(讲真的,感觉bin还是挺复杂的,不是我这种小白该去涉猎的),本来想看看老牌工具metaWRAP的使用细节,奈何微信推送了一条新的分箱工具--SemiBin,还是基于 ...

  7. python gui编程框架添加工具栏_python gui编程,我是初学者。用tk,制作下拉菜单的command不分我想打开另一个界面。如和解决,求解!!...

    展开全部 from tkinter import * def new_file(): print("Open new file") def open_file(): print(& ...

  8. ruby tk秒表的应用

    2019独角兽企业重金招聘Python工程师标准>>> ruby这种语言,看起来好像挺简单的,但实际上掌握起来难度应该要比JAVA这种语言更大的,主要是因为它非常灵活,涉及的内容也非 ...

  9. python tk text scrollbar_tk.Scrollbar控件的使用

    Scrollbar控件一般都是与Text或Listbox等需要上下滚动显示的控件一并使用,使得这些显示控件能够上下翻滚以便方便的显示和供人查看所有信息.那么,这就需要将Scrollbar与其它widg ...

最新文章

  1. 把项目发到github
  2. 在不root手机的情况上读取Data目录上的文件
  3. 写个自己的Xcode4插件(二)
  4. 从小白到精通python要多久-零基础如何学Python?小白学Python需要多久?
  5. python 形参 拷贝_Day124:python中的变量、引用、拷贝
  6. 哇塞!给 IDEA 换个酷炫的主题
  7. python web框架 多线程和多进程_python的多线程和多进程(一)
  8. 马化腾、李彦宏、雷军,程序员国服三强谁的编程能力最牛?
  9. Java 高阶 —— try/catch
  10. [linux]tcpdump抓包
  11. linux shell写日志,Linux shell编程之文件内容写入和日志记录
  12. (附源码)flutter+React Native+Springboot Api
  13. RTMP直播推流Video(视频)
  14. 计算机连接未识别的网络,电脑网络连接处出现未识别的网络无Internet访问的解决办法...
  15. spring boot儿童教育管理系统毕业设计源码281442
  16. Matlab实现数字转换为字符串
  17. [全解] 刷机, BL 锁, Bootloader, Recovery, Magisk, Root, ADB, 线刷, 卡刷, 9008, 绕过 FRP
  18. mw325r服务器无响应,水星(MERCURY)路由器MW325R上不了网/连不上网的解决方法
  19. Keras少量样本训练强大图像分类模型
  20. 【VMware环境下Linux磁盘空间(LVM)扩容方法】

热门文章

  1. 【集创赛】arm杯一等奖作品:智能BLDC驱动系统
  2. java 错误1335_安装JAVA的JDK时出现,错误1335? – 手机爱问
  3. PyQt5实时汇率查询
  4. 远程连接腾讯云主机中MySQL
  5. 计算机组成原理中的直接映像,计算机组成原理--cache存储器的直接映像与变换...
  6. 从序列化输入到蛋白质结构预测(RoseTTAFoldAlphaFold2)
  7. 程序猿的自救 从零备考NSCA/CSCS 2 阻力运动生物力学
  8. python离散事件仿真库SimPy官方教程
  9. 《从点子到产品:产品经理的价值观与方法论》读后感
  10. MAVEN踩坑 Could not find artifact...