四时宝库

程序员的知识宝库

R语言|微生态a多样性计算函数(r语言多元统计)

本函数主要用于计算otu丰度表的a多样性计算

#依赖包
library(vegan)
library(picante)

计算函数

alpha_diversity <- function(x, tree = NULL) {
    observed_species <- estimateR(x)[1, ]
    Chao1 <- estimateR(x)[2, ]
    ACE <- estimateR(x)[4, ]
    Shannon <- diversity(x, index = 'shannon',base = 2)
    Simpson <- diversity(x, index = 'simpson')    #注意,这里是Gini-Simpson 指数
    goods_Coverage <- 1 - rowSums(x == 1) / rowSums(x)
    
    #保留四位小数
    Shannon <- sprintf("%0.4f", Shannon)
    Simpson <- sprintf("%0.4f", Simpson)
    goods_Coverage <- sprintf("%0.4f", goods_Coverage)
    
    
    result <- data.frame(observed_species, ACE,Chao1, Shannon, Simpson, goods_Coverage)
    
    if (!is.null(tree)) {
        PD_whole_tree <- pd(x, tree, include.root = FALSE)[1]
        names(PD_whole_tree) <- 'PD_whole_tree'
        result <- cbind(result, PD_whole_tree)
        
        result <- data.frame(observed_species, ACE,Chao1, Shannon, Simpson,
                             PD_whole_tree ,goods_Coverage)
    }
    result
}

使用方法

alpha <- alpha_diversity (otu)

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接