| name | bioconductor-miasim |
| description | Microbiome time series simulation with generalized Lotka-Volterra model, Self-Organized Instability (SOI), and other models. Hubbell's Neutral model is used to determine the abundance matrix. The resulting abundance matrix is applied to (Tree)SummarizedExperiment objects. |
miaSim
Workflows
Standard Workflow
library(miaSim)
A_normal <- powerlawA(n_species = 4, alpha = 3)
tse_glv <- simulateGLV(
n_species = 4,
A = A_normal,
t_start = 0,
t_store = 1000,
stochastic = FALSE,
norm = FALSE
)
tse_hubbell <- simulateHubbell(
n_species = 8,
M = 10,
carrying_capacity = 1000,
k_events = 50,
migration_p = 0.02,
t_end = 100
)
Input/Output Note: Inputs are ecological parameters (species count, interaction matrices, carrying capacity); outputs are simulated abundance matrices stored in TreeSummarizedExperiment objects.
When to Use
- Simulating microbiome species abundance matrices and time series under varying ecological assumptions.
- Modeling population dynamics using the generalized Lotka-Volterra model (
simulateGLV) or its discrete version, the Ricker model (simulateRicker).
- Simulating neutral community dynamics with migration, births, and deaths using Hubbell's Neutral model (
simulateHubbell).
- Generating species interaction matrices with specific distributional assumptions using
powerlawA or randomA.
When NOT to Use
- For fitting ecological models to real-world experimental data (use parameter estimation packages instead).
- For simulating non-microbial networks that do not fit into the
TreeSummarizedExperiment data container.
Data Requirements
- Input parameters such as interaction matrices generated by
powerlawA or randomA.
- Outputs are structured as
TreeSummarizedExperiment objects containing simulated abundance matrices.
Key Parameters
- n_species: Number of species to include in the simulation or interaction matrix.
- alpha: Power-law exponent parameter used in
powerlawA.
- diagonal: Diagonal values of the interaction matrix in
randomA.
- connectance: Connectance of the interaction matrix in
randomA.
- carrying_capacity: Carrying capacity of the community in
simulateHubbell and simulateSOI.
- migration_p: Migration probability in
simulateHubbell and simulateHubbellRates.
- t_end: End time of the simulation.
- norm: Logical indicating whether to normalize the simulated abundances.
Best Practices
- Ensure the number of species specified in the interaction matrix matches the number of species used in the simulation models.
- Generate interaction matrices using
powerlawA or randomA before running models like GLV, SOI, or Ricker.
- Use
randomE to generate production and consumption rate matrices specifically for the consumer-resource model (simulateConsumerResource).
Common Pitfalls
- Specifying a different number of species in the interaction matrix than in the simulation model, which causes dimension mismatch errors. Ensure
n_species matches the dimensions of A.
Alternatives
micodymora: A Python package for microbiome simulation.
Citations
- Gao et al. 2023 (Case studies on microbiome simulation).
References