专栏首页生信修炼手册如何从PPI网络进一步挖掘信息

如何从PPI网络进一步挖掘信息

欢迎关注”生信修炼手册”!

从数据库中得到蛋白质的相互作用信息之后,我们可以构建蛋白质间的相互作用网络,但是这个网络是非常复杂的,节点和连线的个数很多,如果从整体上看,很难挖掘出任何有生物学价值的信息,所以我们需要借助一些算法来深入挖掘。

随着各个数据库中信息通量的不断提高,基于网络的分析方法越来越受欢迎,比如我们常见的蛋白质相互网络,基因共表达网络,转录因子调控网络,pathway网络等等,为了更好的理解后续的数据挖掘算法,首选要对网路的属性有一些基本了解。

从数据结构上看,我们所说的网络network是属于图Graph这一数据结构的,网络是一种比较直观的描述,就是点和点之间的连线,在算法上,为了准确描述一个网络,通常借助于邻接矩阵,示意如下

在网络中,根据节点的连线是否具有方向,可以划分为有向图和无向图两类,无向图中被一条线连接的两个节点其作用是相互的,比如基因共表达网络,两个基因间互为共表达基因,而有向图中,连线是有方向性的,比如转录因子调控网络,转录因子调控基因,所以连线由转录因子指向某个基因。

无向图的描述为undirected graph, 有向图的描述为directed graph。PPI网络由于蛋白的作用是相互的,所以通常归类为无向图。

除了连线的方向性,根据连线对应的值,可以将网络图分为加权和非加权两种, 以基因共表达网络为例,非加权图中连线是一个定性描述,两个基因具有共表达的趋势,就可以用连线连接,而加权图是一个定量描述,两个基因间共表达系数的大小对应边的值,在可视化时,值不同,对应边的粗细也不同。

邻接矩阵可以方便的描述任意一种类别的网络,如上图所示,邻接矩阵是一个二维矩阵,而且是一个方阵,行和列代表的都是图中的节点,在非加权图中,0代表两个节点没有连线,1代表两个节点间存在连线;在加权图中,每个单元格数值对应每条边的数值。

对于网络而言,需要了解以下几个基本概念

1. degree

网络由节点和边构成,对于一个节点而言, 该节点连线的多少,即为该节点的degree, 称之度,对于有向图,根据连线的防线,度又划分为入度和出度, 示意如下

图中每个节点上标记的数字就是该节点的度数。

2. shorest path

最短路径表示两个节点间的最短距离,在网络中,从一个节点到另外一个节点,可以有很多个路径,其中经过的节点数最少的称之为最短路径,示意如下

上述到A到B的最短路径为5。

3. closeness centrality

该统计量用来衡量节点的重要程度,基于最短路径进行定义,公式如下

4. Betweenness centrality

和closeness centrality类似,也是用来表征节点的重要程度,公式如下

在上图中。删除B和C中的任意一个,A都可以连接到E, 但是删除了D就不行了,所以D就比较重要。

5. density

密度代表的是网络中实际的连线数与理论最大连线数的比值,对于包含n个节点的网络,其最大的变数为任意两个节点之间都相连,共 n(n-1)/2, 示意如下

密度用来衡量一个网络的密集程度。

6. Clustering Coefficient

聚集系数,和密度类似,也叫做transitity,有两种定义,第一种称之为local clustering coefficient, 针对单个节点进行定义,对于某个节点而言,该统计量的值为与该节点直接相邻的邻近节点构成的网络的密度,示意如下

上图中的第一个网络,所有节点构成了一个clique, 即完全连通图,任意两个节点之间都存在了连线,local clustering coefficient 可以看做是衡量邻近节点组成的网络与完全联通图接近的程度,取值范围0到1,越接近于1,越接近一个完全连通图。

在此基础上,针对一个网络,还出现了average clustering coefficient的概念,就是计算每个节点的local clustering coefficient, 然后取平均值,公式如下

第二种是对于整个网络而言,称之为global clustering coefficient, 这个值的定义是在triangle graph的基础上,triangle graph直译过来就是三角形图,即3个节点构成的网络,示意如下

