R语言中常用的生物多样性指数的计算(Alpha,Beta,Gamma,功能多样性,系统发育多样性)

2023-11-03

Alpha 多样性指数

常见的Alpha多样性指数的含义见https://blog.csdn.net/rojyang/article/details/81326378

R代码如下:

### library(vegan)   ##加载群落数据分析常用的包
data(BCI)  ##vegan包中自带的群落数据

shannon <- diversity(BCI,MARGIN = 1)  ## Shannon 多样性指数, MARGIN=1 计算行的多样性 ,一般的群落数据表行名为样方名,列名为物种名  index默认为“shannon”

simpson <- diversity(BCI,index = "simpson",MARGIN = 1)   ## Simpson多样性指数

SR <- specnumber(BCI,MARGIN = 1)    ## 物种丰富度:相当于每一行大于0 (生物量、盖度或多度) 的物种数

Pielou <- shannon/log(SR)     ##均匀度指数

diversity <- data.frame(shannon,simpson,SR,Pielou)  ##将物种丰富度、Shannon多样性指数、Simpson多样性指数和Pielou' 均匀度指数放置在一个数据框中

write.csv(diversity,"diversity.csv")  ## 将多样性结果导出为csv文件

Beta多样性指数

Hill的Beta多样性指数和Gamma多样性指数

在这里插入图片描述

library(vegan)
library(vegetarian)

data(dune)

d(dune,lev = "alpha",q=0) ## 平均alpha 物种丰富度

d(dune,lev = "alpha",q=1) ## 平均alpha Shannon多样性

d(dune,lev = "alpha",q=2) ## 平均alpha Simpson多样性

d(dune,lev = "beta",q=0) ##倍性beta物种丰富度

d(dune,lev = "beta",q=1) ##倍性beta Shannon多样性

d(dune,lev = "beta",q=2) ##倍性beta Simpson多样性

d(dune,lev = "gamma",q=0) ##Gamma物种丰富度

d(dune,lev = "gamma",q=1) ##Gamma Shannon多样性

d(dune,lev = "gamma",q=2) ##Gamma Simpson多样性

基于距离和方差分解的Beta多样性指数

library(vegan)
betadiver(dune,method = "w") ## The basic Whittaker index
betadiver(help=TRUE)  ## 共有24中计算Beta多样性(距离)的方法

library(adespatial)

dune.beta <- beta.div(dune,method = "hellinger",nperm = 999)
dune.beta$beta
dune.beta$SCBD   ##  大于平均值的物种
dune.beta$LCBD   ##Beta 多样性样方贡献

功能多样性

单性状(混合性状)功能多样性

data(dummy)
ex1 <- dbFD(dummy$trait, dummy$abun)  ##混合性状或单一性状的功能多样性
ex1

多性状多样方功能多样性

library(tidyverse)
library(FD)
##  制作空数据框用于后续存放数据

Plot<- 'abc'
trait1<-0
trait2<-0
trait3<-0
trait4<-0
trait5<-0
trait6<-0
trait7 <- 0
trait8 <- 0
CWM.cover.result <- data.frame(Plot,trait1,trait2,trait3,trait4,trait5,trait6,trait7,trait8)
CWM.cover.result$Plot <- as.character(CWM.cover.result$Plot)
str(CWM.cover.result)
FDis.cover.result <- CWM.cover.result

Trait <- c('trait1','trait2','trait3','trait4','trait5','trait6','trait7','trait8')
Plot <- unique(trait_mean$Plot)

