Software by João Pedro Hespanha

A few years ago I started to move my software to   That is where you will find the most recent stuff. 

Over the years I have been developing several programs/macros/scripts that I use to make my life easier. Some of this software became sufficiently user friendly so that others can perhaps use them without too much trouble.

Whenever appropriate, please acknowledge the use of the software posted here. I included the BibTeX entries to help you do this.

Send me note if any of these is useful to you. Enjoy…

StochDynTools  MATLAB scripts to compute approximate moment dynamics for a stochastic network of chemical reactions. This approximation is based on the moment closure techniques described in the following references:

J. Hespanha. Moment closure for biochemical networks. In Proc. of the Third Int. Symp. on Control, Communications and Signal Processing, Mar. 2008. [pdf]

J. Hespanha, Abhyudai Singh. Stochastic Models for Chemically Reacting Systems Using Polynomial Stochastic Hybrid Systems. Int. J. on Robust Control, Special Issue on Control at Small Scales: Issue 1, 15(15):669—689, Sep. 2005.

A. Singh, J. Hespanha. LogNormal Moment Closures for Biochemical Reactions. In Proc. of the 45th Conf. on Decision and Contr., Dec. 2006.

                               Status: Work in progress. The documentation is fairly complete, but this software is still in its earlier stages of development and perhaps not very user friendly. Please email me if you have questions/problems using it. I’ll be happy to help.

TextVisTools      This MATLAB toolbox permits the spatial visualization of large corpus of documents based on
1) Extraction of document features using Latent Dirichlet allocation
2) Locating documents in two-dimensional space using Self-Organizing Map's
3) Producing outputs that can be imported into ArcGIS, permitting the visualization of documents clusters

                               Status: The code is fairly stable and each function has a detailed help, but the toolbox permits so many options that it is hard to get your hands around it without some help. The best is to start with the example included and work from there.


grPartition          MATLAB function to partition very large graphs very fast. This algorithm was used in this paper:

C. Lim, S. Bohacek, J. Hespanha, K. Obraczka. Hierarchical Max-Flow Routing. In Proc. of the IEEE GLOBECOM, Nov. 2005.

                               Status: Pretty stable, with a nice technical report to explain the algorithm.

@graph               MATLAB graph class. It allows you to create, draw, and perform a few simple operations on graphs.

Status: Work in progress. All scripts have a nice help, but that is the extent of the documentation.

bib2web               Perl script to automatically generate a web page from bibtex files.

Pretty stable. I have been using this for several years to generate and, but as I keep adding “features” new bugs keep appearing.

FastTrack           C library to find and track specific landmarks in an image. This code was written for speed.
It processes an entire image in just a few milliseconds so that it can be used in robotics to process images at frame rate.

Status: Work in progess. Fairly complete documentation is available for all library functions.
Justin Pearson is currently working on interfacing this code with Simulink’s Real-Time Workshop for feedback control.

To keep lawyers and such happy, the following paragraph applies to all software in this web site.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details (