欢迎光临散文网 会员登陆 & 注册

无代码实现WGCNA分析(一)

2022-11-01 20:14 作者:生信小院  | 我要投稿


WGCNA分析,全称为加权共表达网络分析,英文名为Weighted Correlation Network Analysis,功能包括包括基本数据清理、相关网络构建、模块识别、汇总以及变量和模块与样本性状的关联等功能。


对于一些生信分析小白而言,或许听说这个分析,但是却无从下手。超多代码的撰写也一些刚入门的生信者感到头疼。因此,本文希望通过对代码的一步步解析,阐述如何实现无代码进行WGCNA分析,从而帮助相关读者的文章上升一个小档次。


为方便介绍,本文将从数据准备、代码解析,结果解读三个方面对这些内容进行解析。其中数据准备和结果解读将在代码解析中一一讲解。


第一步:加载相应的R包

这里面值得注意是WGCNA包,此包需要安装许多依赖包才能实现。

第二步:读取相应的文件

2.1 输入文件包括三个,分别为:权重文件inputfile_weightfile;表型文件inputfile_phenotype;参数文件plot_args_file。

权重文件inputfile_weightfile的首行为样本名称,首列则为基因名称,具体格式可以参考文本1。

文本1

表型文件inputfile_phenotype的首行是你所设定的表型,首列则是你有的样品,其间的内容则是你表型关系。

文本2

参数文件plot_args_file则包含两列,首列是参数名,第二列是参数的数值,具体格式可以参考文本3。

文本3

2.2 输出文件则以一个前缀(outputfilename)统计命名,从outputfile_plot1到outputfile_trait_hubGenes_file则为输出的一系列文件。

2.3 从参数文件中读取并设置相应的参数。

本脚本会生成非常多的图片与输出文件,因此也设置了很多的参数。接下来,将一一解析这些参数。

2.4 这部分参数为官方建议,如非必要,则建议不要更改。

2.5 这两行脚本的含义是确认是否支持本脚本使用多线程运行。

2.6 对数据进行处理,方便后面进行计算。

注意:分别指定样品数量和基因数量的两个参数nSamples与nGenes不能出错。

注意:在此步中,你可以选择设定筛选条件去除那些干扰分析结果的基因,避免这些基因的表达数据造成分析结果出现偏差。

注意:最后的步骤将权重数据进行转置,再进行下面的分析。

第三步:绘制聚类图

对数据进行聚类分析,并绘制聚类图(对样品聚类)。

经由此步,会生成下列的图形。


第四步:确定最合适的power值,并绘制powers图

4.1 获取不同的powers值。

调用pickSoftThreshold函数确定合适的power,从而进行软阈值的无尺度拓扑分析。

4.2 如果未找到合适的power值,则根据样本数量来确定power值(这一步也是在数据特别不好的前提下做出的选择)。

4.3 对Soft即powers计算结果进行可视化。

经由此步,会生成下列的图形。


第五步:以块方式检测大型表达式数据集,并构建自动网络结构和模块

调用blockwiseModules函数进行分析,构建网络

注意,此步骤只会产生一个文件(当maxBlockSize指定为基因数时)

如果maxBlockSize小于基因数,则会生成数个".tom"文件,这将导致load(Block_network$TOMFiles[1],verbose=T)函数无法读全所有的TOM文件。

但是对于内存较少却需要分析大数据的分析者而言,建议保存数据的时候将".tom"文件进行切割,后采取逐一加载的方式读入数据。

第六步:构建网络,并可视化基因与模块、模块与模块,基因与基因间的相关性

6.1 调用plotDendroAndColors函数绘制基因与模块的层次聚类图,从而展示基因与模块的对应关系。

其中unmergedColors用于绘制未合并的模块与基因的关系,而colors则用于绘制已经合并后的模块与基因的关系。

经由此步,会生成下列的图形


6.2 调用plotEigengeneNetworks函数绘制各模块之间相关性图。

对于已经合并后的模块间的关系通过用plotEigengeneNetworks函数进行分析和图形可视化。

经由此步,会生成下列的图形


6.3 调用TOMplot函数绘制TOM图

加载构建网络的TOMFiles文件(注意如果".tom"是多个,则可能需要多次加载相应数据,具体内容详见官网),并利用这个文件进行绘图

绘制各基因间的相关性,这一步也最为耗时。

注意,此步骤调用module_Colors_list表明分析采用合并后的模块结果


经由此步,会生成下列的图形

第七步:利用第五步获得TOM值,从而导出基因之间的关系,用于Cytoscape图的绘制

调用exportNetworkToCytoscape函数进行分析,导出Cytoscape绘制网络所需要的数据

第八步:调用表型数据(如果有的话),获取关注的列与基因,并绘制表型与模块之间的相关性的热图

8.1 检测是否有表型数据

此步骤调用match是确保权重文件的样品名与表型数据的样品名能够一一对应

8.2 关联表型数据与模块数据,并将关键表型数据与各个模块放到一起作为独立单元(也可以认为是独立模块)进行分析

8.3 绘制模块与各性状的关系图

8.4 关联重点表型数据(参数中的key_module)与关键模块基因(参数中的key_pheno)的相关性

上一步产生的图形很多,包括以下三组图形



三 惯例小结

到这里,基本上就完成了WGCNA所有可视化工作了,下一章将介绍一下如何筛选关键的hubgene

本公众号开发的相关软件,Multi-omics Hammer软件和Multi-omics Visual软件欢迎大家使用。文末是本公众号在其他平台的账户,也欢迎大家关注并多提意见。

简书:WJ的生信小院

博客园:生信小院

微信公众号:生信小院

最后,也欢迎各位大佬能够在本平台上:1传播和讲解自己发表的论文;2:发表对某一科研领域的看法;3:想要达成的合作或者相应的招聘信息;4:展示自己以寻找博后工作或者博士就读的机会;5:博导提供博后工作或者博士攻读机会,都可以后台给笔者留言。希望本平台在进行生信知识分享的同时,能够成为生信分析者的交流平台,能够实现相应的利益互补和双赢(不一定能实现,但是梦想总得是有的吧)。


无代码实现WGCNA分析(一)的评论 (共 条)

分享到微博请遵守国家法律