【Mol Plant】实用!华南农大夏瑞组发表生信软件 - TBtools (附详细使用方法)

2020年06月22日,华南农大夏瑞课题组在 Molecular Plant杂志发表了题为《TBtools - an integrative toolkit developed for interactive analyses of big biological data》的研究论文。论文中介绍了生物信息学软件 TBtools 的开发动机、功能特性与发展现状。
高通量测序技术是目前植物科研工作中必备手段。数据分析结果常常产生系列大型文件或者复杂文本,这明显成为研究人员,尤其是以湿实验为主的工作者所面临的问题。与此相比,可用软件较少,集中于命令行实现,且各类功能分散。针对这一软件缺口,该课题组开发了 TBtools 软件。该软件覆盖了130多个功能,包括序列工具,可视化工具,BLAST界面化工具和GO与KEGG分析以及其他功能。
在该论文中,作者同时介绍了 TBtools 的主要特性,即功能集成和交互式可视化分析。其中,热图功能作为一个典型例子,包括了灵活其丰富的参数控制,一个界面可以绘制多种类型热图。
据悉,TBtools 软件已经开发五年有余,作者在文中列举了部分常用功能。其中包括,eFP Browser,交互式热图,Circos,UpsetPlot,共线性浏览器,基因家族工具,进化树注释工具,基因的染色体位置展示,批量序列提取和GFF3/GTF序列提取工具。
附上TBtools的使用方法:来源于生信札记

TBtools的主界面

TBtools的主界面主要分为两大块,菜单栏和功能界面。初始界面为About TBtools,主面板为随机出现的内置英文谚语。下方是多个按钮,点击Version可查看当前版本是否为最新版的TBtools;点击Citation可查看如何引用TBtools(基于scholar google,虽然我们并未发表,2019年一年~100个citations应是没有太大问题,因为目前的数值是90。总的来说,暂时还是希望大家直接应用bioRxiv文章,方便记录);信息栏中也包括了我的gmail邮箱链接,有时候邮件交流比QQ群交流可能好得多。
从菜单栏,可以看出,TBtools的主要功能模块:
  1. 序列处理工具
  2. Blast相关的界面化工具
  3. 基因功能分析工具
  4. 图形可视化工具
  5. 其他小工具
  6. 游戏
  7. 关于
以下,针对每个模块做简单的展开说明(篇幅有限,我们只大体挑取一些功能)。

序列处理工具

在组学数据分析中,一个常见的问题是,如果基于给定的基因列表,从序列集合中提取序列
这一功能,不仅可以用于提取基因的全序列,也可以基于用户指定的染色体区间,批量提取对应的区间序列。当然,只要起始坐标大于终止坐标,用户可以直接获得正链的反向互补序列,事实上即反链5-3的序列。
查看序列文件中的序列个数,获得其中所有序列的ID和统计信息,有时候会有不少用户,尤其是做进化分析的朋友,Fasta Stater这一功能可以帮助用户快速统计Fasta文件中每个序列的信息,包括ID,长度,描述信息,GC含量等。
有时候,我们可能有几十个序列在一个序列文件中,需要对序列进行批量重命名,那么可以使用Fasta Renamer。这一功能的使用和推广,需要感谢福建农林高芳銮老师。

甚至也在一些时候,我们希望一个Fasta序列文件中只包含一个序列,那么需要Fasta Split,而有些时候,却想要合并所有序列到一个文件,比如100个Sanger测序结果,那么需要Fasta Merge

当然,我相信很多知道TBtools的湿实验用户对少量序列高效地进行反向互补或去除序列中的一些数字等字符(如从NCBI复制序列下来)会非常感兴趣。可以使用Fasta Sequence Manipulator
从NCBI批量下载少量序列,这类需求有时候还是存在的,尤其是我们在某个文献中看到其使用了一系列的NCBI accession number。
转录组测序,或者得到某个mRNA序列后,我们可能想要看看某个序列时候具有完整的ORF,那么可以使用TBtools的Get Complete ORF,这一功能的表现与NCBI ORF finder的表现一致,当然实现逻辑就不知道了。用户只需要黏贴序列,随后点击Start,即可。
做湿实验的时候,我们经常会涉及引物,但这对引物在自己的物种中,是否可用于扩增某个基因片段,或许可以直接使用该物种的序列库进行一定程度的检查。可以尝试Check Primer (Simple e-PCR)
高通量数据的极速发展,使得越来越多物种的序列容易获得。有些时候,我们需要基于物种的基因组序列和基因结构注释文件提取该物种所有CDS?所有蛋白?所有启动子序列?。此时,可以考虑使用TBtools的Gtf/Gff3 Sequence Extractor。或许这是唯一一个所有操作系统平台,包括windows下功能如此健全的基于基因结构注释的序列提取界面化工具。
当然,不仅于此。很多时候,基因结构注释中包括每个基因的多个转录本,但我们在分析时,需要取每个基因的一个代表转录本,这点尤其在进化分析,或基因家族分析中有用。我们也提供了功能,可一次运行,直接获取每个基因的最长代表转录本ID,与上述序列提取工具结合,即可获得序列。
当然,还有一些时候,我们想看看该物种某个染色体区间,都有哪些基因?那么可以讲对应的基因区间扔给TBtools,然后得到结果。
存在一些情况,我们会想了解感兴趣的序列模式,都出现在基因组的那些位置,于是可以使用
序列处理相关工具的功能还有很多,篇幅有限,我们不做过多展开,感兴趣的朋友可以找到TBtools使用手册做基本查看(当然,该手册已是一两年的TBtools状态)。

