续上回WGCNA的代码实战https://www.jianshu.com/p/9a03a35cabf3,这回把WGCNA的原理找出来读一读。
Overview of WGCNA
WGCNA被分成以下几个部分:
- 建立网络
- 检测模块
- 选择模块和基因
- 计算拓扑性质
- 数据模拟
- 可视化
-
与外界软件交互
1. 建立网络
定义共表达相似度Sij, 来计算邻接矩阵,即计算任意两个基因之间的相关性,公式如下

这时,共表达的相似度值就在[0,1]之间
接下来,传统的相关性网络会设置阈值一刀切,如:大于阈值0.8定义为1,小于0.8定义为0,只有相关性为1的两个基因才能相互连接。
而WGCNA的优势在于,不设置阈值,采用加权的方法,即乘贝塔次幂。


对应函数pickSoftThreshold选择加权值,scaleFreePlot评估这个网络是否是无尺度拓扑网络。

2. 模块检测
模块里是一群高度相关的基因。WGCNA用非监督聚类(不事先设基因集),默认的方法是层次聚类,hclust函数。
层次聚类的一个缺点是,不能看到基因集里有多少个cluster。因此,这仍是一个学术争议,该怎样找到最好的cutting参数,或怎样评估基因集中cluster的数量。

总结一个模块的profile:很多函数都用来总结模块的表达谱,如
(1)moduleEigengene: 计算出E,E:加权平均表达谱,一个模块的第一主成分,他可以代表一个模块的表达谱。
(2)intramodular connectivity: 找出一个模块内的hub gene,来代表这个模块,通常这hub gene都是和E高度相关的。
计算模块的membership:

计算任意一个基因和模块(如蓝色模块)的相关性(无论这个基因是否在这个模块里),如果相关性为0,那这个基因就不在这个模块里,反之则在模块里。(E我们在上文中已经提过),对那些在模块边缘或者两个模块之间的基因来说尤其有效。得出的K值,又称ME值.
3. 筛选模块
WGCNA的目的是找具有临床意义或生物学意义的模块。
定义基因显著性测量GS:GS越高,这个基因越有生物学意义。 具体公式如下:



4. 计算拓扑性质


5. 模拟数据
simulateDatExpr, simulateMultiExpr
6. 可视化
共表达模块结构可以用热图呈现,基因和基因之间的连接度可以用TOMplot函数呈现,还有其他很多函数,自己探索吧
网友评论