CFVisual绘制Motif+基因结构+结构域+进化树+启动子图的单独或组合图

1. 软件简介

        CFVisual_V2.1软件是一款借助Python语言的matplotlib库和PySide2库进行生物序列结构绘图的数据可视化软件,主要用于生物信息学分析中的基因结构分析,能绘制进化树图,Motif图,结构域图,启动子图,BED文件等多种图表的绘制和组合绘制。

        CFVisual_V2.1可以免费从GitHub网址(https://github.com/ChenHuilong1223/CFVisual/releases/tag/CFVisual)下载。在获取该安装程序后,双击运行安装在用户电脑相应的位置即可。或点击CFVisual_V2.1软件依赖文件包中的CFVisual.exe即可进入到CFVisual_V2.1软件的首页界面。如图1所示:

图1 CFVisual软件界面

2. 文件准备及使用

        由于作者是做植物的基因家族出身,第一次分析的基因家族是做谷子PME基因家族,因此,GitHub网址下载的Example文件夹(https://github.com/ChenHuilong1223/CFVisual)里以C4模式植物谷子的PME基因家族文件为CFVisual的文件示例(如图2所示),我们可以想绘制任何一种组合图的时候,可以以Example文件夹的例子为参考即可解决文件格式的问题。

图2 CFVisual的示例文件

        本文主要介绍如何用CFVisual绘制做基因家族分析流程中常见的树图+Motif图+基因结构图+结构域图的组合图绘制。当然正如软件所介绍的,也支持绘制启动子图,因此,本文后部分作者将单独介绍如何利用PlantCare网站预测启动子顺式作用元件并利用CFVisual绘制启动子图。

2.1 基因结构文件准备

CFVisual支持GFF3(Si.PME.Structure.GFF3.txt),GTF和BED(Si.PME.Structure.BED.txt)文件格式,输入树文件和基因结构文件,点击Start按钮,稍作等待即可出图。注意:括号中的文件名称均来自Example文件夹中的示例文件名

本文以常用的GFF3文件(Si.PME.Structure.GFF3.txt)作为示例(如图3),具体GFF3文件的介绍及获取方式,读者可以自行百度查阅相关资料,特别详细,本文篇幅有限。因此,这里就介绍一下如何从JGI的phytozome数据库中获取谷子的GFF3文件(https://genome.jgi.doe.gov/portal/)(图4、5、6、7)——温馨提示:该网站要先注册账号才能正常下载

图3 GFF3文件格式

图4

图5

图6

图7

获取到整个基因组的GFF3文件之后,根据自己鉴定出来的家族ID(Si.PME.Ordered.ID.txt),自己编程也好(可以参考https://github.com/ChenHuilong1223/CFVisual里的Seven_according_original_GFF3_extract_gene_family_GFF3.py),手动也好,用现有软件也好,提取出对应的基因家族的GFF3文件(其实不提取也可以使用,但由于菜鸡的作者用的是python实现的,因此,直接用基因组的,读者需要等待漫长的时间,而且做多物种的基因结构图的时候,时间会更漫长。所以,最好提取出基因家族的GFF3文件)。最终,得到(Si.PME.Structure.GFF3.txt)就准备好了GFF3文件了。

2.2 Motif文件准备

首先,读者需要准备鉴定出来的基因家族成员的蛋白序列(Si.PME.Amino.acids.fasta),然后用最好的motif预测网站MEME(https://meme-suite.org/meme/)去预测蛋白序列上的motif情况(图8、9、10),下载meme.xml(Si.PME.Motif.meme.xml)或mast.xml(Si.PME.Motif.mast.xml)文件即可作为CFVisual绘制motif图的准备文件。当然,作者知道也有大神不用网站,喜欢用本地版的MEME软件生成的结果文件,CFVisual自然也是支持的。

图8

图9

等着......

图10

        作者知道有的读者喜欢在基因家族文章中加上motif序列和logo,可以自行点击MEME/MAST HTML output进入下载(图11),这里不做介绍,因为网上使用教程太多,基因家族网课太多。

图11

作者这里想强调一下,mast结果是只有一种结果展示的,但是meme结果中其实是有两种结果的展示形式的默认的是Only Motif Site的(图12),还有一个是Motif Sites+Scanned Sites结果的。这是很多做基因家族的朋友所忽略的,当你点击Motif Sites+Scanned Sites的结果的时候,就会有半透明的motif矩形盒子出现的,本身就相当于Motif Sites和Scanned Sites的组合图(图13)。同时哈,细心的朋友会发现有的motif的高度会比较低,正如MEME官网所介绍,这些motif矩形盒子低的,都是p值比较高的,可以认为是不太可信的。但是有相应的结果,也绘制出来,供专家们参考。而CFVisual是完全还原了MEME官网的Motif图的,同样还原Only Motif Site和Motif Sites+Scanned Sites的切换选择功能(图14),这是一件值得高兴的事,对于做基因家族的完美主义者或者说严谨的朋友来说。

图12

图13

图14 CFVisual的motif交互界面

2.3 进化树文件准备

CFVisual仅支持Newick format(后面简称nwk格式)的树文件。现在,构树软件种类繁多,如果用户的树文件格式不是nwk格式,请使用其他软件把树文件转换成nwk格式的树文件,这里推荐Figtree软件(http://tree.bio.ed.ac.uk/software/figtree/),操作步骤如图(图15、16):

图15

图16

        nwk格式的树文件从包含信息来讲,作者认为可以分为四类,分别为包含bootstrap值和枝长信息的nwk文件(Si.PME.Tree.Topology.Bootstrap.BranchLength0.nwk)(图17)、只包含bootstrap值的nwk文件(Si.PME.Tree.Topology.Bootstrap1.nwk)(图18)、只包含枝长信息的nwk文件(Si.PME.Tree.Topology.BranchLength2.nwk)(图19)和最简单的拓扑结构的nwk文件(Si.PME.Tree.Topology3.nwk)(图20)。

图17、18、19、20

2.4 CFVisual绘制常见的树图+Motif+基因结构的组合图

        作者读研三年,做的最多的生信分析就是基因家族分析了,深知做基因家族分析少不了这两个分析,而大多数人最喜欢的还是将树图、基因结构和Motif图进行组合成一张图展示,我们一般都是用Ai或Ps手动进行拼接,作者深知修图的繁琐和痛苦。正好,CFVisual的面世完全的解决了这个问题。换句话说,读者朋友们做基因家族的这个可视化展示的时候,再也不需要用修图软件去拼接和修图了。(作者也常跟师弟和师妹们说的一句话是,你手动拼接的能有代码对齐的整齐吗?这也是CFVisual作者致力写这个功能的初衷。)

废话不多说,上操作(图21、22):在CFVisual对应的功能界面输入你的准备文件(注意:CFVisual要求用户一定要输入一个nwk格式的树文件或者控制展示顺序的ID文本文件——因为根据作者的经验,没人会直接根据默认的顺序展示,要么结合进化树的顺序,要么根据基因家族的一些特点的顺序展示;这样的设计对于开发者来讲简单,同时用户也快乐——因为用户保存图片的时候压根不需要再花n秒时间去选择保存的文件夹(作者以前使用很多软件的时候,就总感觉每次保存都要选择一个文件夹,还总选择不好,就很搞心态,并觉得浪费时间。),直接默认保存到树文件或ID文本文件所在的文件夹,多省事,当然,用户自然也可以选择想要保存的其他文件夹。当然,GUI界面设计理念是学习最好的基因结构可视化工具GSDS(http://gsds.gao-lab.org/index.php))。输入方式支持三种:①把文件拖进文本框中,CFVisual自动识别文件路径。②也可以点击文件图标在对应的文件夹选择文件路径。③也可以把文件路径手动复制粘贴进文本框。

图21、22

        点击Start按钮,然后等待,什么也不要去操作,结果如下(图23)

图23

        然后,点击Edit按钮可以自定义一些参数,使这张组合图更好看,当然主要的还是为了给进化树分类上色,这样才能真正的放到文章当中。如图24、25、26

图24 树图参数设置窗口

图25 Motif参数设置窗口

图26 基因结构参数设置窗口

首先介绍一下树图的交互功能,基本参数设置,用户自行摸索体会就行,这里主要详细介绍一下分类及美化的操作方式:

        由于作者深知要真正实现基因家族分析中这个多图合一,树图的分类及美化功能是必须得有的,这里值得仔细说明的是关于树图的分类及美化。

首先,CFVisual支持两种可以识别的分类及美化文件,分别为基因名前的形状控制文件(Si.PME.Tree.Shape.before.gene.name.txt)和树图分类控制文件(Si.PME.Tree.Classification.txt)(文件格式设计理念学习著名的树图美化工具EvolView(https://evolgenius.info//evolview-v2/#login))。

基因名前的形状控制文件格式如下图(图27)。用户根据自己的需求,利用EXCEL制作一个CFVisual可以识别的交互格式文件:从左到右的列分别表示为:基因名形状符号形状尺寸形状填充颜色形状轮廓颜色。其中,形状符号理解如图28,颜色参数支持常用的8个表示颜色的单词或简写(图29)和十六进制的颜色编码字符串(图30)——这里作者推荐菜鸟工具中的一个板块(https://c.runoob.com/front-end/55),因为不仅支持颜色查找,也支持RGB格式和十六进制颜色编码字符串的相互转换,值得收藏。

图27

图28

图29

图30

准备好的基因名字前形状设置文件,即可在在树图编辑窗口输入文件(图31),再点击Figure窗口的Redraw按钮进行重新绘制(图32)。

图31

图32

树图分类控制文件的格式如下(图33):从左到右的列分别表示为:分类区域上端或下端的基因名分类区域下端或上端对应的基因名颜色分类的标签。注意:每一行对应一个分类区域;第四列可以不提供

图33

支持四种分类形式(如图34),分别为树枝颜色分类竖线颜色基因名字颜色分类区域颜色。用户可以把准备好的树图分类控制文件拖进用户喜欢的任意一种多种分类形式所对应的文本框中(图35)。设置好分类参数之后,点击Redraw按钮,结果如图36。值得一提的是,充分利用分类区域颜色界面中的DirectionInversion的设置,可以调节区域渐变的方向。例如,默认的Direction设置为1,Inversion不选中,区域渐变方向为从右到左;Inversion选中,区域渐变方向为相反的从左到右。Direction设置为0,Inversion不选中,区域渐变方向为从下到上;Inversion选中,区域渐变方向为相反的从上到下。另外,把Gradient控件取消选中,区域为完全填充,不显示渐变的效果。

图34

图35

图36

然后是Motif图的交互功能,CFVisual完全还原了MEME官网的Motif图结果。当用户输入的文件为mast.xml的时候,只有一种结果展示。当用户输入的文件为meme.xml将有两种结果的展示,分别为:Only Motif Sites(图37)和Motif Sites+Scanned Sites(图38)。可通过Motif编辑选项卡上的控件进行切换(图39)。另外,CFVisual也支持用户选择性地隐藏用户不想要展示的motif(这个功能似乎有点多余,但作者假想一种需求:我只想研究一下某个motif或某些motifs的分布情况

图37 跟MEME官网一模一样的初始化结果(Only Motif Sites)

图38 Motif Sites+Scanned Sites的结果

图39

另外,用户可以增加其它信息:用户可以增加其它信息与Motif图进行结合(图40、41、42),增加信息文件类型为gff格式文件(CFVisual中Gene structure和Motif功能中增加的信息gff格式文件不是标准的GFF3文件,而是GeneStartEndFeature的这样从左到右的四列——相当于GFF3文件中的这四列。(Si.PME.Structure.and.Motif.add.gff.txt))。

图40

图41

图42

接着是基因结构图的交互功能,支持GFF3(Si.PME.Structure.GFF3.txt),GTFBED(Si.PME.Structure.BED.txt)文件格式。参数设置窗口如图43。

图43

这里主要介绍一下CFVisual绘制基因结构图的特色,点击Statistics按钮,弹出显示基因结构长度内含子个数UTRCDS等数量信息(图44),建议及时全选(Ctrl+A)复制(Ctrl+C)粘贴(Ctrl+V)到一个新建文本文件中进行留存。根据作者对几百篇基因家族文章的阅读,大多数人描述基因结构分析的时候,喜欢从数量差异角度来描述,而以往只能肉眼判断大致的数量差异,或者花费不少时间肉眼去数。因此,该功能有助于读者写论文时,对基因结构组成的数字描述

图44

同样也支持增加其它信息:用户可以增加其它信息与基因结构图进行结合(图45),增加信息文件格式为gff格式文件。如果用户勾选中Mapped to CDS(图46),那么位置信息将映射到CDS结构位置上(图47)(方便了解哪段CDS编码该信息,一般针对氨基酸结构域的位置映射)。这里说明一下:CFVisual的展示方式不太同于GSDS,GSDS是完全填充颜色,CFVisual采用的是矩形方框的形式,因为作者认为,这样更直观一些,可以避免小白误以为编码结构域的那段CDS序列不是CDS而是结构域的名称(这个展示形式也更加直观的判断该家族结构域中的编码序列中可能存在的内含子的数量及长度情况)。

图45

图46

图47

最后可以保存图片了。点击Save按钮(图48)进行保存图片:目前支持png(500dpi),pdfsvg,svgz,raw,rgba这六种图片格式(图49)。注意:如果用户不选择路径,CFVisual软件自动保存到用户输入的树文件或ID顺序文件所在文件夹中(省去选文件夹的揪心操作)。

图48

图49 CFVisual的图片输出窗口

        至此,就生成一张满足科研论文要求的高质量的树图+Motif+基因结构的组合图。这里展示两张作者觉得配色还不错的样图以供参考(图50、51)。

图50

图51

2.5 结构域文件准备

等等,细心的网友会发现标题里有结构域和启动子图啊,好的。这里继续介绍,正如前面介绍的可以准备一个gff格式的增加信息文件来作为结构域的位置信息,再映射到motif或基因结构图中。当然,如果读者做基因家族经验比较丰富,读者会知道,基因家族鉴定过程中,往往需要PFAM(http://pfam.xfam.org/search#tabview=tab1)、CDD(https://www.ncbi.nlm.nih.gov/cdd)或SMART(http://smart.embl-heidelberg.de/)等结构域数据库来识别结构域的信息。因此,如果读者手里有PFAM和CDD网站下载的结果文件(没有SMART是因为作者很菜没找到SMART的结果位置文件,然后目前又不会用python爬虫网页图形显示的位置信息。因此,如果读者想结合SMART的位置信息,只能手动根据网页显示的图形位置信息手动准备一个gff格式的增加信息文件或者补充到PFAM和CDD结果文件中的对应蛋白名字所在的行中),可以直接使用,因为CFVisual可以自动识别提取需要的位置信息。好在根据作者仅有的几次投稿经验中了解到,专家们对于结构域的识别还是更愿意用CDD的预测结果。因此,这里作者建议用CDD的结果文件比较合适,当然作者本人是更喜欢PFAM的预测结果,因为结构域的名称很统一,几乎不用处理就可以直接使用。然后作者的一个师妹尝试过将三种甚至四种结构域网站预测的位置结果手动整合成一个文件(她直接把其他结构域预测结果手动补充到PFAM预测结果文件中,这样方便省事。),这样就是多种结构域信息的综合展示,可能结果更有价值一些(个人的愚见,仅供参考)。

首先,介绍一下如何获取PFAM的位置信息文件(图52、53、54):

图52

        可以关闭PFAM网页了,耐心等待PFAM网站返回的邮件......

图53

这里需要说明一下,根据作者的经验,目前大多时候PFAM网站返回的邮箱结果用的是Tab键分割,如图53一样,这样的结果是可以直接被CFVisual识别使用的。如果PFAM网站返回的邮箱结果为其他符号分割,比如空格分割(图54),读者记得把空格全部替换为Tab键——或者用EXCEL里分列功能并保存起来,这样就是Tab键分割的,事实上EXCEL保存为文本文件就是不同列之间是Tab键(如果只有这两种分割形式,作者也可以用代码去自动判别,但作者害怕有其他特殊情况,所以就统一要求PFAM的结果文件为Tab键分割的)。

图54

接着,介绍一下如何获取CDD的位置信息文件(图55、56、57、58)。

图55

图56

图57

图58

        点击图58里的Download按钮,即可获得CDD的结构域预测信息文件(Si.PME.Domain.CDD.txt)(图59)。

图59

        文件准备好后,可以直接用CFVisual绘制基因家族的结构域展示图了。首先,承接上文,可以直接根据PFAM或CDD结构域预测结果文件把结构域位置信息映射到Motif图和基因结构图中(图60、61),这样就实现了所谓的基因结构+Motif+结构域+进化树图的四图合一了。

图60

图61

        如果读者只想展示Motif图和结构域的位置关系,就在基因结构参数设置选项卡中去掉Show domain前面的勾(图62),再Redraw一下就可以了(图63)。同理,Motif参数设置选项卡中也是同样操作。

图62

图63

当然,如果读者只想绘制基因家族的结构域图,那么读者只需要输入结构域文件但必须输入预测用的蛋白序列fasta文件(图64),因为这个文件是用来确定基因家族成员的氨基酸序列长度的——也就对应结构域底下的那条长线(图65)。而前面绘制组合图的时候Motif或基因结构文件是提供了长度的,因此不需要再输入蛋白序列fasta文件。

图64

图65

        至此,作者把必要的东西都介绍的差不多了,剩下的个性化交互读者自行摸索。

2.6 单独绘制启动子顺势作用元件分布图

  关于这个启动子图啊,作者有一些话想说。关于开发CFVisual心路历程,作者以前从来没想过写软件,因为基因结构图和Motif图分别可以通过GSDS和MEME绘制并通过Ai或Ps拼接修图,虽然过程繁琐,但是效果满意。是研二之初,要做启动子分析,发现市面上并没有一款软件可以绘制启动子图。因此,无奈只能寻找已有的工具。作者小恋一下,通过EXCEL成功实现了启动子图的绘制并破解了绘制启动子图的绘图原理(这有可能是得益于作者第一个计算机相关的等级考试——Office拿到优秀成绩证书的成果)这里展示一下EXCEL绘制启动子图的效果(图66)。作者很高兴,但是绘制过程太麻烦,太繁琐,耗费自己太多时间,又不容易传授给师弟师妹。因此下定决定,自己去写一个绘制启动子图的程序。写出来了第一个启动子图,才有的后来。

图66

关于这个启动子分析啊,作者也有一些话想说。根据作者仅有的几次投稿经验,有位审稿人对启动子分析是这么说的(promoter analysis programs (especially for plant genome data) are notoriously unreliable and are best suited for setting up hypotheses to test empirically. Similar to the interpretation of the array data, the manuscript interprets the cis-element predictions without any cautions as to their accuracy. There is nothing inherently wrong with showing the promoter-analysis predictions, but caveats and limitations need to be recognized, presented, and discussed——译文:启动子分析程序(尤其是针对植物基因组数据的启动子分析程序)是出了名的不可靠,最适合建立假设来进行实证检验。类似于对数组数据的解释,手稿对顺式元件预测的解释没有任何关于其准确性的警告。展示推广分析预测本身并没有错,但是需要认识、提出和讨论警告和限制)。所以读者们在做基因家族分析中的启动子预测分析的时候,务必记住这位专家的建议。

然后是这个启动子序列如何获取的一些个人看法,作者声称阅读过几百篇基因家族文章,发现做启动子分析的文章还是少数。像华北理工大学的生信大牛宋小明老师以往的基因家族分析文章压根看不到启动子分析。像这种现象,作者个人的解释是,正如上段专家所讲,启动子分析程序是出了名的不可靠,这是其一。其二是,这个一般的基因家族套路分析中,启动子分析都是用代码提取的基因上游2000、1500或1000bp等长度的DNA序列作为假定的启动子序列。所以,本身启动子序列就不是真实预测的,而是根据经验假设的。所以,基于以上两点个人总结的原因,作者认为是解释这种启动子分析少做现象的原因。换句话说,灌水,也要基于真实的数据来分析。

但随着发展,作者知道越来越多的网课啊,家族流程啊,为了增加内容啊,工作量啥的啊,都会加上启动子分析。因此,这里,作者基于自己的经验对做启动子分析的朋友们有以下两点建议:①最好是实验数据或某些存储数据库得来的启动子序列②如果只能自己提取假定区间的启动子序列,作者建议提mRNA上游的2000bp(这是源于作者对启动子的概念、文献背景、几百篇基因家族文章的总结结果和经历的一个审稿人给的意见。For promoter analysis, it is unclear why only 1 kb upstream sequence was taken. Ideally, 2kb upstream sequences should be scanned for cis-acting elements——译文:对于启动子分析,尚不清楚为什么只取上游1 kb序列。理想情况下,应该对2kb上游序列进行顺式作用元件的扫描)。当然,以上关于启动子分析的看法是作者成长经历总结的建议,读者们还是要根据自身情况做选择。说的不好的地方,大佬们随意批评。

由于作者启动子分析做的少,只用过PlantCare网站(http://bioinformatics.psb.ugent.be/webtools/plantcare/html/)(这里也推荐这个网站,因为作者阅读的几百篇基因家族文献中大多数用的是PlantCare,而且这个工具的引用量也很高(图67)。作者也看过一些基因家族文献使用多个启动子元件预测网站综合结果来统计展示——这正好像前文所说可以综合多个结构域预测结果综合整理成一个结果进行展示)。因此,这里以PlantCare的使用步骤来讲解一下如何获取CFVisual识别的顺势作用元件的位置文件(图68、69、70、71、72、73)。

图67

准备启动子DNA序列,实验室或收录数据库下载的最好,只能自己提取假定区间的话,就写代码提取吧,具体可以参考作者在Github(https://github.com/ChenHuilong1223/CFVisual)提供的finally_promoter_genome.py代码。然后再用first_according_ID_extract.sequence_and_count_best.py代码从生成的全基因组所有的假定启动子序列提取基因家族成员的假定启动子序列。另外,其实有些数据库也提供好了基因上游的DNA序列供用户下载,比如拟南芥TAIR数据库(https://www.arabidopsis.org/download/index-auto.jsp?dir=%2Fdownload_files%2FSequences%2FTAIR10_blastsets%2Fupstream_sequences)。

图68

图69

        可以关闭PlantCare网页了,耐心等待PlantCare网站返回的邮件......

图70

图71

图72 只要+链的结果

图73 处理成CFVisual识别的四列

最后得到Example文件夹里的(Si.PME.PlantCare.result.txt)作为CFVisual绘制启动子顺式作用元件分布图的准备文件(图74)。——或者其他启动子预测网站获得的结果,只要结果格式能够处理成Si.PME.PlantCare.result.txt文件类型——从左到右的四列分别为基因名起始位置长度元件名称,都能绘制出图(图75、图76)(作者没有用过其他启动子预测网站,欢迎补充)。

图74

图75

图76

小结:使用PlantCare网站分析结果中,要根据自己的课题需求稍作处理,且只保留+链上的顺式作用元件预测结果。灵活地使用CFVisual的启动子绘图功能中的用户选择性地隐藏用户不想要展示的顺式作用元件控件,可以达到用户筛选顺式作用元件的效果——换句话说,用户获得PlantCare的结果之后,只需要删掉多余的列和-链所在行的结果即可直接用CFVisual绘制不再需要花费繁琐的功夫去筛选顺式作用元件类别了。(当然,除非读者对启动子元件十分熟悉,只操作几次即可确定好放在论文中的最终图。否则,作者还是建议读者老老实实地筛选处理掉不想展示的元件所在行吧!)

3. 最后

        软件使用者一般很关心的一个问题,你这个软件发表了没?

暂时还没发表,胆子小,主要是。但是如果读者使用CFVisual发表中文期刊,可以引用《谷子三结构域多铜氧化酶基因家族的比较基因组学分析》这篇文章,这是作者唯一的一篇第一作者发表的文章呢!骄傲一下。如果发表英文期刊,可以引用《Comparative Genomics of Three-domain Multi-copper Oxidase Gene Family in Foxtail Millet (Setaria italicaL.)》这篇OA期刊的文章(也是很神奇,作者投了分子植物育种,当时编辑建议作者二次发表到Computational Molecular Biology杂志)。

        使用CFVisual做基因结构+Motif+结构域+进化树的组合图或者绘制启动子顺式作用元件分布图的介绍就到此为止了。

你可能感兴趣的:(CFVisual绘制Motif+基因结构+结构域+进化树+启动子图的单独或组合图)