WGCNA:加权基因共表达网络分析

2019-05-20 10:29:35 浏览数 (1)

加权基因表达网络分析(Weighted gene co-expression network analysis, WGCNA),又叫权重基因共表达网络分析,其根本思想是根据基因表达模式的不同,挖掘出相似表达模式的基因,定义为模块(module)的一种算法。具有相似表达模式的基因很可能是紧密共调控的,功能紧密相关的或同一条信号通路或过程的成员,有其特定的生理意义。芯片原始数据由R语言预处理后,得到基因表达数据,然后由maSigPro包处理得到整个肝再生过程和肝癌发生发展过程中的差异表达用来构建加权基因共表达网络。然后根据基因表达的相似性(共表达的基因)把网络分成几个模块,把每个模块和外部特征(比如时间点,病理进程等)进行关联,同时和maSigPro结果进行对比,鉴定模块中的关键基因(driver gene或hub gene),进行可视化。

1. 构建加权相关性基因网络软阈值的选择

WGCNA中对基因表达值之间的相关系数取n次幂,这是和普通聚类的最大不同,其直接结果是把基因间相关性的强弱的差异放大。假如某两对基因之间未取幂之前的相关系数差异为4倍,假如对各自相关系数取4次幂,则这种差异就变为256倍,强弱关系分明。对每两对基因(i,j)之间的相关系数的幂取某特定的值β,以此来计算所有基因之间的相关性,也就是adjacency矩阵:

ai,j = |cor (i , j) | β

由这些相关性系数,可以构建网络,其中基因作为网络中的节点(nodes),而ai,j作为边的权重,高相关性代表强连接,反之亦然。每个基因的连接性(度)的大小反应了和这个基因相连的基因的多少。WGCNA提供几种相关性的算法,其中包括Pearson correlation(cor()函数)、Biweight mid-correlation(bicor()函数)、Spearman correlation(cor(x, method=“spearman”)函数)本研究中采用WGCNA默认的Pearson相关,Pearson correlation计算快速,但对离群值敏感。

可以看出,adjacency的结果直接取决于β的取值,其取值的高低直接影响模块的构建和模块内基因的划分。根据接近无尺度网络(scale-free network)的最低值来确定β值。在随机网络中,一般认为每个节点的重要性是一样的,而实际上,许多领域的许多类型网络都是无尺度网络。无尺度网络对生物的进化有重要意义,因为大部分nodes是连接度小的基因,这样在某些不利的条件下,只要位于关键节点的基因保持其稳定性,那么整个网络都可以保持很好的“弹性形变”,不会崩溃而导致毁灭性灾难。而一旦选择了合适的构建无尺度网络的β值,一方面,少数的节点有很多连接(也就是hub基因),另一方面,大多数的点有少的连接度。WGCNA给出了如何选择这个阈值的方法,其函数是pickSoftThreshold()。

2 加权共表达网络的构建和模块识别

一旦选择好了构建网络的β值,那么从网络构建到模块识别需要四个步骤

2.1 第一,通过拓扑重叠计算每两个基因之间的不相似性。

两个基因之间相似性通过拓扑重叠(TOM)来计算。简单说,如果基因i,j有很多相同的邻接基因,那么TOM(i,j)就很高,这意味着基因有相似的表达模式。TOM(i,j)= 0表示基因ij的网络没有共同的邻接基因,而TOM(i,j)= 1表示,基因ij有着完全一样的网络邻接基因。TOM作为相似度的度量可以被转换为相异度,disTOM=1-TOM。

2.2 第二,得到基因聚类树

根据基因表达之间的相似性,进行等级聚类。然后通过基因间的不相似性转换,得到基因聚类树。

2.3第三,通过对树的剪切把表达一致相基因划分到相同模块中。

一般采取动态混合切割算法。

2.4 第四,合并相似模块

通过模块特征基因(module eigengenes,ME)合并非常相似的模块。ME代表了一个模块所包含的基因的表达数据,可以代表这个模块进行数学运算,比如可以和其他模块进行关联,可以聚类(再次),可以和外部特征关联。通过ME对模块进行聚类后,设定一定阈值合并,通常这个阈值设置为0.15~0.25之间。并且,一般只merge一次,但如果仍然有一些模块非常相似或者想要更大的模块,也可以再次merge。

得到每个模块所包含的基因后,可以对每个模块进行生物功能等分析,也可以对感兴趣的模块筛选hub基因(会另外再写hub基因筛选等)。但一般会把模块和外部特征联系(比如疾病状态,疾病分期,时间序列的某些重要时间点等),所以下一步要把模块与外部信息(traits)关联。

3 基因模块与外部信息关联

一旦把基因模块与外部特征相关的信息关联在一起,就可以找到对所感兴趣的信息相关的模块和基因。因为前面已经得到了ME,所以可以利用cor(MEs, datTraits)函数计算模块与外部信息的相关系数,并且可以计算其p值,WGCNA提供了其相关性可视化的函数labeledHeatmap(),结果得到的是每个模块与外部特征的相关性矩阵。从中可以发现与感兴趣的外部特征高度相关的模块。

0 人点赞