Cytoscape是一款专注为复杂网络可视化提供解决方案的开源软件。导入网络图数据后,通过简单的点选操作,调整布局以及节点、边的属性,就可以绘制出精美优质的网络图。此外,其社区中的Apps商店为生物信息、社会网络分析和语义网络等问题提供了丰富且强大的插件帮助其完善可视化程度。
2.软件获取
(1)Windows平台点击下图红色箭头处可开始下载
(2)MaxOS、Linux等系统点击下图绿色箭头处可开始下载。
3.软件安装
若之前已安装Cytoscape软件,且软件版本不低于3.5,可以跳过此环节。若之前已安装Cytoscape软件,且软件版本在3.5之前则建议重新安装最新版本Cytoscape。
4.Cytoscape界面与功能
如下图所示,Cytoscape主要可分6个主要的功能区:菜单栏;工具栏;控制面板;网络主视图窗口;常用功能快速按钮;数据表格面板。
4.1菜单栏
1.4.1File菜单
文件(File)菜单包含打开、保存、关闭网络图文件、导入导出网络数据、输出图片等操作。
注:如果您看了一些早期版本的Cytoscape教程,教程中可能会要求您将数据文件整理成txt格式再导入,其实现在版本的Cytoscape已经可以支持csv、xls、xlsx等数据格式,不必进行文件格式转换。虽然支持csv格式导入,但还是推荐各位使用txt或xlsx格式进行导入,因为小编亲测csv文件可能由于编码等问题导致部分信息导入不全/导入错误。
1.4.2编辑(Edit)菜单
编辑窗口中有复制、剪切、粘贴、撤销、撤回撤销等操作。此外还有创建/销毁视图(View,网络主视图窗口中显示的图像,是网络图数据的可视化展示,摧毁后可以重新创建,相当于初始化)、销毁网络会清除数据表格面板中的数据和视图。
去除重复边、去除自连接边可以对数据去重、可以去除节点自己连接自己的情况(上期内容有讲到在R中去除自连接边的方法)。
1.4.3视图(View)菜单
视图窗口可以展示/隐藏各个面板,还可控制窗口的缩放等显示行为。若误关了窗口,可以在此还原。
1.4.4选择(Select)菜单
可以控制鼠标选择的范围(只能选择边/节点/注释,还是都能选);可以从已选中节点/边出发,快速选中相邻的节点/边;可以控制视图展示的范围,展示/隐藏选中的节点/边
1.4.5布局(Layout)菜单
布局菜单中为我们提供了多种布局模式和调节选项。
如下图A,Layout的前三个命令是用来手动调节局部外观,BundleEdges命令可以选择调节的作用域(调节适用于所有节点和边还是仅仅是选中的节点/边),选择后弹出窗口的第一个选项可以控制边操控点(如下图B)的数量,如设定为3后,可以看到选中的边出现了3个正方形方块,按住鼠标左键选中C图中方块进行拖拽,可以将边的路径进行修改;ClearAllEdgeBends命令可以清除所有对边的手动拖拽调整;NodeLayoutTools命令是一个可勾选命令,若勾选状态,可在主界面左下角观察到一个新增的面板,内含对节点外观、对齐行为、视图大小及视图角度的调节按钮。
Layout菜单的后续命令(下图中红色文字标注1-22对应的命令)对应不同的布局算法:其中小编常用的有:5、6、7。
命令5是利用节点的某种属性将节点按照顺序输出,最终所有节点呈环形排列,选择“none”就会按照数据在表中的出现顺序排列。如上面提到的研究中,假设节点数据中有一列属性“group”是反映人员的类别分组(医生、病人还是护士等),那么采用命令5对应的算法,以“group”这列为依据输出圆形,就可以得到前面例子中的网络图了。该算法的优点是可以按照某种预先计划好的规则/顺序(如前面的人员职业、代谢物的Class、肠道菌群的门等等)组织图形的排列,有助于展示不同类别节点之间的差异。
命令6是利用电荷斥力模型进行布局的算法,在边的连接关系确定的情况下,所有节点带有相同的电荷,这些节点由于电荷作用会相互排斥,若固定任意节点,在稳定状态下,可以算出其余每个节点的位置,这样就完成了布局。若属性选择“none”时,所有节点带有相同的电荷,选择其余属性时,属性的值会作为节点的电荷量影响节点对其他节点的排斥力。该算法的优点是节点之间的边不会交错、重叠,且网络结构相对对称、自然。
命令7与命令5类似,不过是利用度(上篇推送中有介绍,节点与其他节点的连接性)进行排序后将节点按度数由高至低顺序输出,所有节点呈环形排列。该算法的优点是度高的节点集中在下面,可以更好地突出强调重要节点。
此外,命令1会将节点按照矩阵依次排列;命令2会将节点按照层级进行排列;命令4会将节点排列为一列;命令20会将节点排列成“树”的形式。其余Layout算法多是上述算法的变体,在此不一一介绍。
值得注意的是,在进行布局时,许多算法右侧有一个箭头“>”,点击后可以选择作用算法范围:若选择“AllNodes”,改变对全部节点有效,若选择“SelectedNodesOnly”,改变仅对之前鼠标选中的节点有效。这个技巧可以帮我们制作更加复杂的网络图,如在绘制含有三羧酸循环(TCA)代谢通路的网络时(如下图),可以先对整体布局进行设定,然后选择TCA循环中的代谢物,然后再布局菜单中对这些选定的代谢物进行环形布局。
1.4.6应用(Apps)菜单
Apps菜单内的AppManager可以查看、下载各种应用程序,这些应用程序会增加某些菜单中的选项和功能,为网络图的可视化提供强有力的帮助。
注:在以前的Cytoscape版本和教程中,应用程序被称为插件(Plugins)。
1.4.7帮助(Helps)菜单
帮助菜单可以查看官方教程、引用方式、联系工作人员、汇报bug、检查更新、查看版本等操作。
4.2工具栏
工具栏包含多数常用功能的图标(这些功能同样可以在菜单栏中找到),将鼠标指针在对应图标上悬停约2s,即可观察到关于该按钮功能的描述(如下图A所示)。工具栏中的14个图标(如下图B所示)对应着常用的14个命令他们都可以在菜单中找到对应命令,其中4是导入边文件、5是导入节点文件,11是同时选中当前节点和当前节点的相邻节点(可多次点击)。12是隐藏选中节点,13是显示所有节点。
4.3控制面板
控制面板主要有5个模块(如下图红色数字1-5所示),我们主要使用“Style”模块;模块3选择展示数据可在R/Excel中完成;模块4、5主要作用为设定、修改图例,可以在AI等软件中进行事后编辑。
Style模块可以控制网络图的风格,包括主题配色、节点形状、边的形式等多种细节。选中Style模块后,点击蓝色箭头所示小三角,可以为网络图设定不同的主题,快速改变网络图的外观。下方红色箭头所示为Style模块下属三个子页,点击后分别对应节点、边和网络图的调整。
下图中红色文字标注了针对节点的各种调节选项:其中轮廓对应节点外层的一圈描边轮廓线;文本标签为跟随节点位置显示的文字标识,默认为node文件中的name列内容,也可以进行自定义更改;当锁定长宽比处的框进行勾选时,可以调节Size改变节点尺寸,当锁定长宽比处的框取消勾选时,需要使用节点高度、节点宽度两个选项分别控制节点的大小。
1.4.8利用控制面板style模块调整网络图
可以看到每个属性中都有3个正方形的方块,这三个方块分别对应属性的默认值、由数据进行的Mapping和手动赋值(如下图所示)。三种设定的实现顺序为:
(1)首先将所有节点、边的属性设定为默认值。
(2)将准备好的数据Mapping到节点、边的属性中。
(3)最后,可以进行手动赋值微调网络,可以选择多个批次的节点/边,给它们用不同的属性分别赋值,最后将手动赋值的更改应用到网络图中。
默认值和手动赋值都是点击对应的方块按钮后输入/选择需要的值,较为简单,接下来我们将重点介绍数据到属性的Mapping。
前期公众号,我们讲解了节点文件和边文件的各种属性,以及这些属性的准备方式,在准备好这些数据后,下一步就是将这些属性映射到网络图中(这一过程通常叫做属性的mapping或projection),使网络图的外观进行对应的改变。Cytoscape中有3种mapping方法,分别为:
(1)ContinuousMapping——连续变量映射
(2)DiscreteMapping——离散变量映射
(3)PassthroughMapping——直接赋值映射
继
下面对三种映射方式一一进行简介
1.4.8.1ContinuousMapping——连续变量Mapping
ContinuousMapping可以将原始的数值属性经过线性变换后转化为对应的网络图外观特点。操作方法如下图A中1-4所示。
(1)首先点击node页面中的高度属性箭头所示方形按钮
(2)在弹出窗口中的Column行中选择一个数值型的变量,这里选择的是“HEKScore”变量
(3)在MappingType中选择ContinuousMapping
(4)点击下方的矩形弹出下图A右侧的调节窗口。
1.4.8.2DiscreteMapping——离散变量映射
离散变量映射可以应用于给不同的类型节点赋予不同的颜色、形状等操作。
离散变量映射的操作方法如下(以对Shape属性的Mapping为例):
(1)首先单击Shape行中间的Mapping按钮
(2)在弹出的窗口中选择变量,这里选择“Type变量”,字符型,取值为“Gene”或“Protein”用于标识节点类型。
(3)选择DiscreteMapping,选择后,在下方弹出一个列表,左侧是变量的所有取值,右侧是对应的Maping值
(4)单击下方Gene右侧的格子,会新弹出一个图形选择窗口
(5)在弹出的图形选择窗口中选择需要的图形
(6)点击“Apply”按钮完成
1.4.8.3PassthroughMapping——直接赋值映射
直接赋值映射常用于在网络图中展示节点的名称,在网络图中直接展示节点的名称,或者将准备好的颜色变量直接传递给对应属性,或者将前面准备好的控制节点大小的值直接Mapping到节点大小(“Size”)属性上(但是不建议将节点大小、边的粗细等属性直接传递,因为直接传递可能会出现不够美观,或者某些节点过大/过小的现象,这时还是建议使用ContinuousMapping来对属性进行赋值)。
直接赋值映射的操作方法如下(以对Label属性的Mapping为例):
(1)点击“Label”行的Mapping按钮
(2)在“Column”右侧选择“name”列作为赋值映射的依据
(3)在“MappingType”右侧选择“PassthroughMapping”
注:当用于Mapping的数据有空值时,属性会以默认值为准。但是当用于Mapping的非空值数据通过调整“把手”被排出在用于Mapping的范围之外时,相应的属性会是“无”的状态(如长度/宽度为零)而非属性的默认值。
1.4.9对个别节点手动微调
前述操作完成后,若对网络图进行微调,可以按住ctrl键时用鼠标框选/点选要微调的一个或数个节点,随后可拖拽这些对象进行空间上的位置调整,也可以单击控制面板中对应属性的手动赋值按钮(以调节节点的FillColor属性为例),如下图:
(1)在选定要调节的节点后,点击“FillColor”行所对应的手动赋值按钮
(2)在弹出的窗口中选择需要的颜色
(3)点击下方的确认按钮,完成手动调节
注:这里选中节点的过程也可以使用前面讲到的从表格中点击数据所在的行进行选取,二者是等效的。区别在于在数据表中将数据排序和数据选取相结合可以帮助您更快更优雅地选取想要调节的对象。
注:控制面板和数据表格面板都是可悬浮(floatable)的,点击各自右上角的图标就可完成悬浮,悬浮后可以自由拖拽和缩放(在双屏操作时尤其便利),再点击相同位置的图标(两种图标在单击后会互相切换)。
4.4网络主视图窗口
顾名思义,网络主视图窗口就是展示网络图的窗口。在这里可以点选节点和边,可以通过鼠标滚轮缩放整个窗口,也可以鼠标左键单击窗口中任意空白处拖拽窗口查看网络图。
4.5常用功能快速按钮栏
这一栏提供了一些常用功能的按钮访问方式,对应的功能见下图。其中节点是否可选、边是否可选、标签是否可选可以控制鼠标在“网络主视图窗口”中的选择范围,如想要选择节点时为了防止不小心点选到文字标签,可以将“标签是否可选”这一开关关闭(蓝色为开启,黑色为关闭)。最右侧的开关可以控制是否显示鸟瞰图(图中黑色箭头指示鸟瞰图)。
4.6数据表格面板
数据表格面板展示了节点文件和边文件。上方的七个按钮可以对数据表进行快速操作。按钮1可以控制表格的展示范围;按钮2可以控制数据表展示出来肉眼可见的列;按钮3可以新增列;按钮4可以删除指定列;按钮6可以根据现有列自定义公式计算新的列的值;按钮7可以将表格导出。
在数据表中可以通过双击某一个格子对格子内的值进行快速更改,也可以选中某个/些格子后右键->“edit”编辑格子内的内容。右键菜单中的前两个命令可以分别将当前格子内的值快速赋值到该列的全部格子或者是该列的全部选定格子中。但是不推荐这么做,对数据的修改和处理还是建议大家在导入前完成,否则容易出现错误,且错误可能难以溯源。
本期内容到此结束,希望大家可以结合自己的data进行大胆尝试,继续总结自己的实战经验。