R 和 Origin 完成细菌 OTU 表、土壤理化性质数据的微生物 Beta 多样性分析

devtools/2024/12/29 4:44:13/

使用 R 进行分析与可视化

1. 数据准备

假设已经有细菌 OTU 表(以表格形式存储,行是样本,列是 OTU)和土壤理化性质表(行是样本,列是不同的理化性质指标)。

# 读取数据
otu_table <- read.csv("otu_table.csv", row.names = 1)
soil_properties <- read.csv("soil_properties.csv", row.names = 1)# 确保样本顺序一致
otu_table <- otu_table[rownames(soil_properties), ]
2. 微生物 Beta 多样性分析

使用 vegan 包进行 Beta 多样性分析。

library(vegan)# 计算 Bray-Curtis 距离矩阵
bray_curtis_dist <- vegdist(otu_table, method = "bray")# 进行主坐标分析(PCoA)
pcoa <- cmdscale(bray_curtis_dist, k = 2, eig = TRUE)# 提取 PCoA 结果
pcoa_scores <- pcoa$points
pcoa_eig <- pcoa$eig
3. 土壤化学性质和细菌群落相关性分析

使用 Mantel 检验分析土壤理化性质与细菌群落结构的相关性。

# 计算土壤理化性质的距离矩阵
soil_prop_dist <- vegdist(soil_properties, method = "euclidean")# Mantel 检验
mantel_result <- mantel(bray_curtis_dist, soil_prop_dist, method = "pearson")
print(mantel_result)
4. 数据结果可视化

绘制 PCoA 图展示 Beta 多样性,并可视化相关性结果。

library(ggplot2)# 绘制 PCoA 图
pcoa_df <- data.frame(Sample = rownames(pcoa_scores),PC1 = pcoa_scores[, 1],PC2 = pcoa_scores[, 2])pcoa_plot <- ggplot(pcoa_df, aes(x = PC1, y = PC2)) +geom_point() +labs(x = paste0("PC1 (", round(pcoa_eig[1] / sum(pcoa_eig) * 100, 2), "%)"),y = paste0("PC2 (", round(pcoa_eig[2] / sum(pcoa_eig) * 100, 2), "%)"),title = "PCoA of Bacterial Community")
print(pcoa_plot)# 可视化 Mantel 检验结果
mantel_plot <- ggplot(data.frame(x = 0, y = 0), aes(x, y)) +geom_text(aes(label = paste0("Mantel r = ", round(mantel_result$statistic, 3),"\n p = ", round(mantel_result$signif, 3))),size = 6) +theme_void()
print(mantel_plot)

使用 Origin 进行分析与可视化

1. 数据导入

将细菌 OTU 表和土壤理化性质表导入 Origin。在 Origin 中,选择 “File” -> “Import”,然后选择相应的 CSV 文件。

2. 微生物 Beta 多样性分析
  • 计算距离矩阵:在 Origin 中,可以通过编写脚本或使用插件来计算 Bray-Curtis 距离矩阵。例如,使用 “Matrix” 菜单中的 “Distance Matrix” 功能,选择 “Bray-Curtis” 方法计算 OTU 表的距离矩阵。
  • 主坐标分析(PCoA):计算完距离矩阵后,使用 Origin 的 “Analysis” -> “Multivariate Analysis” -> “Principal Coordinates Analysis (PCoA)” 进行 PCoA 分析。
3. 土壤化学性质和细菌群落相关性分析
  • 计算距离矩阵:对土壤理化性质表使用 “Matrix” 菜单中的 “Distance Matrix” 功能,选择 “Euclidean” 方法计算距离矩阵。
  • Mantel 检验:Origin 本身没有直接的 Mantel 检验功能,但可以通过编写外部脚本(如 R 脚本)计算结果后导入到 Origin 中。
4. 数据结果可视化
  • PCoA 图绘制:在 Origin 中,将 PCoA 分析得到的 PC1 和 PC2 数据选中,然后选择 “Plot” -> “Scatter” 绘制散点图。可以进一步调整图形的颜色、标签、坐标轴标题等,使其更加美观。
  • 相关性结果可视化:将 Mantel 检验结果手动输入到 Origin 表格中,然后使用文本工具在图形中添加结果标签,以展示相关性统计量和显著性。

通过以上步骤,无论是在 R 还是 Origin 中,都可以完成细菌 OTU 表、土壤理化性质数据的微生物 Beta 多样性分析、相关性分析以及结果可视化。


http://www.ppmy.cn/devtools/146302.html

相关文章

2024-05-18 前端模块化开发——ESModule模块化

目录 1、认识 ES Module2、ES Module基本使用3、export关键字 3.1、导出方式一——直接导出3.2、导出方式二——通过as起别名3.3、导出方式三——定义的时候就直接导出 4、import关键字 4.1、导入方式一——直接导入4.2、导入方式二——通过as起别名4.3、导入方式三——可以给…

网络安全离我们不远!

前言 昨天晚上有朋友将公网上的一台 redis 密码设置为 123456&#xff0c;并且觉得没什么影响&#xff0c;再结合我之前毕业设计时被删库勒索&#xff0c;以及工作中碰到的网络安全相关的事情&#xff0c;就有了本篇感想&#xff0c;网络安全离我们并不远&#xff01; 毕设 M…

Edge SCDN酷盾安全重塑高效安全内容分发新生态

在数字化浪潮不断推进的今天&#xff0c;互联网内容的分发效率与安全性已成为企业业务发展的关键要素。酷盾安全推出的Edge Secure Content Delivery Network&#xff08;Edge SCDN&#xff09;&#xff0c;不仅集成了分布式DDoS防护、CC防护、WAF防护及BOT行为智能分析等安全加…

Refusal in Language Models Is Mediated by a Single Direction

开源代码&#xff1a;https://github.com/andyrdt/refusal_direction Abstract 会话型大语言模型针对指令遵循和安全性进行了微调&#xff0c;从而产生服从良性请求但拒绝有害请求的模型。虽然这种拒绝行为在聊天模型中普遍存在&#xff0c;但其背后的机制仍然知之甚少。在这…

(ES Modules)prettier格式化typescript源码

1.安装prettier npm i prettier 2. 引入 import {format} from prettier; import parserTypeScript from prettier/plugins/typescript; import parserEsTree from prettier/plugins/estree.mjs; 3.使用 const formattedTsDefinitions await format(declare namespace Tes…

机床数据采集网关在某机械制造企业的应用

随着工业4.0时代的到来&#xff0c;智能制造已成为制造业转型升级的重要方向。数控机床作为现代制造业的核心设备&#xff0c;其运行状态和加工参数的数据实时采集与分析对于提升生产效率、优化生产流程具有关键意义。 背景概述 某机械制造企业拥有多台数控机床&#xff0c;这…

轻松实现向量搜索:探索 Elastic-Embedding-Searcher 项目

随着人工智能和机器学习技术的飞速发展&#xff0c;向量搜索已成为数据检索的重要方式。尤其是在处理大规模文本数据时&#xff0c;传统的基于关键词的检索方式已经难以满足需求。为了优化检索性能并提升搜索精度&#xff0c;向量搜索成为了更加高效的解决方案。而在这一领域&a…

Go 计算Utf8字符串的长度 不要超过mysql字段的最大长度

背景&#xff1a; 我有一个mysql的字段&#xff0c;是utf8格式的&#xff0c;但有时候前端传的字符串会超长&#xff0c;为此我需要在后端接口&#xff0c;先判断是否超长&#xff0c;如果超长&#xff0c;则报错提示前端。 代码&#xff1a; // 计算utf8下&#xff0c;字符串…