来一场Cytoscape的旅行之出行
刘小泽写于18.10.14 跟着cyto导游继续探索网络世界
昨天看了cyto的基本使用,那么你有没有想为什么会开发出来这个工具呢?它美得性价比高吗?值得花费精力去学习吗?用工具和与人打交道一样,初次见面大家都多多关照,但是能否长期交往,还要考察许多个人特征。为了增加对这个工具的信任,我们需要深入了解它一下
为什么要做网络分析?
网络 vs 通路
考察数据之间相互作用,我们应该用的通路类型图更多一些,比如KEGG的pathway分析,二者有何不同? 网络 vs 通路 网络 vs 通路网络分析有几个优势
- 比如你已经筛选了一些基因,现在想看看基因之间的关系,或者它们的功能,就像这样: 网络分析优势
-
还可以看到组和组之间的联系,比如一个个的gene family,为寻找药物靶标提供了方便
-
基因之间的联系可能并不都是直白的两两联系,还有就是只有基因的某个因子和另一个基因的因子有关联,这个在通路图上可能显示的就不是那么清楚。而在网络图中,只要这个点我们感兴趣,就能给它坐标,接下来就是点到线的过程了。当然根据算法不同,点线之间的连接方式也不同
其实工具不重要,重要的是数据,这句话放到哪里都有用
网络可视化工具: 可视化工具
一般会有两种人需要需要用cytoscape:一种是想省事,不用编程就能做;另一种是需要发文章的,用R做的网络图不好精修,于是用这个。就像许多R做的图到了发表级别都需要AI处理一样
为什么这么多人选Cytoscape?
我们从不缺少美,也不缺少发现美的眼睛,这个网站就列出了许多的可视化工具。问题就在于:如何选择合适自己的,选择后是否能认真学下来
http://selection.datavisualization.chLearning Tools = Saving Your Time
看文章引用量破万就能知道,这的确是一款神器,在生物网络拓扑构建领域中,cytoscape可以说是领先的。but why?
-
首先,它支持的网络种类很多。比如蛋白互作(PPI)、转录调控网络图(TF-target)、网络聚类模块分析(Module)、miRNA调控靶标基因网络图、竞争性内源RNA网络(ceRNA)、通路交互网络(pathway-crosstalk)
-
其次,它灵活多变(用熟了是灵活,否则就是臃肿的参数设置),可以随意调节节点与变线的各种属性(如颜色、大小、粗细、形状等),保存格式多(最常用就是pdf),可以保存session方便以后修改(和R差不多),各种实用的插件(clueGO+cluepedia、bingo、cykeggparser、metdisease、mcode、cytoHubba、iRegulon、enrichment map等)Cytoscape的APP Store在http://apps.cytoscape.org/
-
给不同的人提供多种选择,大家都喜欢可视化,但不是所有人都喜欢图形界面,因为那里存在着太多的参数设置让人头疼,因此Github上Max Franz等人还为程序猿提供了网络可视化的js版本http://js.cytoscape.org/【今天偶然间发现的,惊喜😋,因为以后可能不用安装桌面软件就能进行网络可视化了,我个人还是更期待用程序去设定而不是用鼠标】
网络可视化的js版本
-
画图有许多工具,比如AI、PS也能画出网络图(注意是画!)使用专业的绘图工具,你需要指定每一个节点的颜色、每条线的特性,它是像素决定图形
所有的细节你都需要考虑,这对于一个数据分析者来说无疑是最头疼的
jimmy博客
这也是我开始为什么犹豫学习这个工具的原因,因为不想浪费大量的时间在图形处理上。于是我也能理解当时jimmy使用这个工具的心情了(http://www.bio-info-trainee.com/2055.html)
而用cytoscape恰恰相反,你的数据决定图形,只要能理解需要提交的数据意义,做的图就是问题不大的
数据决定图形绘制网络图注意问题
-
避免加载太多数据,尤其属性太多会使图形很臃肿;另外多个数据集放一起,很难观察总体的趋势
-
一般给node上色是为了突出不同的基因和因子,以及它们表达量的差别。不要为了美观再给edge/label上色,那样会很杂乱
-
如果要画其他基因相关数据,不要让它们与主要基因的图重叠,可以是使用线的粗细、虚实来区分
Cytoscape与Cytoscape.js
它们长得像却是两款独立的软件包,不过这并不妨碍它们做相同的事,那么它们有什么异同呢?选择哪个更适合自己呢?
Cytoscape | Cytoscape.js |
---|---|
桌面级:基于java软件 | 网站级:基于java script库 |
需要PC运行 | 支持大多浏览器(包括平板、手机上的) |
必须安装Java | 没有要求,只需要浏览器 |
鼠标点点点 | 键盘敲敲敲 |
用App拓展http://apps.cytoscape.org/ | 用Extrensions拓展http://cytoscape.github.io/cytoscape.js/#extensions |
数据映射:设置Style | 数据映射:设置基于CSS的Style |
不过这二者未来有可能会高度整合,因为目前cytoscape支持了Cytoscape.js network/table JSON (JavaScript Object Notation)文件的读写,另外cytoscape可以将style转成Cytoscape.js的style格式。
上面说这么多,都是为了加深对陌生事物的理解,和它混熟了学起来才更有效
网络分析的一般步骤
1 创建网络
R或者Excel
2 载入数据
2.1 数据格式
-
Cytoscape支持多种数据文件格式,其中主要的有3类:
-
sif格式:
nodeA<interaction>nodeB nodeC<interaction>nodeD …
包含3列,1和3列是有互作的基因名或蛋白质名等,第2列是相互作用的名称
-
xgmml格式:xml格式,可以规定节点和边的许多信息,比较复杂
-
txt格式:用tab分割的纯文本文件
至少两列,每一列都是基因名(或蛋白质名),同一行的两个基因(或蛋白质等)代表有互作关系,比如两列gene id 可以追加参数,比如设成3列:加上两基因调控的强弱系数 可以四列:例如是否共表达(1、-1表示)
-
- 载入数据
-
导入数据文件
network table(
以.sif格式为例):上图中第一列是自己实验中的基因数据,第三列是分析得到的相关基因数据,例如:实验中BAR1基因与MCM1基因是相关的,也就是说,它们之间一会是要连接起来的 -
再导入节点属性文件
node attributes
(.txt格式): 第一列是gene id(与先前导入的数据文件的gene id保持一致),后面可以自己设置(这里增加了mutaion和expression)
2.2 新网络雏形
之前导入的第一个数据文件在网络图中作为线存在,为连接nodes;
导入的节点属性文件中第二列的mutation信息,作为node color;
节点属性文件中第三列expression信息,作为node size
...而这些都是添加进来数据的时候,自己设置好的
新网络形成因此可以看出,只要提供不同的属性信息,就能在网络图中显示不同的样式
虽说它不像ggplot是图层叠加,但是它的原理也是一环套一环,生成的图层是相关联的
3 新网络设置
新网络的要素:点node、线edge【点又可以通过颜色、大小分区;线可以用方向、粗细区分】原理就是下面👇的图,具体操作昨天应该提到了
新网络组成要素4 分析网络
4.1 利用app- app分类
看能得到什么信息,是不是有意义的网络图,利用Cytoscape的特色:Apps
数量巨大,但主要分为以下几类
app分类4.2 利用app-比较好用的一些App
-
geneMANIA:基因功能预测,它会把相同生物过程的基因集或蛋白组合在一起,然后看要研究基因和它们的关系。比如:你可能不认识豆豆,不知道豆豆干嘛的,但是你可能认识花花,然后发现花花每天努力学生信,发推送,然后猜测:嗯,豆豆可能也是干这个的【傍晚写到这里,突然想花花了🤡,周末两天培训班,结束了快回来吧,还等着共进(食堂)晚餐呢】
-
McodeMolecular COmplex Detection:检测蛋白互作网络(PPI)中密切相关的区域(可能表示分子复合体complex)【相比于spring(最多提取2000个nodes)提取的信息更多】,也可以检测motifs、feedback loops
-
ANIMO(Analysis of Networks with Interactive MOdeling): 建模挖掘通路,对生物通路建模,与湿实验数据动态比较。例如,想要理解某个分子变化对通路的影响,就可以用这个
-
Pepper:预测新的互作关系,还能根据结构和功能进行蛋白的排序,除了按照连接特征(拓扑系数)外,还整合外部数据库(GO注释,比对已知的复合体)
-
Enrichment Map:基于网络的基因集富集(支持GSEA数据),将基因集组合成一个网络(cluster),nodes表示基因集,edge表示基因成员的重叠,node颜色表示富集程度。其中的热图可以让用户探索富集基因集的细节
4.3 根据基因列表大小选择不同的app
-
大基因集(100-2000基因)=》利用通路缩小范围=〉展示成通路网络=》可以用EnrichmentMap
-
中等基因集(100基因左右)=〉利用通路缩小范围=》展示成基因/表达产物网络=〉可以用ReactomeFI
-
小基因集(1-50个基因)=》利用功能预测扩展范围=〉展示成基因/表达产物网络,并且增加基因linker=》可以用带有linker的ReactomeFI或geneMANIA
5 导出网络
(table格式)以及图片(pdf等格式 )
简单的演示
1 2 3 4 5 6 7 8 9 10 11 12 13欢迎关注我们的公众号~_~
我们是两个农转生信的小硕,打造生信星球,想让它成为一个不拽术语、通俗易懂的生信知识平台。需要帮助或提出意见请后台留言或发送邮件到Bioplanet520@outlook.com