#用循环来计算每个样方每种性状的功能多样性
#cycle
for (i in 1:8) {
  for (v in 1:72) {
    
    Trait.i <- Trait[i]   ##  第i个性状
    Plot.v <- Plot[v]     ##  第v个样方
    
    Data.i <- trait_mean%>%     ##  选择性状数据  
      dplyr::select('Plot','Species',Trait.i)%>%
      filter(Plot==Plot.v)
    
    names(Data.i)<-c('Plot','Species','Trait_i')
    Data.i<-Data.i%>%  
      filter(Trait_i != 'NaN')
    
    Cover<-cover%>%            ##  选择群落数据(这里使用盖度数据)  长数据
      filter(Species %in% unique(Data.i$Species))%>%
      filter(Plot==Plot.v)
    Data.i<- Data.i%>%
      filter(Species %in% unique(Data.i$Species))
    
    data.db <-merge(Data.i,Cover,by=c('Plot','Species'))%>%  ## 将两种数据组合
      filter(Cover != 0)
    
    data.db.trait <- dplyr::select(data.db,Species,Trait_i)
    row.names(data.db.trait) <- data.db.trait$Species
    data.db.trait<-subset(data.db.trait,select = Trait_i)
    
    data.db.cover <- dplyr::select(data.db,Species,Cover)%>%  ## 将盖度长数据转化为宽数据
      spread(key=Species,value=Cover)
    
    CWM <- dbFD(x=data.db.trait, a=data.db.cover, calc.FRic = F, calc.FDiv = F, w.abun = T, calc.CWM = TRUE)   ## 计算功能多样性,这里主要计算了FDis和CWM
    
    CWM.cover.result[v,1] <- Plot.v
    CWM.cover.result[v,i+1] <- CWM$CWM[1,1]
    
    FDis.cover.result[v,1] <- Plot.v
    FDis.cover.result[v,i+1] <- CWM$FDis
    
  }
  
}


CWM.cover.result <- CWM.cover.result%>%  ## 将结果转化为长数据格式并重命名
  gather(key=key,value = value,-Plot)%>%
  mutate(CWM='CWM')%>%
  unite(key2,CWM,key,sep="_")%>%
  spread(key=key2,value = value)

FDis.cover.result <- FDis.cover.result%>%  ## 将结果转化为长数据格式并重命名
  gather(key=key,value = value,-Plot)%>%
  mutate(CWM='FDis')%>%
  unite(key2,CWM,key,sep="_")%>%
  spread(key=key2,value = value)


系统发育多样性


com_2020 <- read.csv("com2020.csv",row.names = 1)  ## 读取群落数据
library(ape)
library(picante)                                   ## 加载系统发育分析包
phylo <- read.tree("tree.treefile")                ## 读取系统发育树文件
rooted <- root(phylo,outgroup = "Amborella_trichopoda",resolve.root = T)  ## 转化为有根树

a <- cophenetic(rooted)%>%as.data.frame()          ## 转化为距离矩阵

cover2020.pd<-pd(com_2020,rooted)                  ## 求Fish' 系统发育距离

cover2020.mpd.ab<-mpd(com_2020,a,abundance.weighted = FALSE)  ##  平均系统发育距离

cover2020.mntd.ab<-mntd(com_2020,a,abundance.weighted = FALSE) ##  平均最近种系统发育距离

cover2020.mpd.ab<-mpd(com_2020,a,abundance.weighted = TRUE)  ##  平均系统发育距离 (盖度加权)

cover2020.mntd.ab<-mntd(com_2020,a,abundance.weighted = TRUE) ##  平均最近种系统发育距离 (盖度加权)


cover2020.ses.mpd.pa<-ses.mpd(com_2020,a,abundance.weighted = FALSE)  ##  标准化平均系统发育距离  物种池为系统发育树物种池

cover2020.ses.mntd.pa<-ses.mntd(com_2020,a,abundance.weighted = FALSE) ##  标准化平均最近种系统发育距离

cover2020.ses.mpd.pa<-ses.mpd(com_2020,a,abundance.weighted = FALSE) ##  标准化平均系统发育距离 (盖度加权)

cover2020.ses.mntd.pa<-ses.mntd(com_2020,a,abundance.weighted = FALSE)  ##  标准化平均最近种系统发育距离 (盖度加权)

参考文献:
Fisher, R.A., Corbet, A.S. & Williams, C.B. (1943). The relation between the number of species and the number of individuals in a random sample of animal population. Journal of Animal Ecology 12, 42–58.

Hurlbert, S.H. (1971). The nonconcept of species diversity: a critique and alternative parameters. Ecology 52, 577–586.

Jost, L. 2006. Entropy and diversity. Oikos 113(2): 363-375.

Jost, L. 2007. Partitioning diversity into independent alpha and beta components. Ecology 88(10): 2427-2439.

Hill, M. 1973. Diversity and evenness: A unifying notation and its consequences. Ecology 54: 427-432.

Baselga, A. (2010) Partitioning the turnover and nestedness components of beta diversity. Global Ecology and Biogeography 19, 134–143.

