Curriculum vitae

A PDF copy of my up-to-date CV can be downloaded here.

Scientific software tools


Enzo is a simple python library that allows mathematical models of metabolic pathways to be evolved between phenotypic states. I developed this approach for a paper on the simulated evolution of the anthocyanin biosynthesis pathway. Enzo is a wrapper for the Tellurium environment, which is an excellent tool for developing reproducible systems biology simulations in Python. Enzo is a work in progress and I am planning to add additional functionality as time goes by. The primary purpose of its existence is to allow the simulations performed in Computational modeling of anthocyanin pathway evolution: Biases, hotspots, and trade-offs and Structure and contingency determine mutational hotspots for flower color evolution to be easily replicated.

To install or contribute to enzo, go to the github repo.


Orbweaver is a pet project that is still a work in progress. It is a Python library designed to analyze gene co-expression relationships. Currently the functionality is limited, but it contains some useful tools for calculating distance matrices and generating network data structures.

To install or contribute to orbweaver, go to the github repo.


Kmertime is a super simple tool, written in python and cython, for counting k-mers in sequence data. It is reasonably fast and uses a convenient “KmerSet” class for handling the data. Kmertime also has a built-in function for generating random sequences.

To install or contribute to kmertime, go to the github repo.

Educational materials

Python for Scientists

Python is a very useful programming language that has become increasingly popular in the scientifc community in recent years. My friends and I found that there was a lack of a single centralized guide to help scientists set up a working Python environment. So, we decided to do something about it! We created a web page using Read the Docs that walks through setting up a useful Python ecosystem and also contains brief overviews of popular scientific packages and visualization tools.

Follow this link to reach the guide:

Python for Scientists

To make a contribution to the guide:

Fork and clone the master github repo


Emergent properties arise from interactions between individual agents within systems. Think of a school of fish or a flock of starlings. One of the most famous computational examples is the simulated world of Conway’s game of life. By following just three simple rules that determine the behavior of individual agents in the model and their relationships to neighbors, beautifully complex and interesting patterns emerge. I created a simple Python package that contains all the tools necessary to simulate Conway’s game of life on a grid of any size, using either random or user-defined initital conditions. Pyway is meant as a teaching tool. It simplifies the initialization of the game and allows visualizations to be made of game trajectories.

You can install pyway from it’s github repo.

Recorded presentations

Solanaceae Seminar Series 2020, Online

Botany Virtual Conference 2020, Online

Evolution 2019 in Providence, Rhode Island

Datasets and article repos

Github repo for “Were ancestral proteins less-specific?”

SRA BioProject phage display dataset used in “Were ancestral proteins less-specific?” and “Learning peptide recognition rules for a low-specificity protein.”

OSF repo for “Structure and contingency determine mutational hotspots for flower color evolution.”

Zenodo repo for “Computational modeling of anthocyanin pathway evolution: Biases, hotspots, and trade-offs.”

Github repo for “S100A5 binds Ca2+ and Cu2+ independently.”