1. 简介
1.1 背景
WGCNA(weighted gene co-expression network analysis,权重基因共表达网络分析)是一种分析多个样本基因表达模式的分析方法,可将表达模式相似的基因进行聚类,并分析模块与特定性状或表型之间的关联关系,因此在基因组研究中被广泛应用。
相比于只关注差异表达的基因,WGCNA利用数千或近万个变化最大的基因或全部基因的信息识别感兴趣的
基因集
,并与表型进行显著性关联分析。既充分利用了信息,也把数千个基因与表型的关联转换为数个基因集与表型的关联,免去了多重假设检验校正的问题。
WGCNA算法首先假定基因网络服从
无尺度分布
(scale free network),并定义基因共表达相关矩阵、基因网络形成的邻接函数,然后计算不同节点的相异系数,并据此构建分层聚类树(hierarchical clustering tree),该聚类树的不同分支代表不同的基因模块(module),模块内基因共表达程度高,而分属不同模块的基因共表达程度低。
1.2 无尺度网络
网络的数学名称是图,在图论中对于每一个节点有一个重要概念,即:度(degree)。一个点的度是指图中该点所关联的边数。如下图,如果不加以思考,人们很容易认为生活中常见的网络会是一种random network,即每一个节点的度相对平均。然而第二种图,即scale-free network才是一种更稳定的选择。Scale-free network具有这样的特点,即存在少数节点具有明显高于一般点的度,这些点被称为hub。由少数hub与其它节点关联,最终构成整个网络。这样的网络的节点度数与具有该度数的节点个数间服从power distribution。生物体选择scale-free network而不是random network尤其进化上的原因,对于scale-free network,少数关键基因执行主要功能,这种网络具有非常好的鲁棒性(Robust),即只要保证hub的完整性,整个生命体的基本活动在一定刺激影响下将不会受到太大影响,而random network若受到外界刺激,其受到的伤害程度将直接与刺激强度成正比。
共表达网络:点代表基因,边代表基因表达相关性。加权是指对
相关性值进行冥次运算
(冥次的值也就是
软阈值
(power, pickSoftThreshold这个函数所做的就是确定合适的power))。无向网络(unsigned network)的边属性计算方式为
abs(cor(genex, geney)) ^ power
;有向网络(signed network)的边属性计算方式为
(1+cor(genex, geney)/2) ^ power
; sign hybrid的边属性计算方式为
cor(genex, geney)^power if cor>0 else 0
,
sign hybrid意味着它既包含加权网络也包含非加权网络
。这种处理方式强化了强相关,弱化了弱相关或负相关,使得相关性数值更符合
无标度网络
特征,更具有生物意义。除了软阈值还有硬阈值一说,计算方式是 a_ij = 1 if s_ij > β otherwise a_ij = 0。这里的β就是硬阈值(hard threshold)。
Module(模块):高度內连的基因集。在无向网络中,模块内是高度
相关
的基因。在有向网络中,模块内是高度
正相关
的基因。
Connectivity (连接度):类似于网络中 “度” (degree)的概念。每个基因的连接度是与其相连的基因的
边属性之和
。
Module eigengene E: 给定模型的第一主成分,代表
整个模型的基因表达谱
。即用一个向量代替了一个矩阵,方便后期计算。
Intramodular connectivity: 给定基因与给定模型内其他基因的关联度,判断基因所属关系。
Adjacency matrix (邻接矩阵):基因和基因之间的加权相关性值构成的矩阵。
TOM (Topological overlap matrix):把邻接矩阵转换为拓扑重叠矩阵,以降低噪音和假相关,获得的新距离矩阵,这个信息可拿来构建网络或绘制TOM图。
2. 一般步骤
3. 代码
利用WGCNA有一步法建网络的,也有step by step的方法,为了保证理解,建议至少过一遍step by step。
安装WGCNA根据不同的操作系统可能略有不同,我在macOS下安装着实废了一番功夫。这一部分不提。