One of the simplest ways to model the dynamics of a microbial community is with generalized Lotka-Volterra (gLV) dynamics. gLV dynamics are a logistic growth model with additional pairwise interaction terms which can be visualized as the edges on a microbial interaction network. We will show how the underlying gLV differential equation can be efficiently numerically integrated and converted to a simple regression problem when one wants to learn the model parameters from time series data. Without any other structure in the model, however, interpreting the interaction network becomes ever more challenging as the number of taxa increases (the gut microbiome has hundreds of taxa resulting in tens to hundreds of thousands of potential interactions between them). We don’t want to be stuck trying to interpret a “hairball” network. To address this we will show how we grouped taxa into interaction modules using a Dirichlet Process prior. We will review the Dirichlet Process in detail and compare and contrast its use in a standard mixing model to how we have used it. We will also show how we achieved efficient inference for the module assignments with collapsed Gibbs sampling. If time allows we will also discuss how we incorporated structure learning in our model with Bayesian variable selection, which also does not scale efficiently without grouping taxa into interaction modules.