如上图所示,如果三个节点构成的网络是一个闭合的三角形,称之为closed triangle graph, 如果缺失了其中一条边,称之为open triangle graph。

global clustering coefficient 有以下两种定义方式

有文献研究发现真实世界的网络是一个scale-free network, 中文是无标度网络,意思是说在这个网络中,大部分的节点其度数都很低,只有部分节点有用很高的度数,示意如下

上图中的网络就是一个scale-free network, 只有黄色节点的度数较高,蓝色节点度数很低,在整个网络中,大部分都是蓝色节点,如果绘制该网络的节点度数分布图,应该是如下的一个趋势

横坐标为度数,纵坐标为为节点数,度数很低的节点占大多数,度数高的节点只是少数,当然这种描述是一种定性描述,为了准确描述,提出了幂律分布的概念,即上述分布图对应的表达式为

X代表度数,Y代表对应的节点数,有趣的是,将X和Y同时取对数,可以转换为一个线性方程, 推导如下

取对数之后的分布如下

对数转换之后,可以通过线性拟合确定各个系数的值,在之前的WGCNA中,选择最佳的power其实就是这个原理,通过比较不同power值条件下,线性拟合的R2值的大小,选择一个拟合效果最好的值。

在复杂的网络中,会存在部分密度较高的区域,这样的区域称之为community, 也有module等叫法,示意如下

在community内部,连线的密度较高,而区域部分的连线就少。community被认为是具有生物学意义的集合。对于PPI网络而言,其modules通常有以下两种生物学含义

  1. protein complex 蛋白质复合体,由多个蛋白质共同组成复合体,然后发挥生物学作用。
  2. functional module 功能模块,比如位于同一个pathway中的蛋白,其相互作用肯定更加密切。

所以得到网络之后,我们需要去识别communities,目前的有多种算法可用选择,在PPI网络中,常用的有以下算法

  1. MCODE
  2. MCL
  3. Nwewan-Girvan fast greedy algorithm

在后续的文章中,会介绍相应的工具,来从PPI网络中挖掘信息。

·end·

—如果喜欢,快分享给你的朋友们吧—

本文分享自微信公众号 - 生信修炼手册(shengxinxiulian),作者:lzyg

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Newick: tree文件格式简介

    Newick 是最常见的进化树文件格式,了解这种格式之前,有必要先掌握树状结构的构成。首先来看一个tree的示例

    生信修炼手册
  • minfi 分析甲基化芯片数据-数据导入篇

    如果要用这个包进行分析,首先需要在R中将我们的芯片数据读取进来,就是常说的import data。对于minfi 来说,其设计思路是通过读取SampleShee...

    生信修炼手册
  • python中的异常捕获

    无论是编程新手还是老手,都会遇到过程序报错,终止执行的情况,对于python的报错信息,可以分为以下两大类

    生信修炼手册
  • Hello GitHub

    想来GitHub对于理工科,尤其计算机专业的大佬们应该很熟悉了,但作为机械专业小铁渣渣,自从创建了我的GitHub账号,就从来没在上面刨过什么好东西,更没有啥拿...

    周旋
  • Machine learning -- CART

    1.算法介绍 分类回归树算法:CART(Classification And Regression Tree)算法采用一种二分递归分割的技术,将当前的样...

    昱良
  • Redis系列(八)底层数据结构之紧凑列表

    Redis 已经是大家耳熟能详的东西了,日常工作也都在使用,面试中也是高频的会涉及到,那么我们对它究竟了解有多深刻呢?

    呼延十
  • Spark中的聚类算法

    官方文档:https://spark.apache.org/docs/2.2.0/ml-clustering.html

    HoLoong
  • 决策树-CART算法

    总第80篇 01|前言: 本篇接着上一篇决策树详解,CART是英文“classification and regression tree”的缩写,翻译过来是分...

    张俊红
  • 编译型语言、解释型语言、静态类型语言、动态类型语言、强类型语言、弱类型语言概念与区别

    编译型语言和解释型语言 1、编译型语言 需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(li...

    Albert陈凯
  • Python学习-if条件语句

    Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。

    py3study

扫码关注云+社区

领取腾讯云代金券