为了避免各位错过最新的推文教程,强烈建议大家将“科研后花园”设置为“星标”!
##加载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)
#统一分类信息
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
在进行网络分析之前,需要先对相关性进行计算,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绘图模板——半圆进化树+分支颜色+注释+标签颜色突出显示!!!