Blast相关的界面化工具

无论是早年低通量的分子生物学时代,还是现在高通量测序普及的状态,local blast总是存在需求的。相应的,也有不少工具其实有本地blast的界面接口,其中包括BlastStation,BioEdit等。当然,TBtools也有,我自认为TBtools的操作会简便很多,相比于其他工具。
对于Blast比对结果,TBtools也支持多种可视化模式,如
Blast XML输出是我个人比较推荐的输出方式,因为这一格式存储了较多的信息,相比于Table或者Pairwise格式。当然这不是一个human-readable的格式。所以TBtools也提供了工具,可以用于快速转换blastXML为table格式或者TBtools自定义的table格式
互惠Blast,常常被用于做两个物种之间同源基因的确定,当然有时候也拿来做不同转录组组装版本的对应。这一需求还是不少,但操作起来很麻烦。我们可以想象到AvsB,随后BvsA,最后需要整合两个结果。为此,TBtools有相应功能,用户只需要提供两个序列集合文件即可。

基因功能分析工具

组学数据分析中,我们总是可以获得一些基因列表,如差异表达基因,进化过程中的正选择基因,缺失的基因等。快速了解这些基因是否明显偏好于某一功能,如成花?低温响应?转录调控?基因的功能富集分析,是一个常见的操作。TBtools中提供基于超几何分布的富集分析操作,包括GO富集分析和KEGG通路富集分析。
当然,也包括相应的可视化工具

图形可视化工具

