Skip to content

Spatial analysis and simulation of ecological communities

License

Notifications You must be signed in to change notification settings

MoBiodiv/mobsim

Repository files navigation

CRAN_Status_Badge

Licence

Project Status: Active – The project has reached a stable, usable state and is being actively developed.

DOI

R-CMD-check

Overview

The goal of the package mobsim is to facilitate understanding of scale-dependent biodiversity changes.

The package includes functions to simulate species distributions in space with controlled abundance distributions as well as controlled intraspecific aggregation. For analysis there are functions for species rarefaction and accumulation curves, species-area relationships, endemics-area relationships and the distance-decay of community similarity.

A detailed introduction of the package is available at bioRxiv.

Installation

# The easiest way to get mobsim is to install from CRAN:
install.packages("mobsim")

# Or the development version from GitHub:
# install.packages("devtools")
devtools::install_github("MoBiodiv/mobsim", build_vignettes = TRUE)

Please enter bug reports on github.

Getting help

You can get an overview of the available functions in mobsim:

?mobsim

Or have a look at tutorials in the vignette:

browseVignettes("mobsim")

Examples

Here is an example of how to simulate two communities, which just differ in their spatial aggregation of species, but have the same species abundance distribution and the same total number of individuals.

Simulation of communities

library(mobsim)
comm_rand <- sim_poisson_community(s_pool = 30, n_sim = 300)
comm_agg <- sim_thomas_community(s_pool = 30, n_sim = 300, sigma = 0.05, mother_points = 1)
par(mfrow = c(1,2))
plot(comm_rand)
plot(comm_agg)

Analysis of spatially-explicit community data

mobsim mobsim offer functions to analyse spatially-explicit community data. For example the species-area relationship of a community can be easily evaluated.

sar_rand <- divar(comm_rand)
sar_agg <- divar(comm_agg)
plot(m_species ~ prop_area, data = sar_rand, type = "b", log = "xy",
     xlab = "Proportion of area sampled",ylab = "No. of species",
     ylim = c(3,30))
lines(m_species ~ prop_area, data = sar_agg, type = "b", col = 2)
legend("bottomright", c("Random","Aggregated"), col = 1:2, lwd = 2)

Sampling of communities

Simulated or observed communities can be also sampled inorder to test whether biodiversity changes are correctly detected and revealed by any sampling design.

par(mfrow = c(1,2))
samples_rand <- sample_quadrats(comm_rand, avoid_overlap = TRUE)
samples_agg <- sample_quadrats(comm_agg, avoid_overlap = TRUE)