Selected Publications

Inferring large-scale processes that drive biodiversity hinges on understanding the phylogenetic and spatial pattern of species richness. However, clades and geographic regions are accumulating newly described species at an uneven rate, potentially affecting the stability of currently observed diversity patterns. Here, we present a probabilistic model of species discovery to assess the uncertainty in diversity levels among clades and regions. We use a Bayesian time series regression to estimate the long-term trend in the rate of …
PNAS 114:14, 3666-3671, 2017

Recent Publications

. Probabilistic models of species discovery and biodiversity comparisons. PNAS 114:14, 3666-3671, 2017.

PDF Code

. Integrating incomplete fossils by isolating conflicting signal in saturated and non-independent morphological characters. Syst Biol 63:5, 582-600, 2014.


. Why the Long Face? The Mechanics of Mandibular Symphysis Proportions in Crocodiles. PLoS One 8:1, e53873, 2013.


. Functional constraints on tooth morphology in carnivorous mammals. BMC Evolutionary Biology 12:1, 146, 2012.


. Adaptive radiation of multituberculate mammals before the extinction of dinosaurs. Nature 483:7390, 457-460, 2012.


Recent Posts

More Posts

In my spare time I play Warhammer 40k, a game that involves rolling a lot of six-sided dice. My largest army are the Dark Angels, a major chapter of space marines. Because I’ve wanted to grow my R skills, I finally wrote my first R package mathhammr. This lightweight package is a collection functions for simulating collections of dice rolls. The recently released Bolter Discipline beta rule for 40k is the perfect opportunity to demonstrate the package.


Macrostrat is a data service I’ve written [about before]({{< relref “/post/macrostrat.html” >}}). Today I’m going to explaining how to get the fancy geological unit polygons you see when go to their interactive geological maps. This is not covered or documented in the Macrostrat API – I only figured it out through snooping, determination, and careful skimming of the sift source code. The goal of this “how-to” is to get the map for at least one geological unit.


In this post I’m going to dive deeper in to Macrostrat and start looking at genus diversity of geological units; this is the first follow-up on my previous post. Like before, the code used to generate all the figures etc. is available here. Our initial data call is exactly the same as my previous post; I’m looking for geological units with Permian sediments: Unfortunately this API call does not return useful information about what fossils are found in the geologic unit, only how many.


Macrostrat is a geology resources created by Shanan Peters, who currently maintains it and the Paleobiology Database/PBDB with a small group of developers. Macrostrat is a database of geologic units from North America representing almost all of time. One of the coolest aspect of this database is that geologic units are recorded regardless of if they bear fossils or not, which is very useful when you’re trying to analyze the conditions under which fossils are both preserved and found.


This GSA, I will be continuing to speak on my research about the functional diversity of the North American species pool over the Cenozoic. I’m asking questions about changes to the relative diversity of mammal functional groups in response to climate covariates. In addition, my model takes into account the effects of species mass and taxonomic order on origination and survival. Finally, observation of a fossil species is a function of functional group and species mass.



Teaching analytical paleobiology

Teaching material on analytical paleobiology

Functional diversity

Changes to the composition of a species pool over time


Differences in species duration associated with functional traits


Data Science Resume 2019-02

Academic CV 2019-02