18 Sep

New theme

I want a simpler theme on my blog, so while I was sitting here waiting for some computations to finish, I have been playing around with themes.  This is what I came up with.

It is much simpler to look at than the old theme.

That’s the good part.

To get to this, I’ve had to remove some of the widgets from the side bars that I usually like.  Such as the DNA Network image showing the resent headlines.  I liked that one, but it had to go to get a cleaner theme.

Instead I’ve added a blogroll so I can check up on e.g. the DNA Network through that.

Now my computations are done, so I’ll have a quick look at it and start up the next batch.  Then it’s off to bed.  I’m getting up in 5 hours…

18 Sep

do.call the lifesaver

It is not uncommon for me to summarize some data in a set of files — say one per chromosome in a genome analysis — and then want to read the entire data into R for analysis.

This is a matter of calling  read.table() on each file and then combining the results with rbind(), and not really a major problem, but I’ve never been happy with the way I did it.

I would iterate through the file names and append the tables together one at a time, something that can be very slow when there is a lot of files and a lot of data.

Today I stumbled upon the function do.call() in the documentation.  It is essentially like apply in Python, and just what I need to solve this problem.  Now, to read in tables from a bunch of files I can use simply:

data <- do.call("rbind",lapply(fnames,read.table,header=TRUE))

Neat, eh?

18 Sep

Rapid NJ

Our new neighbour-joining paper (I wrote about it here, but it was called “Accelerated Neighbour-Joining” then) just came online:

Rapid Neighbour-Joining

Martin Simonsen, Thomas Mailund  and Christian N. S. Pedersen

Abstract
The neighbour-joining method reconstructs phylogenies by iteratively joining pairs of nodes until a single node remains. The criterion for which pair of nodes to merge is based on both the distance between the pair and the average distance to the rest of the nodes. In this paper, we present a new search strategy for the optimisation criteria used for selecting the next pair to merge and we show empirically that the new search strategy is superior to other state-of-the-art neighbour-joining implementations.

I have put the source code plus binaries for Linux (Debian and RedHat), Windows and Mac OS X (i386) on this web page.