Start a fresh conversation. Replace the highlighted placeholders.
Use bioconductor-miasim to simulate a microbiome time series using the generalized Lotka-Volterra model with [n_species] species and an interaction matrix [A]
Required inputs
[n_species]
[A]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: bioconductor-miasimdescription: 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.when_to_use: Use when: miaSim; ATAC-seq chromatin accessibility (miaSim). Not for: Requires R ≥ 4.0.0 and Bioconductor ≥ 3.16user-invocable: false
miaSim
Workflows
Standard Workflow
library(miaSim)
# 1. Generate species interaction matrix
A_normal <- powerlawA(n_species = 4, alpha = 3)
# 2. Simulate time series using generalized Lotka-Volterra (gLV) model
tse_glv <- simulateGLV(
n_species = 4,
A = A_normal,
t_start = 0,
t_store = 1000,
stochastic = FALSE,
norm = FALSE
)
# 3. Simulate community using Hubbell Neutral model
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).