GSoC ’09: Mesquite

Mesquite NeXML Viewer walk-through August 17, 2009

Filed under: Uncategorized — kasiahayden @ 6:29 pm

My project was to build a Mesquite package to view Phenex-generated NeXML files.

Here are some pictures that demonstrate my additions to Mesquite.

The first half of the summer I worked on getting the Phenex-generated annotations to show up for each cell in the annotations box directly underneath the matrix. See the Phenex tool and the annotations box outlined in green in the picture below:


After that, the second half of the summer was dedicated to getting a visual representation of a given cell’s annotations to appear when the cell was clicked. For this I used Graphviz and the Grappa Java package to generate Graphviz dot graphs. See the Grapviz dot tool and the Graphviz dot graph pop-up outlined in green in the picture below:


It is possible to zoom in on the graph by right-clicking on the pop-up (or Ctrl-clicking for Mac users). There is also a lot more that can be done with Graphviz than generate this simple graph, which leaves plenty of room for advancements in the future.

Of course, to see this matrix in the first place you must import a NeXML file using the nexml package that Rutger Vos wrote. When nexml is installed, you simply open a NeXML file and choose the nexml option among the interpreter options, like in the picture below:




Filed under: Uncategorized — kasiahayden @ 6:08 pm

As of yesterday night/morning I finished my GSoC project. The last few steps were making the graphs pretty and putting the grappa jar in the right place so that Mesquite would pick it up automatically.

I’ve gotten good feedback on my project from my mentor, which means a lot, and I’m happy to say that it seems like something that will be useful to the evolution-ontology community.

What’s next? Next summer I’ll apply for GSoC again. Before that, in the next couple of weeks school is starting up again and with that new programming projects. In between time I’ll go play outside for a bit, and make this summer a summer in all respects.


Be gone, dot language! August 14, 2009

Filed under: Uncategorized — kasiahayden @ 1:22 am

I’m officially finished with dot language. I put the finishing touches on getting the dot graphs to self-generate earlier this week.

Now I’m finishing up the summer with some tasty unit testing. I have to get into a different mindset for unit testing. My first reaction is to skim over the code and think “Yeah, that all works just fine” rather than looking for the smallest units I could test. But once I get into the right mindset it starts to go pretty quickly.

It’s really odd to think I’m almost finished with GSoC. I was pretty unhappy about that until today, when I got an invitation to work on a IR/NLP project that a senior programmer friend of mine is starting this fall. Still can’t believe that luck. Maybe the school year won’t be so CS-deprived after all.


Pop-up it will be August 9, 2009

Filed under: Uncategorized — kasiahayden @ 8:01 pm

Up till now I’ve left it up in the air whether to have the dot graphs show up in an independent pop-up window or as an unselected PictureWindow tab beside the matrix, but Mesquite decided for me- when I add a PW tab then my NeXML annotations stop showing up in the footnotes, so it’s going to be a separate pop-up window.

I’m at one of those extra-fun parts in my project where I’m really close to the completion of a mini chunk of the project. I’ve got the pop-up window showing upon a click, with a dot graph in it that is written and read on the fly. The last little bit to do is to make the dot graph reflect the cell that was clicked, rather than just a pre-determined dot graph.

I _think_ I can get that done tonight. I’d love to go to bed having accomplished that.
It’s been somewhat frustrating working with Grappa since there aren’t explicit tutorials; you’ve got to sort out how it works from a given array of example files. On the other hand, it’s that much more satisfying when you get it working. (Luckily I saw that coming, so I didn’t despise it the whole way along.)

On a different topic, I wonder how many other computer programmers are seriously into math and music. I can’t be the only one who sees how perfectly and naturally these three subjects fit together. Every bit of work I do in one subject feeds the others so immediately. If I’m stuck on a computer programming problem then I know I can take a break and do some math or music to attack it from a different angle.

I’m beginning to have a sense for what exactly I do in one subject that will affect something specifically in another. For example, it’s so much easier to sight-read after debugging a program.

I haven’t had much luck converting my close friends. My music friends detest math and prefer I don’t bring it up before mealtime, and my math and computer friends, although slightly more open to the idea, still seem to consider music outside of their talent areas or worse, a lesser endeavor.

I guess I just want to see more mathematician and computer programming rock-stars.


Grappa inching closer August 6, 2009

Filed under: Uncategorized — kasiahayden @ 11:23 am

I haven’t done much GUI work but I can see how I could get into it. It’s satisfying to see visuals as feedback in a way that’s quite different from non-GUI work.

For example, once I got the Grappa DEMO files working there are some pretty concept files:


Not so pretty is when what should look like a graph looks like a scribble. In the picture below, the graph in the DemoFrame _should_ resemble the same graph in ZGRViewer:


Back to the drawing board.


Passed the test August 2, 2009

Filed under: Uncategorized — kasiahayden @ 12:52 pm

Finally finished up with testing last week. Testing with a faraway user reminds me of those games you play during the teambuilding stages of summer camp where you’re put into pairs and one person has to verbally direct the other person who’s blindfolded while they’re traversing an obstacle course or where one person has a picture and tries to describe it well enough that the second person can create a replica.

You quickly get better at it as you start to figure out your tester’s level of knowledge, what sorts of things they probably won’t know or could misinterpret, etc. Luckily my tester was really detailed and specific with all of the steps she took, so it was more or less simple to follow her logic and get a picture of what was going on on her end. It still made me wish for something equivalent to Fog Creek’s Copilot, with the addition of limitations to a specific directory, so I wouldn’t have to have access to her whole computer.

I’ve simultaneously been working on the second part of my GSoC project, the visualizations. It took me a bit to get Graphviz, Graphviz Image Viewer and Grappa all working, and I’ve gotten a new picture window to show up when NexmlViewer runs. Currently the picture that loads is just a standard picture on my computer, which is a step away from the dot file I have to get showing up in there. I think I’ll have to make the dot file into a Mesquite component first and then add it to the window. More later.


Dot language July 20, 2009

Filed under: Uncategorized — kasiahayden @ 6:22 pm

For the next part of the project, we’ll use Graphviz to visualize the annotations. The dot language behind Graphviz is really straightforward and simple.

Here are some simple examples swiped from wikipedia:

Undirected graphs versus directed graphs. First undirected:

 graph graphname {
     a -- b -- c;
     b -- d;

Then, directed:

 digraph graphname {
     a -> b -> c;
     b -> d;

Oh, look, different shapes and names:

 graph graphname {
     // The label attribute can be used to change the label of a node
     a [label="Foo"];
     // Here, the node shape is changed.
     b [shape=box];
     // These edges both have different line properties
     a -- b -- c [color=blue];
     b -- d [style=dotted];

Why do I keep wanting to call it cute? No, no, no, it’s elegant, not cute!