3、微生物α多样性分析-R

        α多样性主要关注局域均匀生境下的物种数目,因此也被称为生境内的多样性(within-habitatdiversity)。群落生态学中研究微生物多样性,通过单样品的多样性分析(α多样性)可以反映微生物群落的丰度和多样性,包括一系列统计学分析指数估计环境群落的物种丰度和多样性。

        α分类有多种,分别表达物种的丰富度、均匀度及多样性等。

        多样性指数(Community Diversity)反映的是物种丰富度和均匀度的综合状况,常见的有Shannon、Simpson等。Shannon指数反映的是物种丰度与均匀度,与这两者均呈正相关;Simpson指数为在样本中抽取两条序列属于不同种的概率。Shannon指数越高表明α多样性越高,而Simpson相反(但当前很多Simpson是1-x)。

        丰富度指数(Community Richness)反映的是群落内物种的丰富程度,常见的有Sobs、Chao、ACE等。Sobs为该样本实际包含的OTU(或ASV等)的物种数目。而Chao为修正后的物种数目。(有的文章中Sobs也称Richness)

       

        接下来上代码!(该处使用宏基因组数据rpkm作为丰度表,有小数)

#先加载可能需要的所有包。
library(vegan)
#加载数据
df = read.delim("C:/Users/Shizhe Zhang/Desktop/VOTU.txt", row.names=1,header = T, sep = "\t")
#可以查看用法
#?diversity()
Shannon = diversity(df, index = "shannon", MARGIN = 2, base = exp(1)) #MARGIN决定横竖,base为底,此处为e
Simpson = diversity(df, index = "simpson", MARGIN = 2, base =  exp(1))
Richness = specnumber(df, MARGIN = 2) # Sobs
result1$pielou = Shannon/log(Richness,2)
#以数字形式统计成表格并合并
result1 = as.data.frame(cbind(Shannon, Simpson, Richness))
#加载分组文件
group = read.delim("C:/Users/HUAWEI/Desktop/group.txt", header = T)
result1$group=group[,2]  # 合并分组文件
shannon= ggplot(data=result1, aes(y=Shannon, fill=group,x=group)) +  #确定xy和颜色
  stat_boxplot(geom = "errorbar",width = 0.3)+  #添加误差棒
  geom_boxplot() +  #画箱线图
  theme_classic()+  #取消背景
  labs(y = "Shannon",x= "Group")  #标注xy轴名字

df格式如下:

group格式如下:

 

### R语言细菌Alpha多样性分析方法 #### 数据准备 为了进行Alpha多样性分析,首先需要读取物种相对丰度矩阵表和对应的元数据表。这可以通过`read.csv()`函数完成。 ```r matrix <- read.csv("./data/matrix_species_relab.tsv", header = TRUE, sep = "\t") metadata <- read.csv("./data/metadata_of_matrix_species_relab.tsv", header = TRUE, sep = "\t") ``` 这些表格中的每一行代表一个样本,其中包含了不同微生物类群的相对丰度信息及其相应的元数据[^3]。 #### 安装并加载必要的包 接下来安装一些常用的生物信息学软件包用于计算alpha多样性指标: ```r if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install(c("phyloseq", "vegan")) library(phyloseq); library(vegan) ``` #### 构建Phyloseq对象 将上述两个文件转换成适合进一步处理的数据结构——Phyloseq对象,这是许多后续操作的基础。 ```r otu_table <- otu_table(matrix, taxa_are_rows=FALSE) sample_data <- sample_data(metadata) ps <- phyloseq(otu_table, sample_data) print(ps) ``` 此过程创建了一个包含OTU表、样本描述和其他可选组件的对象[^1]。 #### 计算Alpha多样性指数 利用Vegan库可以方便地获取多个不同的α-多样性测量值,如Shannon熵、Simpson指数等。 ```r shannon_diversity <- estimate_richness(ps, measures="Shannon") richness_index <- estimate_richness(ps, measures="Observed") head(shannon_diversity) # 查看部分结果 head(richness_index) # 查看部分结果 ``` 这里选择了香农指数作为例子来展示如何估计各组内的物种多样性水平;同样也可以选择其他类型的丰富度或均匀度测度。 #### 可视化差异 绘制箱形图是比较两组或多组之间alpha多样性差异的有效方式之一。下面是一个简单的绘图命令,它会根据指定条件自动区分不同分组的颜色编码。 ```r ggplot(data.frame(sample_names(ps), shannon_diversity), aes(x=factor(group_variable_from_metadata), y=Shannon)) + geom_boxplot()+ labs(title=&#39;Comparison of Shannon Index Between Groups&#39;, x=&#39;Groups&#39;, y=&#39;Shannon Diversity&#39;)+ theme_minimal() ``` 请注意替换`group_variable_from_metadata`为实际使用的分类变量名称。该图形有助于直观理解各个实验条件下微生物组成的复杂程度是否存在统计意义上的区别[^2]。 #### 进一步探索 除了静态图表外,还可以考虑生成动态稀疏曲线(Rarefaction Curves),以评估采样深度是否足够充分覆盖整个生态系统。 ```r rarecurve(t(otu_table(ps)), step=100, label=T) ``` 这条命令将会画出一系列随着随机抽样的增加而变化的趋势线,从而帮助判断当前数据集是否已经达到了饱和状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值