搜索
查看: 6798|回复: 8

[tutorial] 学习WGCNA总结

[复制链接]

11

主题

34

帖子

330

积分

版主

Rank: 7Rank: 7Rank: 7

积分
330
发表于 2016-9-15 16:02:15 | 显示全部楼层 |阅读模式
本帖最后由 hope 于 2016-9-15 16:33 编辑


在转录组数据处理过程中我们经常会用到差异表达分析这一概念,通过比较不同处理或不同组织间基因表达量(FPKM)差异来寻找特异基因,但这前提是你的不同处理或不同组织样本较少,当不同处理或组织有较多样本,如40个,此时的两两比较有780组比较^_^,这根本不是我们想要的结果;

此时就需要WGCNA(weighted gene co-expression network analysis)将复杂的数据进行归纳整理。除了这种最常见的比较差异表达,我们还想知道在不同处理或不同组织间是否有些基因的表达存在内在的联系或相关性?WGCNA同样可以帮助我们预测基因间的相互作用关系。

WGCNA术语
权重(weghted)

Module

模块(module):表达模式相似的基因分为一类,这样的一类基因成为模块;

Eigengene

Eigengene(eigen- +‎ gene):基因和样本构成的矩阵,https://en.wiktionary.org/wiki/eigengene;

Adjacency Matrix

邻近矩阵:是图的一种存储形式,用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间关系(边或弧)的数据,这个二维数组称为邻接矩阵;

Topological Overlap Matrix(TOM)

整体思路

先对数据进行处理→分层聚类→表达模式相似的基因组成模块→研究某一个模块中相关基因的功能富集(GO,KEGG),各个模块与样本表型数据间的相关性,各个模块与样本本身间的相关性(没有表型数据的情况,如不同组织)→具体到特定模块后分析其所包含基因间的相互作用网络关系,并找出其中的关键啊基因。

分析构建的网络寻找以下有用信息
这类处于调控网络中心的基因称为核心基因(hub gene),这类基因通常是转录因子等关键的调控因子,是值得我们优先深入分析和挖掘的对象。

在网络中,被调控线连接的基因,其表达模式是相似的。那么它们潜在有相似的功能。所以,在这个网络中,如果线条一端的基因功能是已知的,那么就可以预测线条另一端的功能未知的基因也有相似的功能。
R脚本

输入数据为RNA-seq不同处理或组织所有样本的FPKM值组成的矩阵,切记含有 0 的要去掉;

字数受限,详细R实现过程见:http://tiramisutes.github.io/2016/09/14/WGCNA.html#more
部分结果图简单解释

Cytoscape生成网络图

只需要第二个edges文件就能构建网络图。导入该文件后,在软件的导入设置中,将第一列设置为fromNode,第二列设置为toNode,最后把第三列设为网络关系属性,完成设置,便可生成网络图了。

WGCNA样本要求

由于WGCNA是基于相关系数的表达调控网络分析方法。当样本数过低的时候,相关系数的计算是不可靠的,得到的调控网络价值不大。所以,我们推荐的样本数如下:


当独立样本数≥8(非重复样本)时,可以考虑基于Pearson相关系数的WGCNA共表达网络的方法(效果看实际情况而定);

当样本数≥15(可以包含生物学重复)时,WGCNA方法会有更好的效果。

当样品数<8时,不建议进行该项分析。
报错暨解决办法

按照WGCNA手册第五步Network visualization using WGCNA functions时报错如下:

1
2
3
4
> TOMplot(plotTOM, geneTree, moduleColors, main = "Network heatmap plot, all genes")

Error in .heatmap(as.matrix(dissim), Rowv = as.dendrogram(dendro, hang = 0.1),  :
row dendrogram ordering gave index of wrong length

看到row dendrogram ordering gave index of wrong length这句报错内容,分别察看plotTOM, geneTree, moduleColors这三个变量length;

1
2
3
> dim(plotTOM)
> geneTree
> moduleColors

果然,三者的length不同,发现geneTree少了一些,往回找geneTree来源 geneTree = net$dendrograms[[1]],net来源于网络构建过程:

1
2
3
4
5
6
7
net = blockwiseModules(datExpr, power = 6,
TOMType = "unsigned", minModuleSize = 30,
reassignThreshold = 0, mergeCutHeight = 0.25,
numericLabels = TRUE, pamRespectsDendro = FALSE,
saveTOMs = TRUE,
saveTOMFileBase = "femaleMouseTOM",
verbose = 3)

所以,这是问题所在,继续察看文档发现blockwiseModules函数默认最大maxBlockSize=5000,而我们的数据超过了这个值,所以函数自动做了拆分处理,而解决办法也很简单,设置maxBlockSize参数大于我们的值即可。




欢迎访问 my blog : Hope, Bioinformation
回复

使用道具 举报

634

主题

1180

帖子

4008

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4008
发表于 2016-9-15 16:10:37 | 显示全部楼层
一直以为WGCNA的全称是 whole genome copy number alternation!!!
好大一个乌龙啊
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复 支持 反对

使用道具 举报

11

主题

34

帖子

330

积分

版主

Rank: 7Rank: 7Rank: 7

积分
330
 楼主| 发表于 2016-9-15 17:14:07 | 显示全部楼层
Jimmy 发表于 2016-9-15 16:10
一直以为WGCNA的全称是 whole genome copy number alternation!!!
好大一个乌龙啊

也是数据需要,最近学习了下
欢迎访问 my blog : Hope, Bioinformation
回复 支持 反对

使用道具 举报

0

主题

14

帖子

225

积分

中级会员

Rank: 3Rank: 3

积分
225
发表于 2016-10-7 22:41:33 | 显示全部楼层
赞,学习学习,最近正好需要这个分析
回复 支持 反对

使用道具 举报

11

主题

34

帖子

330

积分

版主

Rank: 7Rank: 7Rank: 7

积分
330
 楼主| 发表于 2016-10-8 22:24:42 | 显示全部楼层
sleep在床上 发表于 2016-10-7 22:41
赞,学习学习,最近正好需要这个分析

学习过程中对原帖有任何疑问或需要改进、补充的地方,欢迎留言
欢迎访问 my blog : Hope, Bioinformation
回复 支持 反对

使用道具 举报

0

主题

1

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2016-12-12 10:43:29 | 显示全部楼层
感谢楼主的教程,想请教一下关于样本数量>=8是怎么得出来的,有没有参考文献,可以分享一下吗?
回复 支持 反对

使用道具 举报

1

主题

6

帖子

242

积分

中级会员

Rank: 3Rank: 3

积分
242
发表于 2017-2-23 21:50:57 | 显示全部楼层
楼主好,在分步分析到TOMplot(plotTOM, geneTree, moduleColors, main = "Network heatmap plot, all genes")时,总是报一个错:错误: C stack usage  7969476 is too close to the limit
这是什么原因呢?
回复 支持 反对

使用道具 举报

1

主题

14

帖子

120

积分

注册会员

Rank: 2

积分
120
发表于 2017-9-8 22:05:26 | 显示全部楼层
请问如果没有表型数据,怎么计算module与样本的相关性呢?
回复 支持 反对

使用道具 举报

0

主题

4

帖子

97

积分

注册会员

Rank: 2

积分
97
发表于 2018-3-11 16:13:01 | 显示全部楼层
楼主请教一下,是单个基因在某个样本中为0,就把该基因剔除么?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树    

GMT+8, 2018-9-22 04:32 , Processed in 0.123370 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.