Author Archives: Nick Celms


A project that started with the question, “how many microbial genes are there in the world?” has grown to potentially lead to answers to this and broader questions about the microbial universe. First, known taxa (E. coli) were organized into matrices, with strains as rows, and proteins as columns. Hamming distances define a metric for organizing strains into phylogenetic trees. The phylogenetic distance is the importance of the split between the strains, or the alpha score, as refered to in d-splits literature. This approach became our main focus when we attempted the same heuristic with viral data, with surprisingly strong results. At present, we are taking “pie slices” of the phage proteonomic tree, and seeing to what extent we can recreate that observed internal structure, as a “proof of concept” for viral applicability. Reading and work on splitstrees, d-splits, and consecutive ones property, will drive the next developments. In addition, this coming week, on August 18th, our group will be attending a lecture on whole genome taxonomy, which should help drive further progress on our project.

example from

cliques clans and complexity analysis

We’ve come a long way since proteins in pools by probability. Cliques provoked research into how best to validate their worth, which led to hamming distances, densitrees, splitstrees, and more.

My latest development milestone is the first working version of the perl code I’ve written for annotating proteins with their functions. I had a version of this code previously that did so for all cliques, but this time, I wanted to only handle the cliques indicated by Jim’s MatLab code.

The script works great, and outputs all cliques by binary signature, listing proteins and functions, and outputs the list of strains. Both on Octopussy and on my netbook, execution took just over an hour.


My next undertaking will be speeding the code up as much as possible, so that when I rework it to sit on the edwards.sdsu server with form submission, it will actually be usable in speed. The move to a web-based tool will of course include some other major headaches, but task one is getting the complexity analysis done and making strides towards speeding it up. example from

splits trees paper

In the spirit of ample blogging, I’m posting the link for a paper the math guys and I have been fighting our way through. Enjoy!



update: eeepc ubuntu display issues

Hazzah! Display hook up and disconnect now works without hiccup, Compiz Fusion was indeed the culprit. Lots of ways to go about fixing it, some folks had command-line methods in the forums, but often those would require either running the command yourself each startup (or at least each startup when you’re planning on using an external display), or automating that code to run each boot. My method seems a bit easier, I just went into the package manager (System->Administration->Synaptic Package Manager) and searched Compiz, and marked all parts for complete removal. Metacity is probably already installed, so it will take over for Compiz as soon as the removal takes place, but while you’re in package manager, double check to be sure you have Metacity already installed, and if not, go grab it. I’m sure there are other alternatives, both in methodology and in which display driver you replace compiz with, but this fix worked for me!

eeePC+ ubuntu display problems

I was comforted to see that Josh’s netbook locks up when an external display is connected too, and that I wasn’t the only one having that issue. A little forum hunting found that it has to do with compiz fusion. Disabling (and removing) compiz and instead using Metacity seems to have worked for others, I’m in the process of trying that fix right now, and I’ll write it up if it works. Fingers crossed…

Throw some G(Bs) in that netbook

I just upgraded my netbook from 1 GB RAM to 2, and since I’m not the only one with an asus netbook in the lab, I figured it was worth writing up. Also, this should help alleviate any lingering skepticism about just how easy this is to do (I’m lookin at you, Josh)

Step One:

Backing up your stuff… This is the boring part, but it’s also very worthwhile and important any time you’re pulling out the ol’ screwdriver.

Step Two:

Clean environment. Nobody likes spilling drinks on their motherboard, and crumbs can be very crummy.

Step Three:

Flip that laptop over, it’s time to pull off the battery. There are two latches, and they must be done in the correct order. Right one, then left one, with the bottom of the laptop facing up. Pull the battery off, and try not to forget where you put it. We’ll want it again later.

Step Four:


Screwdriver O’ Clock. Be gentle. The two screws you’re gunning for should be rather obvious, but once they’re both unscrewed, getting the back cover off is a little tricky. The last thing you want to do is force it and break a little plastic peg or something. Once the screws were out,  my back cover was easy to tilt and slide off. Again, be gentle. Congratulations, you’ve passed the hardest part. Screwdrivers are tricky.

Step Five:

The memory is latched in below the harddrive, but both are visible once the cover is on. The two latches on both sides of the memory are the only thing preventing the stick from popping upwards, so once you pull those latches apart, the memory will be visibly ready to be removed. Pull straight out, we don’t want to muck up our slot in the process.

Step Six:

Your new memory stick will need to be ready to go in now, so get it out of the packaging without any static shock incidences. It will slide in at the same angle as the old stick came out, and will latch in the same way as well. This is another step where you really don’t want to force it, and it’s important to follow the intended angles while inserting/removing memory. No broken slots. Also, be sure you don’t have the memory stick upside down while putting it in. There is a dividing line in the memory that can help be your guide to make sure it isn’t flipped over by mistake.

Step Seven:

Start working backwards. That means sliding the back cover back into place, again being kind to the little plastic pegs, putting those two little screws back in (hopefully you haven’t lost them at this point), and putting your battery back on.

Step Eight:

Hit that power button, cross those fingers, and know that if anything has gone wrong, I absolve myself of any and all responsibility.




GWT+Linux conflict quick fix

GWT was having trouble talking to mozilla on linux, producing this ugly error:


** Unable to load Mozilla for hosted mode **
java.lang.UnsatisfiedLinkError: /home/nick/eclipse/plugins/ cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(
at java.lang.ClassLoader.loadLibrary(
at java.lang.Runtime.load0(
at java.lang.System.load(



turns out this is a lot less of a problem then I initially thought from scouring forums. Fiddling with permissions on Mozilla files is not needed, just revert your standard C library back to 5 from 6:

sudo apt-get install libstdc++5

Easy peasy, GWT hosted mode back in business on Linux.