前前后后,基于个人追求,独立于TBtools,也独立于EasyCodeML,我有一业余项目,即写了绘图引擎,目前已经重写至少两次。(注意,我只是命名偏好于类似大家说的R语言的ggplot2,但跟ggplot2没啥关系,这就像TBtools早期叫BioCJava,跟Biojava一点关系没有是一个道理的。
JJplot -> JJplot2 -> JIGplot
有了绘图引擎,那么可以做很多事情就更多了。将其应用于TBtools中,我们获得目前多数TBtools的数据可视化功能。
比如Venn图,或者其升级版UpsetPlot
如上图,TBtools也有常见的热图工具
或者其变型的热图,比如使用圆形的面积对应到数值的大小。
当然,你也可以掰弯热图,一次性展示更多的数据
相比于其他热图工具,或许TBtools这一工具有趣的地方在于,他可以从某一程度上支持,聚类分支的交换,如下
方格子的热图,总是常见的,或许也是最不直观的。所以TBtools其实是支持特殊的热图,如下,在菠萝植株的不同器官上,展示基因的表达量变化,(用户可自己准备感兴趣的图片,如有的人已经做了烟草的,土豆的,荔枝的...)
如果你有一堆的序列,或许你会使用一些网页工具,如WebLogo,或者R语言包如SeqLogo,但是他们的可视化友好程度和自由程度,确实不如TBtools的Amazing Simple SeqLogo
对于一些基因集合,比如基因家族成员?或者是差异表达基因,我们会希望明白这些基因都在基因组上的什么位置,于是TBtools的Gene Locations会是一个选择
PCA分析,或许有一定的需求
虽然,我也不知道为什么火山图会有需求,但我还是实现了一个
在一些比较基因组学研究中,总是有一些图形是需要批量且快速的绘制的,其中包括
也包括全基因组和基因局部的共线性
当然了,简单的Circos图,同样可以使用TBtools绘制

其他小工具

在开发的过程中,总是有一些功能是确实不知道放在哪里的,于是有这一菜单。其中事实上也包含了非常多的功能。所有操作系统平台的用户都是可以使用的。不过对于使用TBtools安装器安装的windows用户,会是最友好。其无需做任何其他配置。
直接从界面上使用MCscanX进行全基因组的共线性分析
可以本地界面化调用RNAfold,并展示折叠结果
当然,还包括Muscle等多序列比对软件
甚至有Hmmer,使用hmmsearch等
在linux或者macOS下本地运行meme是常见的,但从某个角度来说,在windows下直接运行meme,或许只能在TBtools中找到。
当然,早前,我写过NG86的算法计算序列之间的dn/ds或者说ka/ks,可非常高效地完事数万个基因对之间的kaks计算,

游戏

工作的间隙,我们也需要一些休息。TBtools中目前实现了两款益智游戏,
贪吃蛇
还有俄罗斯方块,

关于

关于菜单是一个保留菜单,主要是放一些非常重要的功能。
其中Check Dependency可供用户检测TBtools是否调用的所有外部程序都存在(目前仅包括Blast,RNAfold,Hmmer,MCScanX,meme,muscle)。
Debug Dialog可供用户查看软件运行过程中产生的一些警告或报错信息,方便交流使用问题。
Resize JVM memory可供用户调节JVM使用的内存大小,常常1G内存应是可以使用所有TBtools功能,但某些时候,输入数据几个极其大时,或者为了加快运行速度,用户可以考虑适当调整为4G,甚至8G,虽然这个一般没有必要。
论文链接
https://www.cell.com/molecular-plant/fulltext/S1674-2052(20)30187-8
(0)

相关推荐

  • Fasta序列文件合并与分割,支持.seq等无头序列

    写在前面 我隐约记得我写过类似主题,但也并不确定.相关功能,我并不写使用说明的冲动,一者是这些功能至少是四五年前就有的,二者是这些功能其实比较简单,但也并不常用.然而,现在我还是决定写一篇.主要动机简 ...

  • Ks值用TBtools计算不出来?讲一个故事

    Ka,Ks(或Dn,Ds),这两个值以及他们的比值分别被赋予了一定的生物学意义.其中最为常用的是两者的比值,存在这么一种常见认知: ka/ks>>1 正选择 ka/ks~1 无选择(中性进 ...

  • TBtools GUI界面工具列表....

    欢迎对生物信息学科学习感兴趣而不仅仅是对生物信息应用感兴趣的朋友加到我们QQ交流群(276151571) "bioinformatic*中国" 作为被某群群管(非上述推荐群)视为破 ...

  • 如何高效而且优雅地比较多物种的不同基因组区域?

    写在前面 高通量测序技术的普及,带来的是遍地的基因组.昨日,OneKP项目又发了一个Paper[因为很久以前他们就发过,数据也早就可以获取].他们再发多少paper,事实上,我并没有太多感触,因为On ...

  • bioinformatics*中国-第三季-Seminar开始了!!!

    第一讲 - 主题 - <TBtools-生信数据下游利用小外挂> TBtools例图展示 ......由于这个太多...所以不展示.... bioinformtaics*中国 Semina ...

  • 简洁 | 优雅地整理 BLAST 比对结果

    写在前面 用过 BLAST 进行基因功能注释的朋友应该常常遇到两个问题: BLAST 输出格式较多,选择哪一类输出格式更为实用? 输出结果信息较多,如果方便下游数据分析? BLAST 的输出文件格式建 ...

  • 超快超省事!统计 Fasta 文件/序列相关信息

    写在前面 我经常使用一个不起眼的功能,Fasta Stat.但从未写过相关推送.主要是其使用过于简单,只要把 Fasta 序列文件放进去,点击 Start 就可以了.早上起来,突然想起了这一功能,并增 ...

  • 大范围查找序列模式所在位置,用TBtools啊

    写在写在前面的前面 中午一个师弟说,手上有一个需求,需要确定某个模式在荔枝所有基因的启动子区域内是否存在.事实上,这很明显就是要看某个转录因子是否是调控哪些基因,我一看模式就知道,必定是ERF,因为是 ...

  • 教程 | “美好体验”本地 BLAST 基因功能鉴定

    我突然觉得,TBtools 应该有一个愿景,亦即:让数据分析成为一种享受,而不是折磨. 写在前面 在过去的一个月内,TBtools每天都在更新.而几乎所有更新都只有一个目的,那么就是进一步支持&quo ...

  • 快速且准确获取家族进化分支成员(以分钟计)

    一图小结 新功能让你在感兴趣的物种中,一两分钟内找到靠谱且全面的特定分支成员 写在前面 生物信息数据下游分析,是一个非常复杂,且几乎没有也不可能流程化的操作.究其原因,但凡贴近生物学问题,需要更多生物 ...

  • GEO的数据注释文件没有基因名肿么破?

    写在前面 我们在处理GEO芯片数据的时候,经常会碰到芯片的数据的注释文件没有提供基因名,只有基因的序列.替代的解决办法就是对所有的注释数据来进行批量的blast,利用注释文件提供的序列来通过blast ...

  • 教程 | 做一个自己专属的本地 BLAST 数据库

    写在前面 中秋和国庆期间,我总是要往返广州贵阳.工作在广州,家人在贵阳,于是多出了不少旅途时光.手机信号自然是没有,也常常是夜晚的航班.播客听多了,发现只能等着节目更新.来来去去,最后还是要闭眼思考. ...

  • 插件 | 蛋白序列集合功能注释快速完成 - Quick Protein Anno

    写在前面 下游数据分析的时候,大体会遇到以下两个场景: 手工查看基因组任意位置的基因,具体的注释信息,以及其前后基因的功能注释信息 手上有某个序列或者某几个序列,想要快速知道这些序列对应的蛋白到底都有 ...