# Miasim

> miaSim

- Skill: `biomate-ai/miasim` (Agent Skill)
- Install (CLI): `npx skillmds@latest add biomate-ai/miasim`
- Raw SKILL.md: https://api.skillmd.com/api/skills/biomate-ai/miasim/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: biomate-ai (https://skillmd.com/u/biomate-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/biomate-ai/miasim

---


# miaSim

## Workflows

### Standard Workflow

```r
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).

## References
- Homepage: bioconductor.org/packages/miaSim
- Vignette: https://bioconductor.org/packages/release/bioc/vignettes/miaSim/inst/doc/vignette.html

