KroneckerBio is a modelling toolbox for systems biology written in Matlab. It introduces a number of innovations that improve the ease of use, transparency of the algorithms, and speed of the simulations. It is available for download on Github. KroneckerBio is designed to work best with mass action models, though most SBML models can be imported and simulated as well. Because the ODEs of a mass action model can be written as handful of matrix multiplications, this formulation can take advantage of Matlab’s fast linear algebra functions. The higher order integrations, like sensitivity calculations, are done using sparse matrix operations. The reference implementations of the algorithms I have developed as part of my graduate thesis are provided as part of this toolbox. As a result, functions for computing parameter uncertainty, topology uncertainty, and optimal experimental design are quite mature in KroneckerBio.

The documentation on each of the functions is quite good, but an overview of the available features is not really present. The best way to learn how to use the toolbox is to download it and go to the testing folder. In here are scripts that test all the main functions in KroneckerBio and can quickly used as a template for your problem. I try to be quick to respond to help requests and bug reports from users of this software.

Previous versions

The code for my practical parameter uncertainty and linearized topology probability papers can be found on the Tidor lab website. This has more than just an old copy of KroneckerBio; it has the code to generate the data and figures of the paper.


Parsita is a parser combinator library for Python. It is hosted on Github and available on PyPI. Its main goal is a maximally simple interface for parsing. The API is inspired by Scala’s parser combinator library, but the operators were carefully selected to have intuitive meaning and precedence in Python. A unique feature of Parsita is that it uses metaclass magic to allow for forward declarations of values by converting names not found during class body execution into forward declaration objects resolved during class instantiation.

Boggle Word Finder

The Boggle Word Finder is a program that finds all of the words in a four-by-four square of letters according to the rules of the game Boggle. It is little C# Windows application that I wrote for fun while I was at Case. The core algorithm recurses over each letter in a word until either the last letter is found or all possibilities have been exhausted. Interestingly, it was easier to take each word in the dictionary and look for it in the square rather than take each combination of letters and look for it in the dictionary. It is also fast; it will complete the search before the mouse click is complete. The source code and a compiled executable is available for download on Github.

Changing the letters to maximize the number of words that can be found (helpfully computed by Boggle Word Finder) is a fun game that I like to play with it. The first milestone is to overflow the textbox. Hint: what letters does Wheel of Fortune give players for free in the bonus round?