A unified framework for identification and ecological interpretation of core microbiomes across time and space, enhancing robustness and reproducibility in microbiome data analysis. 'BRCore' implements the workflow proposed by Shade and Stopnisek (2019) and incorporates additional rarefaction steps. The proposed workflow aims to identify persistent microbiomes using abundance-occupancy distributions and neutral community model fitting. For more details on abundance-occupancy distributions see Shade A, Stopnisek N (2019)
BRCore provides a unified framework for identification and ecological interpretation of core microbiomes across time and space, enhancing robustness and reproducibility in microbiome data analysis.
BRCore provides tools for:
Rarefaction analysis: Calculate pre-rarefaction metrics and perform rarefactions
add_rarefaction_metrics()multi_rarefy()plot_variance_propagation()Core microbiome identification: Identify core microbial taxa using abundance-occupancy distributions
identify_core()Neutral model fitting: Fit and visualize neutral community models
fit_neutral_model()plot_neutral_model()sncm.fit()Visualization: Plot rarefaction diagnostics, abundance-occupancy curves, and core distributions
plot_rarefaction_metrics()plot_abundance_occupancy()plot_core_distribution()plot_identified_core()install.packages("BRCore")
# or if using with `renv`:
renv::init(bioconductor = TRUE)
renv::install("BRCore")
NOTE: If using install.packages() in an renv project, renv
will intercept the call. Run renv::init(bioconductor = TRUE) first to
ensure Bioconductor dependencies can be resolved and installed.
# install.packages("pak")
pak::pak("germs-lab/BRCore")
Note: pak handles dependencies automatically.
library(BRCore)
library(phyloseq)
# Add rarefaction metrics
bcse_metrics <- add_rarefaction_metrics(data = bcse)
# Perform rarefaction
bcse_rarefied_list <- multi_rarefy(
physeq_obj = bcse,
depth_level = 1000,
num_iter = 3,
set_seed = 7642
)
# Update phyloseq object with rarefied data
bcse_rare_single <- update_otu_table(
physeq_obj = bcse,
rarefied_otus = bcse_rarefied_list,
iteration = 2
) # Your preffered iteration can be used here
# Identify core microbiome
# With a single iteration of rarefaction
bcse_core <- identify_core(
physeq_obj = bcse_rare_single,
priority_var = "Crop",
increase_value = 0.02,
seed = 2134
)
# With multiple iterations of rarefaction
bcse_core_multi <- identify_core(
physeq_obj = bcse,
rarefied_list = bcse_rarefied_list,
priority_var = "Crop",
increase_value = 0.02,
depth_level = 1000,
seed = 2134
)
# Visualize abundance-occupancy distribution
plot_abundance_occupancy(core_result = bcse_core, core_set = "increase")
# Fit and plot neutral model
bcse_neutral <- fit_neutral_model(
otu_table = bcse_core$otu_table,
core_set = bcse_core$increase_core,
abundance_occupancy = bcse_core$abundance_occupancy
)
plot_neutral_model(bcse_neutral)
For detailed examples and use cases, see the package vignette:
vignette("BRCore-vignette", package = "BRCore")
Contributions to BRCore are welcome! Please see the CONTRIBUTING.md file for guidelines on how to contribute.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.