Koleff, P., Gaston, K.J. and Lennon, J.J. (2003) Measuring beta diversity for presence-absence data. Journal of Animal Ecology 72, 367–382.

Marion, Z.H., Fordyce, J.A. and Fitzpatrick, B.M. (2017) Pairwise beta diversity resolves an underappreciated source of confusion in calculating species turnover. Ecology 98, 933–939.

Whittaker, R.H. (1960) Vegetation of Siskiyou mountains, Oregon and California. Ecological Monographs 30, 279–338.
Chao, A., R. L. Chazdon, R. K. Colwell and T. J. Shen. 2006. Abundance-based similarity indices and their estimation when there are unseen species in samples. Biometrics 62: 361-371.

Legendre, P. 2014. Interpreting the replacement and richness difference components of beta diversity. Global Ecology and Biogeography 23: 1324-1334.

Legendre, P. and D. Borcard. 2018. Box-Cox-chord transformations for community composition data prior to beta diversity analysis. Ecography 41: 1820-1824.

Legendre, P. and M. De Cáceres. 2013. Beta diversity as the variance of community data: dissimilarity coefficients and partitioning. Ecology Letters 16: 951-963.

Legendre, P. and E. D. Gallagher, E.D. 2001. Ecologically meaningful transformations for ordination of species data. Oecologia 129: 271-280.

Legendre, P. and Legendre, L. 2012. Numerical Ecology. 3rd English edition. Elsevier Science BV, Amsterdam.

Webb, C., D. Ackerly, M. McPeek, and M. Donoghue. 2002. Phylogenies and community ecology. Annual Review of Ecology and Systematics 33:475-505.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R语言中常用的生物多样性指数的计算(Alpha,Beta,Gamma,功能多样性,系统发育多样性) 的相关文章

  • JAVA好用的免费开发工具

    注 本文章软件皆为免费的开源软件 1 IDEA 社区版 下载地址 Download IntelliJ IDEA The Capable Ergonomic Java IDE by JetBrains 2 数据库管理工具 DBeaver 链接

