今天还是讲Cytoscape,虽然已经写了很多相关的文章,但是依然有童鞋在问哪里可以下载Cytoscape这样没有营养的问题,这让本宫无比无比的痛心!!!
所以今天本宫会很详细、非常详细、巨详细、史无前例地详细、前无古人,后无来者地详细讲解如何使用Cytoscape。
Cytoscape是用于可视化网络数据的一个非常强大的工具,比如说表现一组基因间的相互关系,文本形式和网络图形式,在数据的表现力上孰优孰劣一目了然。
点(node)和线(edge)是网络图的两个核心要素。我们做各种各样的网络图,归根结底是对图中的点和线进行注释,我们通过改变点和线的样式来对点和线赋予各种各样的信息,从而实现数据的可视化。
很多童鞋可能在下载这一步就放弃了,因为下载速度可能会很慢,200M的宽带可能只有2kb的下载速度。本宫送佛送到西,翻过去给你们把火种带回来(见文末网盘链接)。
安装的时候先安装java,安装好了之后需要设置环境变量
在环境变量中,要修改两个地方,一个是添加JAVA_HOME。选择“新建”,变量名填上JAVA_HOME,变量值填上C:\Program Files\Java\jdk1.8.0_151,在java的安装过程中,默认一直下一步安装,所以装在C盘,如果你在安装过程中改了,那可能是D盘或者E盘,那么变量值要做相应的更改。
还要修改一个地方,就是Path,添加JAVA的变量值到Path中,选择Path,然后点“编辑”,在最后面添加如下语句;%JAVA_HOME%\bin;
打开命令提示符cmd,输入java -version,如果能正常显示,那表明装好了,你就可以装Cytoscape了
虽然网盘里的是最新版本3.60,但是不知道重新安装需不需要重新下载插件什么的,时间所迫,今天给大家所做的演示都是基于3.42版本,如果大家在使用过程中发现什么差别,请在文末留言。
欢迎页面
先来看一下Cytoscape的欢迎页面,最主要的功能就是数据导入了,在这里我们可以导入本地文件建立网络,也可以从数据库获取数据建立网络。
本地文件的基本格式大家上面已经看到了,就是两列节点信息,处于同一行的两个节点之间存在连线。所以这个表里基本的点和线的信息都已经有了。
再来看一下从数据库导入数据,输入感兴趣的基因名称,然后选择相应的数据库,导出数据。
从下面这么多个数据库中得到了N个网络
每个网络都进行了可视化展示(下图展示了其中之一)
基本功能介绍
下面这张图是Cytoscape的整体布局(名称都是本宫随便起的,方便下面详细介绍)
工具栏
View
如果你的哪个操作模块不见,可以在View这栏里找找看,其它的功能没啥,Zoom In这种功能,本宫相信你的鼠标是带滚轮的
Select
Select用的还是蛮多的,比如我们要选中与某一个节点相邻的所有节点。下图中演示了选中Tyms所有相邻的节点,当然edge也是可以进行这样的选中操作的,这里就不作演示了。
Layout
Layout主要用于改变整个网络的形态
Bundle Edges处理前后效果对比
旋转咱就不说了,来看一下Scale的效果,可以作一个局部的放大,也可以通过拉伸让过于密集的nodes分布得稀疏一些。
下面这些就是各种各样的layout了,大家可以多试一试,然后挑一个最接近自己理想样式的,在此基础上进行修改。
如果大家改样式改得面目全飞,改不过去了,就选Apply preferred layout还原一下。
APPs等下单独讲
Tools这块的功能就本宫个人而言用得很少,都是通过设置style以及APPs辅助分析进行操作。
快捷工具栏
导入网络数据这个和欢迎界面的一样,导入表格则是通过导入一个表格的信息对节点或者线注释(导入数据时建议导入txt格式的文件!)。比如下图我们导入一个基因表达量信息的表格,对节点进行注释,后续我们可以通过改变节点的大小来可视化表达量的信息。
导入表格数据时要注意三点:
1、导入的这个表格数据是针对全部的网络,还是只针对当前正在操作的网络。如果是针对全部的网络,那么后续根据表格数据设置格式的时候会产生全局的变化,各个网络图无法独立操作。
2、这个表格是针对node还是edge,如果是只针对node那么无法用这个表格的数据对edge进行注释。
3、设置好关键字,在这里node1才是与整个网络相匹配的关键字,Expression是一个注释列。
设置好之后,导入数据结果如下
根据Expression调整节点样式
导出图片只建议大家导出成PDF格式,高清无码,后续好编辑。
操作区(重点!!!)
画的图好不好看,就全看这一部分的骚操作了!
Network这块没啥好说的。
Style(重中之重)
Style的设置包括三部分:node,edge,network。
先看node,大家可能会觉得为什么你可以操作的选项比我的多呢?
看这里:
大家把自己常用的勾选好了之后设置成默认。
常用的设置包括描边(border),节点颜色(fill color),标注(label),节点形状(shape)。
后面edge和network大同小异,其中network中可以设置背景颜色。
下面就通过一个实例讲讲如何做好一个网络图(下列数据以及示例图已经上传在了网盘中)
首先是导入数据,这里combined_score已经作为edge的注释信息导入进去了,我们再导入表格注释就不需要导入edge的信息了。
再导入node的注释信息
我们把节点的形态调成圆的,锁定高度宽度后,节点可以调成正圆的
根据Expression设置节点大小,随Expression线性变化
调整节点颜色和相应的透明度,节点有Type注释的设置成白色,其它的为橙色
设置描边样式,有Type注释的节点分别设置成红绿蓝,默认白色(即没有注释的为白色描边)
根据Type注释设置节点的描边宽度,默认为0(没有描边)。
设置描边线条形状,效果如右图
Label设置
字体设置
文字大小
标注的位置
下面设置Edge
线条颜色随Combine_score渐变
线条粗细随Combined_score渐变
设置一下线条透明度(避免线条影响node的label的正常显示)
调整一下节点的分布,可以手动调节,也可以用layout里面的scale工具
最后导出图片时确保整个网络都能够完整地显示在作图区内
这里还做了另外一个示例供参考:
最后来讲一讲APPs,你可以把Cytoscape理解为IOS的手机系统,这些APP让整个Cytoscape的功能更加丰富。
之前的文章已经介绍过:ClueGO、CentiScape和MCODE。(见文末链接)
今天介绍一个文本挖掘的APPs,叫作Agilent Literature Search
在App magnager中可以直接下载这个APP。
这个APP用起来也很简单,设置如下
在Cytoscape中自动生成相应的网络图
网盘链接:https://pan.baidu.com/s/1skXS5Md
密码:2qi2
最后的最后,本宫希望大家能够把自己画的网络图分享出来(注意数据保密!),然后在公众号上搞一轮评选,画得最好的,由师兄给你包个大红包!不知大家意向如何?图片投稿(PDF格式)请加师兄微信:541363341。