CoNet的关联网络推断过程演示
本篇通过来自某16S扩增子测序所得的微生物物种丰度数据,简介CoNet构建微生物共发生网络的方法,以展示CoNet的使用。
CoNet安装
首先打开Cytoscape,初次使用CoNet,首先需要安装。
点击菜单栏的“Apps”->“App Manager”,输入“CoNet”搜素,之后点击“Install”安装。等待一小会儿安装成功后,即可点击“Apps”->“CoNet”使用。
CoNet的微生物网络构建过程
接下来,开始展示CoNet构建微生物网络的操作。
整体流程按照Microbial association network construction tutorial(http://psbweb05.psb.ugent.be/conet/microbialnetworks/conet_new.php)中的默认过程来描述。更多拓展操作,有兴趣可自行研究。
1、数据导入
准备输入数据,OTU丰度表,以制表符为分隔。
第一列为OTU id,最后一列为OTU的界门纲目科属种注释信息。
这里我输入的不是biom格式的文件,考虑到biom操作起来没有txt表方便,且txt表使用更广泛。
打开CoNet,点击“Data menu”读取OTU丰度表,简单设置后,其余项默认,关闭窗口,进入下一环节。
2、数据预处理
CoNet提供了对OTU丰度表的预处理选项,可过滤一些不合适的数据,减小后续计算资源的消耗。
例如非常低丰度的OTU,通常它们存在很大的测量误差,且计算的相关性不可靠,推荐剔除。对于本示例,点击“Preprocessing and filtering menu”,选中“row_minocc”输入“10”,意为将样本中所有低于最小出现值10的OTU定义为无效OTU并以去除;选中“Keep sum of filtered rows”以及“col_norm”,将OTU丰度标准化为相对丰度。其余参数默认,关闭窗口。“
3、网络构建方法和阈值选择
点击“Methods menu”,进入CoNet的网络构建方法选择界面。CoNet提供了丰富的方法选择,允许使用多条件或阈值构建网络,充分体现了CoNet的灵活性。
(1)固定阈值法
顾名思义,选择所需的相关性、相似性或距离等计算方法组合,并为其指定对应的阈值。若OTU之间同时满足这些阈值要求,则认定OTU丰度间存在联系。
例如下示例,选择“Pearson correlation”指定阈值0.7,同时选择“Spearman correlation”指定阈值0.7。其余参数默认,关闭窗口。
(2)自动阈值法
这种方法是CoNet的特色。在选择所需的相关性、相似性或距离等计算方法组合后,不对它们指定某特定的阈值,而是通过输入初始边(连接)数自动为它们定义阈值。
例如下示例,选择“Pearson correlation”、“Spearman correlation”、“Bray Curtis dissimilarity”以及“Kullback-Leibler dissimilarity”共4种方法,点击“Automatic threshold setting”,输入起始边数“500”,选中“Top and bottom”。其余参数默认,关闭窗口。
4、获得初始网络
步骤3中的两种模式,根据需要选择一种设置。完毕后,返回主界面点击“GO”,CoNet将构建一个初始网络。
我选择的上述自动阈值法的设置参数,运行后获得了一个由81个节点和2005个边构成的初始网络。
5、置换检验
之所以称为“初始网络”,能看到它有非常多的边,影响对网络的解读。事实上很多边都是无效的,接下来将通过随机置换实现优化,执行置换检验获得p值过滤无效的边。
例如下示例,点击“Randomization menu”,在“Iterations”中输入随机置换次数“100”,选中“edgeScores”、“shuffle_rows”和“Renormalize”,p值设置为0.01。在“Select folder”选项中选择计算文件的输出路径,并命名,勾选“Save”。其余设置不变,关闭窗口返回CoNet主界面中点击“GO”,CoNet将对初始网络图进行置换检验。
等待一会儿出结果,可看到网络的边数减少了,即尽可能去除了无效的边,网络得到了优化。
6、自举(bootstrap)和最终网络获得
最终的p值是通过特定方法和边的置换和自举得分分布计算出来的,因此现在将计算引导分布,提供置信区间以进一步优化网络。
例如下示例,点击“Randomization menu”,在“Iterations”中输入次数“100”,选中“edgeScores”、“bootstrap”(重抽样方法为bootstrap)。
在上步置换步骤中已经计算了p值,而对于最终网络,需要合并p值,在“P-value merge”中选择“brown”作为p值合并策略。取消“Renormalize”并选择“Filter unstable edges”,程序会将初始得分超出引导分布0.95置信区间范围的边丢弃。
指定p值阈值,如0.01,并可以选择p值校正方法,如“benjaminihochberg”。在“Select folder”选项中选择计算文件的输出路径,并命名,勾选“Save”。可以加载上一步置换步骤中保存的计算文件作为零分布,在“Load null distributions”中指定。其余设置不变,关闭窗口返回CoNet主界面中点击“GO”,CoNet将对初始网络图进行自举获得引导分布。
等待一会儿出结果,可看到网络得到了进一步优化,到这里就获得了最终的网络。
Cytoscape的后续操作举例
获得了网络后,后续统计计算或者可视化就可以了。
如果您熟悉Cytoscape,后续的操作想必就很简单。如果不熟悉,建议在网上找一些教程学习。
网络可视化
Cytoscape最强大的地方就是网络的可视化,除了自带的方法外,还有非常丰富的开源插件可供使用(安装方法和CoNet一致),使我们可选N种方法美化网络。
这部分细节非常多,本篇不介绍,若您不熟悉Cytoscape,还请找其他教程学习了。
本人也懒得对这个示例做调整,就从网上随便整个图展示吧。
网络拓扑结构计算
点击点击菜单栏的“Tools”->“Network Analyzer”->“Network Analysis”->“Analyze Network”,可计算基本的网络拓扑结构,包含节点和边的特征以及网络凝聚性特征等。
关于各特征或属性的简介,可参考前文“节点和边特征”以及“网络图的凝聚性特征”。
节点度的幂律分布
节点度幂律分布是微生物共发生网络的普遍特征,Cytoscape为此提供了快捷的方法。
在计算的网络拓扑特征窗口中,点击“Node Degree Distribution”查看节点分布,并拟合幂律分布函数。
网络输出
对后的网络图片进行输出,或者将网络文件输出,导入其它工具(如R)进行分析。
网络文件输出,点击“File”->“Export”->“Network”,保存为特定文件类型。如“graphml”文件格式,可以直接使用Gephi(另一个强大的网络可视化工具)打开。
或者纯文本类型的节点属性列表或边属性列表文件,点击“File”->“Export”->“Table”,选择指定的网络节点(node)或边(edge)属性保存即可。实际上,纯文本类型的网络文件适用范围更广,可以很方便被其它软件识别,如R等,以及上述提到的Gephi,也可以读取纯文本表格。
参考文献
相关性和网络分析基础
Pearson、Spearman、Kendall、Polychoric、Polyserial相关系数简介及R计算
网络模块内连通度(Zi)和模块间连通度(Pi)及在R中计算降维分析
非约束排序(描述性的探索性分析):
主成分分析(PCA):主成分分析(PCA) 同时含数值和分类变量的PCA
对应分析(CA):对应分析(CA) 去趋势对应分析(DCA)
非度量多维标度分析(NMDS):非度量多维标度分析(NMDS)
非约束排序中被动添加解释变量:被动添加解释变量约束排序(将解释变量通过回归方程拟合响应变量的统计模型):
冗余分析(RDA):冗余分析(RDA) 基于距离的冗余分析(db-RDA)
RDA、CCA的变差分解(VAP)对称分析(这类方法意在描述两个或多个矩阵之间的相关性):
多元因子分析(MFA)监督降维(带监督的降维方法,常用于分类):
判别分析(DA)聚类和分类
层次聚类(无监督,描述性的探索性分析):
层次聚合:层次聚合分类 层次聚类结果的比较和评估
层次分划:双向指示种分析(TWINSPAN)非层次聚类(无监督,描述性的探索性分析):
划分聚类:k均值划分(k-means) 围绕中心点划分(PAM)
模糊聚类:模糊c均值聚类(FCM)
避免不存在的类潜变量分类(无监督,潜变量也可视为某种意义上的“降维”):
潜类别分析(LCA) 潜剖面分析(LPA)约束聚类(无监督,将解释变量通过回归方程“约束”响应变量的模型):多元回归树监督分类(通过已知先验分组构建分类器模型):
决策树 随机森林分类
判别分析(DA):线性判别分析(LDA) 二次判别分析(QDA)