diversity_calc {CNVRG} | R Documentation |
Calculate Shannon's or Simpson's indices for each replicate while propagating uncertainty in relative abundance estimates through calculations.
diversity_calc( model_out, countData, params = "pi", entropy_measure = "shannon", equivalents = T )
model_out |
Output of CNVRG modeling functions, including cnvrg_HMC and cnvrg_VI or isd_transform |
countData |
Dataframe of count data that was modeled. Should be exactly the same as those data modeled! The first field should be sample name and integer count data should be in all other fields. This is passed in so that the names of fields can be used to make the output of differential relative abundance testing more readable. |
params |
Parameter for which to calculate diversity, can be 'p' or 'pi' or both (e.g., c("pi","p")) |
entropy_measure |
Diversity entropy to use, can be one of 'shannon' or 'simpson' |
equivalents |
Convert entropies into number equivalents. Defaults to true. See Jost (2006), "Entropy and diversity" |
Takes as input either a fitted Stan object from the cnvrg_HMC or cnvrg_VI functions, or the output of isd_transform. As always, doublecheck the results to ensure the function has output reasonable values. Note that because there are no zero values and all proportion estimates are non zero there is a lot of information within the modeled data. Because diversity entropies are measures of information content, this means there will be a much higher entropy estimate for modeled data than the raw count data. However, patterns of variation in diversity should be similar among treatment groups for modeled and raw data.
A list that has samples from posterior distributions of entropy metrics
#simulate an OTU table com_demo <-matrix(0, nrow = 10, ncol = 10) com_demo[1:5,] <- c(rep(3,5), rep(7,5)) #Alternates 3 and 7 com_demo[6:10,] <- c(rep(7,5), rep(3,5)) #Reverses alternation fornames <- NA for(i in 1:length(com_demo[1,])){ fornames[i] <- paste("otu_", i, sep = "") } sample_vec <- NA for(i in 1:length(com_demo[,1])){ sample_vec[i] <- paste("sample", i, sep = "_") } com_demo <- data.frame(sample_vec, com_demo) names(com_demo) <- c("sample", fornames) out <- cnvrg_VI(com_demo,starts = c(1,6), ends=c(5,10)) diversity_calc(model_out = out,params = c("pi","p"), countData = com_demo, entropy_measure = 'shannon')