I’ve posted the code that I used in the canalization paper to do large-scale simulations of the evolution and epidemiology of the human influenza virus. I’ve called it ‘Antigen’. In it, each virus maintains a reference to its ‘parent’ infection, allowing the full infection tree to be built as the simulation proceeds. I’ve found this very useful, in that preempts the usual intermediate step of phylogenetic inference. Here, a virus’s antigenic phenotype is represent as a point in an n-d space. Mutations move the virus in this space and mutant viruses that are antigenically distant from previous infections have a transmission advantage. This differential transmission leads to the antigenic drift of the virus population. However, phenotype is just an interface; sequence-based phenotypes could easily be implemented.

I was very happy with how quickly I’ve got things to run. Usually individual-based models end up being slow and having to have not very many individuals. Here, I can run 40 years of simulation with 90 million hosts in around 15 minutes. With the code up on GitHub, I very much hope it gets used and improved upon by others in the community.