R语言系列——Mantel 相关分析及自定义作图
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
R 语言实现
1、加载需要用到的R语言程序包 library(ggplot2) library(vegan) library(dplyr) library(ggcor)
R 语言实现
2、调用内置数据集 data("varechem") data("varespec") View(varechem) View(varespec) #可以查看数据集,一个为环境数据,一个是群落样 方数据
R 语言实现
3、计算 mantel1 <- fortify_mantel(varespec, varechem,
spec.select = list(1:10, 5:14, 7:22, 9:32)) %>% mutate(r = cut(r, breaks = c(-Inf, 0.25, 0.5, Inf),
labels = c("<0.25", "0.25-0.5", ">=0.5"), right = FALSE), #计算两个矩阵之间的相关系数,并对相关系数进行分组
这里是分为了三组("<0.25", "0.25-0.5", ">=0.5")
Байду номын сангаас 语言实现
第三步解析: p.value = cut(p.value, breaks = c(-Inf, 0.001, 0.01, 0.05, Inf),
labels = c("<0.001", "0.001-0.01", "0.01-0.05", ">=0.05"), right = FALSE)) #计算两个矩阵之间的显著性P值,并对其进行分组 这里是分为了四组("<0.001", "0.001-0.01", "0.01-0.05", ">=0.05")
%>%来自dplyr包的管道函数,我们可以将其理解为车间里的流水线,经过前一步加工的产品才能 进入后一步进一步加工,其作用是将前一步的结果直接传参给下一步的函数,从而省略了中间的赋值 步骤,可以大量减少内存中的对象,节省内存
R 语言实现
第三步解析: mantel1 <- fortify_mantel(varespec, varechem, #调用物种数据和环境数据 spec.select = list(1:10, 5:14, 7:22, 9:32)) %>% #将物种数据分为4组 mutate(r = cut(r, breaks = c(-Inf, 0.25, 0.5, Inf),
R 语言实现
第四步解析: quickcor(varechem, type = "upper") + geom_circle2() + add_link(mantel1, mapping = aes(colour = p.value, size = r),
bel = TRUE) + # 画出物种相关左半部分 scale_size_manual(values = c(0.5, 1.5, 3)) + #设置变量标签大小 add_diaglab(size=2.5, color="blue",nudge_x = -0.8, hjust=0) + remove_axis("x") #设置变量标签颜色和位置
R语言系列 ——Mantel 相关分析及自定义作图
呆笨朝夕
Mantel test 分析
Mantel test 分析是对两个矩阵相关关系进行检验 多用在生态学上,检验群落距离矩阵(如Bray-Curtis 距离矩阵)和 环境变量距离矩阵(如 pH,温度或者地理位置的差异矩阵)之间的相关性 ( Pearson 或 Spearman 系数,Mantel test 的相关性系数越大,p值越 小,则说明环境因子对微生物群落的影响越大)。同时,Mantel test 的 偏分析可排除环境因子之间自相关的干扰
labels = c("<0.25", "0.25-0.5", ">=0.5"), right = FALSE), p.value = cut(p.value, breaks = c(-Inf, 0.001, 0.01, 0.05, Inf),
labels = c("<0.001", "0.001-0.01", "0.01-0.05", ">=0.05"), right = FALSE))
R 语言实现
5、进一步调整 加载ggplot2包 library(ggplot2) +scale_fill_gradient2(midpoint =0, low="#56B4E9",mid="white",high="#E69F00",space = "Lab") #自定义填充颜色
R 语言实现
R 语言实现
第四步解析: quickcor(varechem, type = "upper") #构建一个底图
R 语言实现
第四步解析: quickcor(varechem, type = "upper") + geom_circle2() #将计算的环境因子之间的相关性 作图展示,这里geom_**后面可根据 需求设置不同的图表类型:比如 quickcor(varechem, type = "upper") + geom_square()
Mantel test 分析
Mantel test 是一种检验,检验的原假设是两个矩阵间没有相关关系 检验过程如下:两个矩阵都对应展开,变量两列,计算相关系数(理 论上什么相关系数都可以计算,但常用pearson相关系数),然后其中一 列或两列同时置换,再计算一个值,permutation 成千上万次,看实际的 r值在所得r值分布中的位置,如果跟随机置换得到的结果站队较近,则不 大相关,如果远远比随机由此得到显著性
R 语言实现
4、作图 quickcor(varechem, type = "upper") + geom_circle2() + add_link(mantel1, mapping = aes(colour = p.value, size = r),
bel = TRUE) + scale_size_manual(values = c(0.5, 1.5, 3)) + add_diaglab(size=2.5, color="blue",nudge_x = -0.8, hjust=0) + remove_axis("x")