I've been trying to bring myself somewhat up to date with current web technologies. I got my coalescent visualization ported over to HTML5 / Javascript by using Processing.js. If you're running Chrome or Safari, then this definitely makes for the better version.
Another paper to share. Here, I helped with the population genetic side of things in Rebekah Roger's analysis of a new gene in Drosophila. Before I left the Hartl lab, I worked with Rebekah on a bioinformatic analysis of chimeric genes. These are strange accidents of evolution where two functioning genes are spliced together to create a new gene with bits from both parental genes. We found 14 such genes in Drosophila, one of which is the focus of this current work. This new gene, which we're calling Quetzalcoatl, appears to be fantastic for the flies that possess it.
From my perspective, it's good to see the bioinformatic work pay dividends.
Reuters: "Who to blame for flu? Maybe the US, study finds."
This is hilarious. Of course it has to be someone's fault. Wow.
Ph.D. comics did a piece on this. Fortunately, the articles produced by science writers were actually pretty good: U of M News Service, HHMI News, CIDRAP News.
Today, my paper on migration patterns in the flu virus was published in PLoS Pathogens. This was fun work to do, requiring approaches from multiple disciplines. While the basics of the migration model came from population genetics and coalescent theory, fitting this model to sequence data required a lot of heavy-lifting computation implemented by Peter Beerli in the program Migrate. I originally wrote my program PACT to deal with the enormous (2000+ tips) phylogenetic trees produced by this analysis. Additionally, a lot of epidemiology went in to making realistic simulations on which to hone the methods.
The common ancestor of all contemporaneous H3N2 flu can be traced back to a single infection occurring somewhere in the world approximately 2-5 years before hand. This infection, by luck and by virtue of its genotype, becomes the progenitor of the entire worldwide flu population. The main goal of this analysis was to trace this progenitor lineage through time. We found that this lineage existed primarily in China and Southeast Asia, but also, surprisingly, in the USA. The occasional presence of this progenitor lineage in USA has important public health implications.
I'm not terribly happy with the PLoS presentation. Rather than keeping figures as line art, they were converted to low quality bitmaps. Also, I don't like the splitting of the supporting information into 10 different files. So, in addition to the paper, I'm hosting high quality PDFs of the figures and a single PDF of the entire supporting appendix. Go here.
About a week ago I gave an internet seminar on phylogenetics of the influenza virus over at phyloseminar.org. I'm very happy someone stepped up to organize something like this (thanks Erick!). You can watch me talk to my computer for an hour if you'd like, and the other seminars are really good as well.
I've posted another Processing app. This one is a basic population genetic simulation. There are multiple variants within a population of reproducing individuals. Variants can mutate into other variants, and the frequencies of each change over time due to genetic drift and natural selection.
There are a number of basic results that are immediately obvious here, such as the conditions required for persistent variation in the population and the conditions required for the evolution of mutational robustness.
I often find myself getting lost in Wikipedia. There are so many amazing things in this world. More recently, I've started keeping track of some of the more interesting / outlandish articles I come across. You can find the list here.
I wrote a program called PACT (Posterior Analysis of Coalescent Trees) this spring to properly analyze the genealogical trees produced by Migrate. I finally put in the extra effort to write documentation and make it easy for other people to use the software. It's now available for download.
I had originally wanted to estimate the relative contribution of various geographic regions to the evolution of the influenza virus. Trees produced by Migrate contain an explicit description of which geographic region branches reside in. It was just a matter a extracting, displaying and summarizing this information. The program can do a variety of things beyond this, and hopefully should prove a useful accessory to any sort of coalescent inference.
I've written a small Processing app to visualize the genealogical process. I've seen a lot of evolutionary trees drawn quite nicely. However, this is the first example that I've seen that presents trees in a dynamic fashion, showing how they evolve over time. It also allows for interactivity. For instance, you can see how adding more individuals to an evolving population causes their evolutionary tree to deepen.
Probably the best part about writing this in Processing is how nicely objected-orientated things are. Each individual in the simulation follows a simple physics simulation, repelling away from other individuals. This takes care of layout without having to worry about high-level control.
I'm planning on writing more apps in this vein. I think it might be a very useful framework for data analysis, rather than just simulation.
Welcome. I created this site to host my work, both large and small. Large projects have a natural home as articles in scientific journals. However, I'll often spend an afternoon following up on some small thing that's of passing interest to me. I would like to keep a journal of these small creations. Not planning a blog, but something involving a bit more novelty. We'll see what happens...
archive • previous •
twitter
github
RSS