「微生物组」基于microeco包进行共现性网络分析!!!

文摘   科学   2024-09-18 09:05   宁夏  





为了避免各位错过最新的推文教程,强烈建议大家将“科研后花园”设置为“星标”!


1、加载R包并加载数据(这里我们使用microeco包自带数据集进行计算,具体数据格式大家可自己对照示例数据查看):
##加载R包
library(microeco) # Microbial Community Ecology Data Analysis
library(WGCNA) # Weighted Correlation Network Analysis
library(magrittr) # A Forward-Pipe Operator for R

####加载数据,包括OTU特征表、样本信息以及物种分类表
#这里我们使用microeco包自带数据集
data(sample_info_16S)
data(otu_table_16S)
data(taxonomy_table_16S)
data(phylo_tree_16S)
data(env_data_16S)
#转换为数据框格式
sample_info_16S <- as.data.frame(sample_info_16S)#确保行名是样本名称,重要
otu_table_16S <- as.data.frame(otu_table_16S)
taxonomy_table_16S <- as.data.frame(taxonomy_table_16S)
phylo_tree_16S <- as.data.frame(phylo_tree_16S)
env_data_16S <- as.data.frame(env_data_16S)
2、构造microtable并对数据进行预处理:
#统一分类信息
taxonomy_table_16S %<>% tidy_taxonomy

#确保样本信息表行名是样本名称
sample_info_16S[1:5, ]
# row.names(sample_info_16S) <- sample_info_16S$SampleID

## 构造microtable
df <- microtable$new(sample_table = sample_info_16S,
                     otu_table = otu_table_16S,
                     tax_table = taxonomy_table_16S,
                     phylo_tree = phylo_tree_16S,
                     auto_tidy = F)#是否使所有文件信息统一

##去除不属于非古菌和细菌的OTU
# df$tax_table %<>% subset(Kingdom == "k__Archaea" | Kingdom == "k__Bacteria")
df$tax_table %<>% .[grepl("Bacteria|Archaea", .$Kingdom), ]

##去除“线粒体”和“叶绿体”污染
df$filter_pollution(taxa = c("mitochondria""chloroplast"))

##统一各数据的样本和OTU信息
df$tidy_dataset()
df

3、网络分析:

在进行网络分析之前,需要先对相关性进行计算,microeco包中提供的计算方法除了包括pearson与spearman两种常见方法外,还包括Bray–Curtis、SparCC、CCLasso、CCREPE等方法,这里我们借助WGCNA包并以spearman方法为例进行展示。

首先,我们计算相关性:

network <- trans_network$new(dataset = df, 
                              cor_method = "spearman",
                              use_WGCNA_pearson_spearman = TRUE,
                              filter_thres = 0.0001)

然后,基于WGCNA包构建网络,p值阈值设置为0.01,R值阈值设置为0.6(具体根据个人数据或文献参数进行调整):

network$cal_network(COR_p_thres = 0.01, #设置p阈值
                     COR_cut = 0.6)#设置R值阈值
head(network$res_network)
6 x 1378 sparse Matrix of class "dgCMatrix"
  [[ suppressing 35 column names ‘OTU_1556’, ‘OTU_32’, ‘OTU_3692’ ... ]]
                                                                                
OTU_1556 . . . . . . . . . . . . . . . . . .         . . . . . . . .         . .
OTU_32   . . . . . . . . . . . . . . . . . .         . . . . . . . .         . .
OTU_3692 . . . . . . . . . . . . . . . . . .         . . . . . . . .         . .
OTU_50   . . . . . . . . . . . . . . . . . 0.7030676 . . . . . . . 0.6314738 . .
OTU_999  . . . . . . . . . . . . . . . . . .         . . . . . . . .         . .
OTU_305  . . . . . . . . . . . . . . . . . .         . . . . . . . .         . .
                             
OTU_1556 . . . . . . . ......
OTU_32   . . . . . . . ......
OTU_3692 . . . . . . . ......
OTU_50   . . . . . . . ......
OTU_999  . . . . . . . ......
OTU_305  . . . . . . . ......

 .....suppressing 1343 columns in show(); maybe adjust 'options(max.print= *, width = *)'
 ..............................

然后,我们对网络的一些拓扑结构进行分析,包括网络的拓扑结构参数、边与节点属性、模块化等:

###将网络划分模块
network$cal_module(method = "cluster_fast_greedy")

###计算模块的特征基因,即基于PCA分析的第一主成分,以及方差百分比
network$cal_eigen()

###计算网络属性,即拓扑机构参数
network$cal_network_attr()

###获取节点属性
network$get_node_table(node_roles = TRUE)

###获取边属性
network$get_edge_table() 
network$get_adjacency_matrix()

最后,我们将网络保存并基于Gephi软件进行可视化:

#install.packages("rgexf")
network$save_network(filepath = "network.gexf")

以上的图形绘制完成后我们可以基于着色规则在AI中对图形的图例进行添加即可。当然,microeco包也支持计算网络中的模块枢纽和网络枢纽节点(ZiPi):

