Cytoscape:庞大的相互作用网络出图神器
作者:互联网
作者:麦子(转载请注:解螺旋·医生科研助手)
在生信分析里,各种物质相互作用网络(interaction network)的研究也很丰富,数据比较复杂。今天安利的Cytoscape就是一个专用于互作网络数据可视化的软件,比如蛋白-蛋白相互作用(Protein-Protein interaction, PPI):
还有mRNA–microRNA相互作用:
反正就这个意思,这些图不加说明的话长得都差不多。不好意思今天的图例找得有点丑0.0不过其实可以作得很漂亮的,我们来玩一玩(我真的不是在黑这些文章=_=)。
软件在官网下载:http://www.cytoscape.org/download.php,会自动检测你的操作系统,提供合适的版本。如果你没有安装必备的Java运行环境,它也会提示你安装:
准备数据
先观察一下那些图,基本结构就是圈和圈之间的连线。圈圈在软件中叫Node(节点),有source node(源节点)和target node(靶节点)的区别;中间的连线叫Edge。所以,数据表要有一列源节点,一列靶节点,于是它们的关系(Edge)就自动确立了,其他的都是Node或Edge的属性。
以上面的第一张颜色有点像西芹百合的图为例(Nat Commun. 2017 Feb 16;8:14356.),从文献中下载作图所需的Excel表格(SupplementaryData 2),筛选出FOC≥1.5,q-value≤0.01的高置信(highconfidence, HC)PPI,贴到一张新的表格里。(不过,实例图还合入了既往报道过的PPI,我懒就不合了,所以待会出图会跟原文略有不同。)
表格的字段很多,但都可归为那三个元素:
为了能让这么多的字段在窄窄的屏幕上显示完,我调成竖排文字了,请自行适应=_=
第1、2列是HUGO命名法,最后一列是具体相互作用的结构域,都属于注释内容,不管了。
导入文件时,把Common1设为源节点,Common2设为靶节点,后面的都自动检测为Edge的属性。
可以看到前两列的源节点都是ABCB5,靶节点分别为EPHA2和ERBB2,意味着ABCB5会分别和后两者发生相互作用。当咱们自己建表格时也是这样处理,如果一个蛋白要和好几个蛋白发生相互作用,仍是一个关系建一行。
单击字段名选择属性。一般节点的属性都是字符串(String),即图中圈出来的“ab”符号,后面的1、123分别表示整数、长整数,1.0表示小数,y/n显然是YES/NO,一般软件会自动检测,但我们最好还是检查一下。
对于本例中的表格,可见HC-PPI、OncoPPI、ME-LUAD等等好几列都只有0和1两个值,软件会自动选择整数,但其实这些字段表示,那一行关系是否属于HC-PPI,是否属于OncoPPI、是否属于ME-LUAD,所以不是数值而是字符串。如果当初输入的是TRUE/FALSE,那这里就选y/n,这只是个人工作习惯问题。
出图:一点一点把数据变美
导入后会生成一张初始的图。嫌丑的话可以通过Layout菜单里的各种选项调整布局,或自己点选、框选(按住Ctrl)相应的节点来拖动,DIY布局:
再通过左边控制台中的Style选项卡来设置画风,在第2步下拉框中选一个自己喜欢的模板,再在第3步选择Node,在第4步的Def.一栏调整细节;然后回到第3步选Edge继续修改细节:
然后成果就是这样:
到这步,跟文献实例主要的距离在于:1)人家的圈圈有大有小;2)有绿色标出比较重要的几个蛋白;3)有蓝色的线标出肺腺癌中具有互斥性基因组变异(就是数据表中的ME_LUAD字段)的PPI。
先看后两者,因为比较容易,就是用左边控制台的Select功能,筛选出那几个重要蛋白,和ME_LUAD值为1的关系:
再回到Style选项卡,在Byp.一栏设置已选中元素的画风:
在画布上单击,取消选择就OK了(不满意想换颜色就回到Select栏,点下方的Apply,再回到Style继续调)。成果:
至于每个节点的大小,本来是要在表格中添加一列,设为Node的属性,再在Style中根据属性设置大小。
这篇文章的做法则是,用了Analyzer工具对数据做了进一步分析之后,用分析结果中的某一列作为节点属性:
Analyzer在工具菜单里,一路点下去就会傻瓜式地得到很多信息:
文章中另一些图片也是从这个结果中来,这里就不展开了。就看看界面下方的表格栏,一下子多了很多列,这些分析结果都可以作为Node的属性,进一步做可视化处理:
回到左边的Style栏,打开Size的下拉框,Column选择Degree,Mapping Type选择Continuous Mapping,再单击Current Mapping那个图例,就可打开弹框,拖动两个锚点设置最大最小值,随意拖到自己看着舒服为止。意思很明了,就是每个节点的大小,是根据Degree值来展示的。
因为节点有大小变化,所以理应创建图例说明(然而文章中没有):
导出图片,可惜图例并不能直接插到完成图中,还需要后期PS合成,唉:
还可以展示更丰富的信息
刚才我挖了个坑,嫌这张图片丑,还可以变得更美、展示更多信息的。现在我就来填这个坑。下面有些地方就要脱离这篇文献的实例了。
一、节点的颜色也可以根据属性值设置
做法和刚才设置Size时大同小异。然后,刚才那些筛选出来的特殊蛋白,用别的形状表示,就在Shape中设置:
同理,如果研究不同元素的相互作用,如mRNA-microRNA,可以在数据表中加一列,注上每个源节点的类别,然后将microRNA设成菱形啥的。
二、Edge的粗细可根据某个值变化
不过这篇文章的数据不太合适展示这个功能,看看另一篇,线条粗细表示相互作用强度:
Sci Rep. 2017 Jan13;7:40356.
三、可通过箭头、颜色等表示上调、下调的方向
上面Sci Rep.那张图就是用红色表示上调,绿色表示下调,作法的本质也就是在数据表中加一列设置节点属性。
当然也可以通过箭头和标签表示。然而这篇文章竟然没提供Excel表,我只好随便建一个来演示。
在表中加上一列表示Direction属性:
把direction设上标签、颜色、形状:
注意形状那里是选择Target Arrow Shape一项,如果选了Source Arrow,那么箭头就是指向源节点了。然后出图:
所以基本的作图思想就是:1、建立关系;2、展示全局属性(通过Style实现);3、高亮特殊属性(Select+Style、Style各项下拉框)。
常用的功能差不多也就这些,基础版本就能实现。如果还要探索多一点玩法,可以去官网下载插件(APP):
如果你还有更精致的追求,App也满足不了你,那么……Cytoscape是个开(深)源(水)软件,你可以自己写程序开发App的,官网有教程。麦子就不再往下挖了。
标签:Style,Cytoscape,PPI,神器,出图,Edge,一列,节点,属性 来源: https://blog.51cto.com/u_15127638/2777815