Skip to main content
Dryad logo

A dynamic ancestral graph model and GPU-based simulation of a community based on metagenomic sampling


Griswold, Cortland (2022), A dynamic ancestral graph model and GPU-based simulation of a community based on metagenomic sampling, Dryad, Dataset,


In this paper we present an ancestral graph model of the evolution of a guild in an ecological community. The model is based on a metagenomic sampling design in that a random sample is taken at the community, as opposed the taxon, level and species are discovered by genetic sequencing. The specific implementation of the model envisions an ecological guild that was founded by colonization at some point in the past that then potentially undergoes diversification by natural selection. Within the graph, species emerge and evolve through the diversification process and their densities in the graph are dynamic and governed by both ecological drift and random genetic drift, as well as differential viability. We employ the 3% sequence divergence rule at a marker locus to identify Operational Taxonomic Units. We then explore approaches to see if there are indirect signals of the diversification process, including population genetic and ecological approaches. In terms of population genetics, we study the joint site frequency spectrum of OTUs, as well its associated statistics. In terms of ecology, we study the species (or OTU) abundance distribution. For both we observe deviations from neutrality, which indicates that there may be signals of diversifying selection in metagenomic studies under certain conditions. The model is available as a GPU-based computer program in C/C++ and using OpenCL, with the long-term goal of adding functionality iteratively to model large-scale eco-evolutionary processes for metagenomic data.

Usage Notes

The zipped folder in Data Dryad consists of raw simulation results and analysis files.

A README.txt file provides a more detailed explanation of the contents of subfolders. 

Computer code is provided through Zenodo.

An associated README.txt file is provided with information on compiling and using the program.