knitr::opts_chunk$set( collapse = TRUE, comment = "#>", message = FALSE )
library(MiscMetabar) data(data_fungi)
Numerous metrics of diversity exist. Hill numbers [^Hill73] is a kind of general framework for alpha diversity index.
[^Hill73]: Hill MO. 1973. Diversity and evenness: a unifying notation and its consequences. Ecology 54, 427-473.
renyi_res <- vegan::renyi(data_fungi@otu_table) head(renyi_res)
One way to keep into account for difference in the number of sequences per samples is to use a Tukey test on a linear model with the square roots of the number of sequence as the first explanatory variable of the linear model [^Balint15].
[^Balint15]: Bálint M et al. 2015. Relocation, high-latitude warming and host genetic identity shape the foliar fungal microbiome of poplars. Molecular Ecology 24, 235-248. https://doi.org/10.1111/mec.13018
p <- MiscMetabar::hill_pq(data_fungi, fact = "Height") p$plot_Hill_0
p$plot_tuckey
See also the tutorial of the microbiome package for an alternative using the non-parametric Kolmogorov-Smirnov test for two-group comparisons when there are no relevant covariates.
MicrobiotaProcess
library("MicrobiotaProcess") clean_pq(subset_samples_pq(data_fungi, !is.na(data_fungi@sam_data$Height))) %>% as.MPSE() %>% mp_cal_alpha() %>% mp_plot_alpha(.group = "Height")
From the help of glmulti package :
glmulti finds what are the n best models (the confidence set of models) among all possible models (the candidate set, as specified by the user). Models are fitted with the specified fitting function (default is glm) and are ranked with the specified Information Criterion (default is aicc). The best models are found either through exhaustive screening of the candidates, or using a genetic algorithm, which allows very large candidate sets to be adressed. The output can be used for model selection, variable selection, and multimodel inference.
library("glmulti") formula <- "Hill_0 ~ Hill_1 + Abundance + Time + Height" res_glmulti <- glmutli_pq(data_fungi, formula = formula, level = 1) res_glmulti ggplot(data = res_glmulti, aes(x = estimates, y = variable)) + geom_point( size = 2, alpha = 1, show.legend = FALSE ) + geom_vline( xintercept = 0, linetype = "dotted", linewidth = 1 ) + geom_errorbar( aes(xmin = estimates - alpha, xmax = estimates + alpha), width = 0.8, position = position_dodge(width = 0.8), alpha = 0.7, show.legend = FALSE ) + geom_label(aes(label = nb_model), nudge_y = 0.3, size = 3) + xlab("Standardized estimates") + ylab(formula) ggplot(data = res_glmulti, aes( x = importance, y = as.factor(variable), fill = estimates )) + geom_bar( stat = "identity", show.legend = FALSE, alpha = 0.8 ) + xlim(c(0, 1)) + geom_label(aes(label = nb_model, x = 0.1), size = 3, fill = "white" ) + scale_fill_viridis_b() + xlab("Importance") + ylab(formula)
formula <- "Hill_0 ~ Abundance + Time + Height" res_glmulti_interaction <- glmutli_pq(data_fungi, formula = formula, level = 2) res_glmulti_interaction ggplot(data = res_glmulti_interaction, aes(x = estimates, y = variable)) + geom_point( size = 2, alpha = 1, show.legend = FALSE ) + geom_vline( xintercept = 0, linetype = "dotted", linewidth = 1 ) + geom_errorbar( aes(xmin = estimates - alpha, xmax = estimates + alpha), width = 0.8, position = position_dodge(width = 0.8), alpha = 0.7, show.legend = FALSE ) + geom_label(aes(label = nb_model), nudge_y = 0.3, size = 3) + xlab("Standardized estimates") + ylab(formula) ggplot(data = res_glmulti_interaction, aes( x = importance, y = as.factor(variable), fill = estimates )) + geom_bar( stat = "identity", show.legend = FALSE, alpha = 0.8 ) + xlim(c(0, 1)) + geom_label(aes(label = nb_model, x = 0.1), size = 3, fill = "white" ) + scale_fill_viridis_b() + xlab("Importance") + ylab(formula)
sessionInfo()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.