--- title: "EcoNiche workflow" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{EcoNiche workflow} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include=FALSE} library(EcoNiche) ``` This vignette demonstrates the EcoNiche workflow using the built-in plant community example data. ## Input data EcoNiche expects a taxon-by-sample abundance matrix and a sample-by-variable environmental table. The sample IDs in `colnames(plant_otu)` match `rownames(plant_env)` and `names(plant_group)`. ```{r input-data} data("plant_otu") data("plant_env") data("plant_group") dim(plant_otu) dim(plant_env) table(plant_group)[1:5] ``` For fast examples, we retain species observed in at least 15 samples. ```{r filter-taxa} otu_ex <- plant_otu[rowSums(plant_otu > 0) >= 15, ] dim(otu_ex) ``` ## CCA / partial-CCA workflow The CCA workflow uses multiple environmental variables to define the focal composite gradient and annual mean temperature as the covariate and plotting gradient. ```{r cca-workflow} cca_res <- cca_workflow_gradient( otu = otu_ex, env = plant_env, sel = c("AMP", "Moisture", "AP", "pH"), covariates = "AMT", var = "AMT", method = "loess", galaxy_colnum = FALSE, make_plot = FALSE, top_node = 20 ) names(cca_res) head(cca_res$step3$species) ``` ## Group-level workflow ```{r group-workflow} group_res <- cca_workflow_group( otu = otu_ex, env = plant_env, group = plant_group, sel = c("AMP", "Moisture", "AP", "pH"), covariates = "AMT", var = "AMT", choice = "all", method = "loess", plot_type = "sample", galaxy_colnum = FALSE, make_plot = FALSE ) names(group_res) head(group_res$step6$data) ``` ## GAM response analysis GAMs can be used to estimate taxon optima and response breadth along a single gradient. ```{r gam-workflow} otu_gam <- plant_otu[rowSums(plant_otu > 0) >= 20, ] gam_res <- gam_fit_model( otu = otu_gam, env = plant_env, env_var = "AMT", data_type = "count", count_family = "nb", use_offset = TRUE, min_prev = 0.10, min_total = 20, k_spline = 5, n_grid = 100, verbose = FALSE ) head(gam_res) ``` ## Levins breadth along a binned gradient ```{r levins-workflow} levins_res <- levins_calc_binned( otu = otu_ex, env = plant_env, axis_var = "AMT", nbin = 8, bin_method = "equal_freq", min_occ = 3, min_abund = 5 ) head(levins_res) ```