查看原文
其他

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

王志山 科研后花园 2023-09-08



此前我们已经讲过了如何使用R语言计算两列数据相关性的分析方法,今天,我们来看一种检验两个矩阵相关关系的方法——Mantel test方法,这种分析方法可用在植物微生物群落与生态环境之间相关性的检验以及人体肠道微生物群落与人体疾病相关性检验等领域。话不多说,直接迈入正文!


加载包

1)设置工作目录

rm(list=ls())#clear Global Environmentsetwd('D:\\桌面\\mantel test分析')#设置工作路径

2)安装、加载R包

#安装包# install.packages("ggplot2")# install.packages("vegan")# install.packages("dplyr")# install.packages("devtools")# devtools::install_github("houyunhuang/ggcor")
#加载包library(vegan)library(dplyr)library(ggcor)library(ggplot2)

加载数据

#OTU表格df <- read.table("otu.txt",sep="\t",header = T,row.names = 1,check.names = F)df <-data.frame(t(df))#环境因子数据env <- read.table("env.txt",sep="\t",header = T,row.names = 1,check.names = F)head(df)head(env)

环境因子的相关性分析及展示

quickcor(env, type = "lower",method = "spearman") + geom_square()+ scale_fill_gradient2( high = 'orange', mid = 'white',low = 'navyblue') #颜色设置

Mantel test分析

1)计算OTU与环境因子之间的mantel test的r值和p值

df_mantel <- mantel_test(df, env, mantel.fun = 'mantel', spec.dist.method = 'bray', env.dist.method = 'euclidean', spec.select = list(A = 1:4, B = c(6,8,9,10),                                         C = c(5,7,11,12)))#将群落数据按组进行分开


2)定义标签

df_mantel <- df_mantel %>% mutate(df_r = cut(r, breaks = c(-Inf, 0.1, 0.2, 0.4, Inf), labels = c("< 0.1", "0.1 - 0.2", "0.2 - 0.4", ">= 0.4")),#定义Mantel的R值范围标签 df_p = cut(p.value, breaks = c(-Inf, 0.01, 0.05, Inf), labels = c("< 0.01", "0.01 - 0.05", ">= 0.05")))#定义Mantel的P值范围标签

绘图

quickcor(env,method = "spearman", type = "upper", cor.test = T, cluster.type = "all") +#环境因子之间的相关性热图 geom_square() +#相关性显示形式 geom_mark(r = NA,sig.thres = 0.05, size = 3.5, colour = "black")+#显著性标签 scale_fill_gradient2( high = 'red', mid = 'white',low = 'blue') + #颜色设置 anno_link(df_mantel, aes(color = df_p, size = df_r))+ scale_size_manual(values = c(0.5, 1, 1.5, 2))+#连线粗细设置 scale_color_manual(values = c("green","blue","orange"))+#线条颜色设置 guides(fill = guide_colorbar(title = "correlation", order = 1),#图例相关设置 size = guide_legend(title = "Mantel's r",order = 2), color = guide_legend(title = "Mantel's p", order = 3), linetype = "none")

参考:

1)https://zhuanlan.zhihu.com/p/507384776

2)https://zhuanlan.zhihu.com/p/110501058


源码及作图数据可在后台回复“mantel test”获取!!!

我就知道你“在看”

更多推荐

R可视化——线性相关性分析及可视化

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

文献检索网站知多少

R可视化——相关性计算及展示

电子课本及书籍下载网址汇总!

R可视化——ggplot2绘制柱状图

基于origin绘图软件的显著性计算及字母标记

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

R可视化——气球图

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存