Ed's Big Plans

Computing for Science and Awesome

Early draft of TIM Barrel problem

without comments

Here’s a slide show I presented at a lab group meeting earlier this month. There is a structure and sequence part to my research, this only overviews the structure half. The sequence part of my presentation was given with a white board since the figures were faster to draw on the white board than as vector graphics. I’ll come back to this when I’ve finished formalizing the big plan in its entirety.

Slideshow as a PDF with previews below.

Eddie Ma

December 18th, 2009 at 9:08 pm

fridgelib — Andre’s C Library

with 3 comments

Brief: Fridge Library (fridgelib) is a light weight C library that’s basically what each C programmer eventually comes away with. Fridgelib contains a queue, stack and trie data type implementation– these implementations are cleaner than mine, hence I have devoured them into my code where necessary.

There is however one item that Andre’s told me I can add to fridgelib if I can ever tidy it up, and that’s my evil linked-array. It’s basically a doubly linked list whose elements are arrays of fixed size; the traversal is cut down by a multiple of that array size while indexing thereafter is still constant time given the modulus of the index. My evil implementation is a double-headed stack/queue/array which supported python-like negative-value indexing, slicing and iteration… actually, that’s when I decided it had grown too grotesque and left it to sit in my repository…

I’ll probably return to it later, to remove slicing and to more cleanly define the semantics of iteration.

Hmm– the only things that are really missing from fridgelib are the hashtable and either a nice red-black tree or a treap…

Eddie Ma

November 23rd, 2009 at 1:14 pm

Java Classpaths are Evil

with 2 comments

(now also in from my wiki)

While working with Phylogenetic Analysis Library (PAL) for an alignment problem, I ran into the problem of having to specify classpaths to a jar file… it should have be straight forward enough…

Java classpaths are a pain.

Here are a few observations I’ve made about how to specify them in the command line.

  • an Item can either be a directory that contains .class and .java files OR
  • an Item can be a .jar file.
  • to specify more than one Item.jar in Unix, use:
javac -classpath .:Item1.jar:Item2.jar
  • note that you cannot put a space between the colons
  • note that you must include an extra Item ‘.’ to specify the current working directory
  • note that in Windows, you must use ‘;’ instead of ‘:’
  • note that after compiling with javac, the same -classpath and its arguments must then be applied with java

Nuisance? Yes! Necessary Evil? No!

In the compiled Java class, there certainly could have been some metadata implemented that is a copy of the last known classpath string… why is there a disparity between the symbols used in Unix and Windows? … Why aren’t spaces allowed? Why does one have to specify the current working directory?


A side effect of not being able to put spaces in between the colons of several paths is that one can’t just put a backslash in to negate a newline– you would need to have the next path start at the very beginning of the next line which is just ugly.

Eddie Ma

November 23rd, 2009 at 12:28 pm

Posted in Pure Programming

Tagged with ,

Back from Conference!

without comments

Brief: The BIBM09 conference was the very first conference I have ever attended. I learned a lot from the various speakers and poster sessions–

I thought it was really interesting how the trend is to now study and manipulate large interaction pathways in silico– a theme of which is the utilization of many different data sources integrating chemical, drug and free text as well as the connection of physical protein interaction pathways and gene expression pathways. There was even a project which dealt with the alignment of pathway graphs (topology).

Dealing with pathways especially by hand and in the form of a picture is probably the bane of many biologists’ existence– I think that the solutions we’ll see in the next few years will turn this task into simple data-in-data-out software components, much like the kind we have to deal with sequence alignments.

And now, back to the real world!

Addendum: My talk went very well 🙂

And here are my slides with a preview below.

Eddie Ma

November 6th, 2009 at 10:36 am

IEEE BIBM09 Conference – Day 1

with 4 comments

Warning: This post is highly non-sequitur– it’s late at night and my brain is full of science.

Wow! I’m learning a lot and having a blast– I’ve met a lot of people and have managed to fill the entire day with workshops and tutorials. The venue is convenient, being right in a hotel (Hyatt).

To be more precise, the conference isn’t really in Washington. It’s in Bethesda.

My talk hasn’t come up yet, but my slides are 100% done– I just have to review them until I start to twitch uncontrollably. Today was the first day filled with talks, so I’m feeling a bit light headed and needing of sleep to digest away all of the information.

One key thing I want to take home to my current project is the use of tetrahedral tessellations called simplices to express protein topology and structure– there’s something very useful about that when searching for regularities and especially when dealing with stability.

Aside from going to workshops, each attendant is asked to fill in a ballot to indicate which of the posters on display are the best of show. We get to nominate three– and I’ve chosen mine for today. For me, it was an easy choice to pick the top two while the last nominee was originally tied. An additional poster show will start on Nov. 3rd.

Eddie Ma

November 2nd, 2009 at 12:52 am

Posted in Academic Life

Tagged with ,

Protein Project Progress…

without comments

Last week, Liz, Aron, Andrew, Brendan and I sat down to discuss the beta-trefoil project. It was a good chance for me to understand the methods used and the kinds of results we are interested in for my own TIM Barrel project.

Continuing on with the structural repeat problem, I’ll today be writing a short FSA parser that can handle DSSP or DSS output– simply, a very primitive machine will be used to imitate a human’s visual inspection of repeated secondary structural elements in given proteins. This is in line with the work I did manually staring at structures to get a grasp of how to look at protein models, and also in line with the objective to automate much of this work. Prior to that step, I reduced the probability of doing redundant work by using BLASTCLUST and selecting only a few known structures in each cluster to inspect… a sequence based alignment for each cluster will inform me of where my manually detected repeat boundaries map to the remaining sequences.

Oddity: If you BLASTCLUST all the “FULL” (not “SEED”) sets of TIM Barrel sequences for the entire fold from PFAM along with the sequences of known TIM Barrel fold structures of SCOP, you’ll find that cluster fifteen (as of today) has these elements:

1YBE_A A6U5X9 A6WV52 Q2KDT0 Q2YNV6 Q6G0X7 Q6G5H6 Q8UIS9 Q8YEP2 Q92S49 Q98D24 A1UUA2

In the above listing, 1YBE:A (PDB code) is the sole known PDB structure, while the remainder are putative TIM Barrels (uniprot codes) as determined by the HMM model from PFAM.

The enzyme 1YBE looks like this…1YBE_A

It’s an oddity because of the number of alpha-helices inserted within what is usually a hydrophobic beta barrel– the red pieces of ribbon should form a hollow cylinder, but it’s split apart for 1YBE and accommodates a bunch of cyan helices. Labeled in white are helices that break with the beta-alpha repeating secondary structural element (SSE) pattern by occurring before the first repeat. Labeled in green are breaks between beta-alpha SSE patterns.


Seetharaman, J., Swaminathan, S., Crystal Structure of a Nicotinate phosphoribosyltransferase [To be Published]

Eddie Ma

October 28th, 2009 at 9:35 am