随机推荐

  • WTM asp.net core应用程序在Ubuntu上和CentOS上部署

    wtm在Ubuntu上和CentOS上部署 项目发布 在Visual Studio中右击Web项目 选择发布 如下图 Ubuntu安装 net core运行时 Ubuntu我是用的Vmware虚拟机 版本是18 04 参考官方文档 如果要开
  • Centos环境下离线安装postgreSQL简易版

    一 安装背景 因为服务器是部署在内网环境的 所以在无法连接外网的环境下 安装一些软件就会显得比较麻烦 所以特地尝试了一下离线安装 话不多说 开始 二 下载数据库资源文件 进入postgreSQL官网 选择需要安装的pgsql版本等 这里以9
  • 【云原生之Docker实战】使用docker部署kodbox私有云

    云原生之Docker实战 使用docker部署kodbox私有云 一 kodbox介绍 1 kodbox简介 2 kodbox功能与特点 二 检查本地docker状态 1 检查docker版本 2 检查docker状态 三 安装kodbox
  • 2018数学建模A题的简单指导

    之前写过一篇博客 介绍如何使用差分格式求解热传导方程 今天打开博客 突然发现评论区被这篇文章霸屏了 询问实验室的小伙伴才知 原来是被可爱的建模学子们攻占了 经过简单的了解 发现今年建模的A题的核心就是求解一个热传导方程 因此之前所写文章的程
  • ARM处理器寻址方式

    往期推荐 ARM指令集 ARM汇编语言程序结构 Android与ARM处理器 反射调用Java层方法 寻址的概述 寻址是指寻找寄存器里存放的数据或者是地址里存放的数据并加以使用 寻址有以下八种方式 1 立即寻址 2 寄存器寻址 3 寄存器移
  • 生产者消费者异步调用

    场景 全量同步上游酒店数据 需要同步酒店数据量近百万 上游接口一家酒店需要调用2次接口才能获取完整的酒店数据 并且一次只能查询一家酒店 本地需要更新的表有9张表 7张百万级别 2张千万级别 如果一个一个酒店查询 然后更新就需要更新 近千万次
  • CSS的学习

    CSS 1 CSS 如何生效 内部样式表 内联样式 外部样式表 级联的优先级 2 颜色 尺寸 对齐 尺寸 对齐 颜色 3 盒子模型 4 边框与边距 5 定位 6 浮动 7 不透明度 8 溢出 9 组合选择器 后代选择器 子选择器 10 伪类
  • Docker 配置国内源加速(2023/05/14)

    Docker 配置国内源加速 2023 05 14 文章目录 Docker 配置国内源加速 2023 05 14 1 修改配置文件 2 重启 Docker 服务 3 查看是否成功 Docker 在拉取镜像时使用默认源速度会比较慢 因此需要配
  • 12款高质量的免费 HTML 网站模板下载

    这篇文章收集了12款高质量的免费HTML网页模板分享给大家 您可以免费下载使用 相信这些漂亮的HTML网页模板既能够帮助您节省大量的时间和精力 又能有很满意的效果 希望这些精美的免费HTML网页模板能帮助到您 Magicbox 演示 下载
  • 华为手机连电脑当摄像头用_怎么用华为手机当电脑摄像头?

    展开全部 1 首先 需要从网站上下载相应的软件 大家可以从百度里面搜索 魅色软件 然后将电脑PC版本和安卓手机版本的软件全部下载 并在电脑上和安卓手机上都安装上这个软件 2 然后打开并运行电脑上的魅色软件 然后与此同时运行安卓手机上的魅色软
  • 多方安全计算简介

    1 多方安全计算背景 多方安全计算的研究主要是针对无可信第三方的情况下 如何安全地计算一个约定函数的问题 多方安全计算是电子选举 门限签名以及电子拍卖等诸多应用得以实施的密码学基础 一个多方安全计算协议 如果对于拥有无限计算能力攻击者而言是
  • redis(error) NOAUTH Authentication required.

    报错原因 没有用密码登陆认证 解决 输入密码即可解决 auth 密码
  • 点云最小外包矩形计算

    1 原理介绍 一簇点云的最小外包矩形 Minimum Bounding Rectangle MBR 是指用一个矩形将该簇点云框起来 所有点云数据在矩形框内 如下图所示为一个矩形框刚好将点云数据全部包围 下面给出一种基于最大重叠度的最小外包矩
  • 录音转文字软件哪个好?这几款分享给你

    嗨朋友们 你是否曾经为了整理会议记录或是处理采访录音而烦恼不已 那些长篇大论的文字内容得一个个敲键盘实在是太耗时了 今天我要给你介绍一些超方便的录音转文字软件 它不仅简化了记录和整理的过程 还提供了更高效的工作方式 能够让你跟繁琐的打字工作
  • Qt 6.2 中 QML 工具有哪些新功能?

    QML 工具是发展最快的领域之一 自 Qt 5 15 以来添加了大量新功能 在这里 我们将展示静态分析和格式化 QML 领域的进展和未来计划 Qt开发主流库 Qtitan组件集 QtitanRibbon 下载试用 遵循Microsoft R
  • IOC源码刨析

    前言 Spring框架两大核心 IOC和AOP IOC 控制反转 把对象的创建 属性设置 初始化 销毁等工作交给Spirng的IOC容器去管理 解放程序员的劳动力 对象被注册到Spring的IOC容器中 使用的时候从容器中获取即可 非常方便
  • Hadoop生态圈集群部署(完整版)

    软件 版本 Mysql 5 7 Java 1 8 0 241 Hadoop 3 3 0 Zookeeper 3 4 6 Hive 3 1 2 Flink 1 14 5 Hudi 0 11 1 Doris 1 1 0 Dinky 0 6 6
  • 七天玩转Redis

    1 string类型 设定指定的key值 语法格式 set key value key为键 value为值 127 0 0 1 6379 6 gt set k1 v1 OK 获取指定key的值 get key 127 0 0 1 6379
  • k8s容器 pod OOM, exit code:137

    某天查看线上服务 发现有个服务平均每天重启一次 通过k8s descripe pod podName 命令发现exit code 137 reason OOM Killed 提示比较明显OOM 当时查了失败的容器内服务日志 发现没有异常信息
  • R语言中常用的生物多样性指数的计算(Alpha,Beta,Gamma,功能多样性,系统发育多样性)

    文章目录 Alpha 多样性指数 Beta多样性指数 Hill的Beta多样性指数和Gamma多样性指数 基于距离和方差分解的Beta多样性指数 功能多样性 系统发育多样性 Alpha 多样性指数 常见的Alpha多样性指数的含义见http