mobr Travis build status DOI

Measurement of Biodiversity in R

This repository hosts an R package that is actively being developed for estimating biodiversity and the components of its change. The key innovations of this R package over other R packages that also carry out rarefaction (e.g., vegan, iNext) is that mobr is focused on 1) making empirical comparisons between treatments or gradients, and 2) our framework emphasizes how changes in biodiversity are linked to changes in community structure: the SAD, total abundance, and spatial aggregation.

The concepts and methods behind this R package are described in three publications.

McGlinn, D.J. X. Xiao, F. May, N.J Gotelli, T. Engel, S.A Blowes, T.M. Knight, O. Purschke, J.M Chase, and B.J. McGill. 2019. MoB (Measurement of Biodiversity): a method to separate the scale-dependent effects of species abundance distribution, density, and aggregation on diversity change. Methods in Ecology and Evolution. 10:258–269.

McGlinn, D.J. T. Engel, S.A. Blowes, N.J. Gotelli, T.M. Knight, B.J. McGill, N. Sanders, and J.M. Chase. accepted. A multiscale framework for disentangling the roles of evenness, density, and aggregation on diversity gradients. Ecology.

Chase, J.M., B. McGill, D.J. McGlinn, F. May, S.A. Blowes, X. Xiao, T. Knight. 2018. Embracing scale-dependence to achieve a deeper understanding of biodiversity and its change across communities. Ecology Letters. 21: 1737–1751.


The easiest option is to install the package directly from GitHub using the package devtools. If you do not already have devtools installed then need to install it.


Now that devtools is installed you can install `mobr using the following R code:


Note: the installation may take some time due to numerous dependencies. We are working on reducing the number of dependencies.


The package vignette provides a useful walk-through the package tools, but below is some example code that uses the two key analyses and related graphics.

inv_mob_in = make_mob_in(inv_comm, inv_plot_attr, coord_names = c('x', 'y'))
inv_stats = get_mob_stats(inv_mob_in, 'group')
inv_deltaS = get_delta_stats(inv_mob_in, 'group', ref_level='uninvaded',
                             type='discrete', log_scale=TRUE, n_perm = 5)
plot(inv_deltaS, 'b1')