主要内容来自 http://www.mamicode.com/info-detail-548009.html 有删改
Weighted Gene Co-Expression Network Analysis(以下简称WGCNA),是一种从芯片数据中挖掘模块(module)信息的算法。在该方法中module被定义为一组具有类似表达谱的基因,如果某些基因在一个生理过程或不同组织中总是具有相类似的表达变化,那么我们有理由认为这些基因在功能上是相关的,可以把他们定义为一个模块(module)。这似乎有点类似于进行聚类分析所得到结果,但不同的是,WGCNA的聚类准则具有生物学意义,而非常规的聚类方法(如利用数据间的几何距离),因此该方法所得出的结果具有更高的可信度。当基因module被定义出来后,我们可以利用这些结果做很多进一步的工作,如关联性状(随后会以这方面的应用为Example),代谢通路建模,建立基因互作网络,甚至进行eQTL(这个确实很方便,不过前提是实验题有钱去杂那么多芯片)。不过我个人从中获益最多的是能加深人们对于生物体所选择的这种Scale-Free Topology网络调控的思考(下文会提到)。
WGCNA所分析的数据是芯片数据(当然需要杂很多芯片,比如若要研究细胞凋亡,那么使用改方法需要实验者提供细胞凋亡各个时期的芯片数据,以了解这一生理过程中细胞内所有基因的表达变化)。
在co-expression network中,每一个基因在一个特定时间或空间的表达情况被视做一个点(node),可以简单的理解成一张芯片上的一个基因的表达状况就是网络中的一个node。如果我们做了80张芯片,每张芯片上有8000个基因,那么我们可以用一个80*8000的矩阵来表示实验结果。为了得到基因间的关联情况,我们需要计算任何两个基因间的相关系数(文章中采用Person Coefficient),在经过该步运算以后,我们可以得到一个8000*8000的实对称阵S,sij表示第i个基因和第j个基因的Person Coefficient,即两个基因的表达谱相似性。
下一步的分析是该方法的第一个靓点。为了知道两个基因的表达谱是否具有相似性,需要人为规定一个阈值,只有当基因间的Person Coefficient达到这一阈值后(如0.8)我们才认为这两个基因是相似的,否则则不相似。为此人们定义了一个邻接矩阵,很显然在通过以上步骤处理S矩阵后,得到的邻接矩阵将是一个0/1矩阵(该矩阵主对角线上元素被规定为0,这一点很重要)。但是这种分析方法存在一个很明显的局限,即我们没有理由认为Person Coefficient为0.8的两个基因与Coefficient为0.79的两个基因是有显著差别的,但是以上算法却无法避免这一处境。而WGCNA采用了一种基于软阈值的判定方法很好地避免了这一问题。软阈值的思想是通过权函数将邻接矩阵中的元素连续化(所以方法才称之为Weighted Network),常用的权函数包括sigmoid函数和power函数。