##看枢纽节点数据
network$res_node_table
##可视化
network$plot_taxa_roles(use_type = 1)

更多内容大家请阅读microeco包的帮助文档,以上内容小编只是给大家提供一个示例!


微生物组系列推文合集:

扩增子测序数据分析还不会?小编整理的全套R语言代码助您轻松解决问题!(更新版


「微生物组」基于microeco包进行lefsef分析及随机森林分析!!!


「微生物组」Stamp结果图复现——分组差异图的绘制!!!


「微生物组」基于microeco包进行环境数据关联分析—以RDA分析为例!!!


「微生物组」基于microeco包进行共享/独特OTU计算及可视化!!!


微生物组」基于microeco包进行Alpha多样性分析!!!


「微生物组」基于microeco包进行微生物群落结构组成分析!!!


R可视化——Mantel test分析及可视化


基于R语言的微生物群落组成多样性分析——α多样性及其可视化


基于R语言的微生物群落组成多样性分析—β多样性之PCoA分析


基于R语言的微生物群落组成多样性分析—β多样性之组间差异性检验


基于R语言的微生物群落组成多样性分析——种丰度计算及可视化


基于R语言的微生物群落组成多样性分析——种丰度可视化之热图(Heatmap)


基于R语言的微生物群落组成多样性分析——种丰度可视化之弦图(Chord Diagram)


基于R语言的微生物群落组成多样性分析——共线性网络分析


基于R语言的微生物群落组成多样性分析——RDA分析


基于R语言的微生物群落组成多样性分析——CCA分析


基于R语言的微生物群落组成多样性分析——PCA分析


基于R语言的微生物群落组成多样性分析——聚类分析


基于LEfSe分析进行微生物物种差异及关联分析


基于R语言的微生物群落组成分析—差异OTU筛选及展示


基于R语言的微生物群落组成多样性分析——NMDS分析


基于R语言的微生物群落组成分析—α多样性指数的正态分布检验及差异性标注()


R可视化——基于MicrobiomeStat包进行微生物组数据分析(更新版)!!!


基于R语言进行扩增子数据的UMAP分析!


R可视化——共现性网络分析第二弹


R可视化——基于MicrobiotaProcess包进行物种群落结构组成分析!


R可视化——基于MicrobiotaProcess包进行物种差异分析!


基于microeco包进行PCoA分析!!!


基于MicrobiotaProcess包进行PCoA分析!


R可视化——基于MicrobiotaProcess包进行Alpha多样性分析!


参考:microeco包帮助文档

PS: 以上内容是小编个人学习代码笔记分享,仅供参考学习,欢迎大家一起交流学习。

R绘图模板合集(包括附带注释的源码、测试数据及绘制效果图)可在公众号后台菜单栏查看具体获取方式!绘图模板合集效果图展示:




往期推荐

「R绘图模板」热图+分组+配对连线+统计差异!!!


「R绘图模板」跟着Food Chemistry学绘图——散点+误差棒+折线+字母标记!!!


「R绘图模板」环状箱线图+分组+显著性+均值标记!!!


「R绘图模板」环形水平条形图+柱状堆积图的绘制方法!!!!!!


「R绘图模板」跟着Nature Genetics学绘图——蝶形条形图与柱状堆积图的绘制!!!


「R绘图模板」分类水平的聚类分析+注释!!!


「R绘图模板」嵌套柱状图+显著性+字母标记!!!


「源码获取」R语言绘图模板源码及数据获取方式!


「R绘图模板」跟着Nature Communications学绘图—并列柱状堆积图+误差线+显著性!!!


「R绘图模板」跟着Nature Communications学绘图—同变量多组箱线图!!!


「R绘图模板」跟着PANS学绘图—气泡图叠加饼图+显著性(多饼图的绘制)!!!


「R绘图模板」箱线图+组内显著性+组内线性回归分析趋势性P值(粉丝投稿)!!!


「R绘图技巧」为散点图中特定散点添加标签的方法汇总!


跟着Nature Communications学绘图——3D曲线图+多分组!!!


R绘图模板——密度图+分组标记+均值线!!!


R绘图模板——网络图+微生物丰度与基因间的相关性+正负相关(粉丝投稿)!!!


跟着Nature Ecology & Evolution学绘图——柱状堆积图+多因子分面+柱间连线!!!


R可视化——一文带你打通ggplot2个性化绘制柱状图(条形图)!!!


R可视化——一文带你打通ggplot2个性化绘制箱线图(更新版)!!!


R可视化——一文带你打通ggplot2个性化绘制散点图!!!


R绘图模板——双向柱状堆积图+排序!!!


R绘图模板——基于ggmsa包进行多序列比对及可视化!!!


R绘图模板——基于ggplot2包绘制圆环图&旭日图!!!


R绘图模板——散点+分组+置信圈+质心连线!!!


R绘图模板——分组散点&箱线图&小提琴图&条形图+拟合曲线!!


R绘图模板——半圆进化树+分支颜色+注释+标签颜色突出显示!!!


科研后花园
专注于R语言绘图及数据分析!
 最新文章