PhyloSoC:Build a Mesquite Package to view Phenex-generated Nexml files

From Phyloinformatics
Jump to: navigation, search

Download

Install.zip

For the guaranteed latest version, visit this project's Google code page.

Setup instructions are viewable on the wiki section of the same site.

Authors

Student: Kasia Hayden, Bennington College, khayden@bennington.edu

Mentors: Peter Midford (primary), Jim Balhoff

Title

Build a Mesquite Package to view Phenex-generated Nexml files

Project Blog: Wordpress GSoC blog

Source Code: Google code

Abstract

Extend Mesquite's capabilities to represent character matrices by allowing for the addition of ontology terms produced by Phenex in the Nexml format. Mesquite currently supports the Nexml file format and by the end of this project would be able to display Phenex's files directly in Mesquite, and depending on the speed of development, would display chained ontology concepts in graphical format with the use of a library like GraphViz.


Timeline

Dates Description Completed
Week 1 (5/23 – 5/29) Investigate xml beam space parser (Dig it out of Nexml tree, figure out how it works) Yes
Week 2 (5/30 - 6/5) Validate that xml parser works with Phenoscape. Figure out how annotation panels work in Mesquite. Yes
Week 3 (6/6 - 6/12) Build a module in Mesquite (Take a tree or matrix and return the number of its fields). (1) Get my hyperlink.xml output looking the same as Rutger's. (What else to try besides adding the .properties file to classpaths.xml?) Yes
Week 4 (6/13 - 6/19) (1) Reviewing Mesquite tutorial on matrices and writing a description for how this works (both on the user side and code side) in preparation for getting a new dummy window to show up in Mesquite. (2) Use the code description to fill in Weeks 5 and 6. (3) Follow up with Peter for getting Rosil's rec on the best Phenoscape file to start with (perhaps the one used to train curators). Yes
Week 5 (6/20 - 6/26) (1) Test different Phenoscape files with Mesquite (2) Get files viewable in Mesquite that have been exported with Jim's Phenex_beta (put in new annotation format (3) Figure out what elements to pull from xml file for annotation (4) Alter footnotes in Mesquite through NexmlViewer Yes
Week 6 (6/27 - 7/3) (1) Get changes to show up in module without altering Mesquite Project code (2) Start another module OboManager, which will subclass FileInit and be responsible for pulling URIs and making a hashmap of the URIs' human-readable labels (3) Step through nexml code to figure out how/where nodes are stored and accessed to be able to pull URIs Yes
Week 7 (7/4 - 7/10) (1) Pull URIs from project from OboManager and put in a hashmap element. (2) Read in obo ontology files line by line and fill in the labels corresponding to the ids in the hashmap (3) Call hashmap from NexmlViewer to add URI human-readable label as footnote (fail gracefully: display id if can't find corresponding label) (4) Midterm evaluations Yes
Week 8 (7/11 - 7/17) (1) Write manual for testers (2) Test manual (3) First release, user testing, collect/prioritize bug list. (4) Work through bugs as they come up. Yes
Week 9 (7/18 - 7/24) (1) Continue testing with a student tester, as she was tied up for most of last week, so testing was between my mentor and I

(2) Check out OBO-Edit2 and Protege to get a sense of ontology editors. (Protege easier to understand so start here, but OBO-Edit more relevant, since it's what's used in Phenoscape. (3) Get Graphviz for Linux and work through the documentation. || Yes

Week 10 (7/25 - 7/31) (1) Finish with testing. (2) Get Grappa (Java graph drawing package) working in Eclipse (3) Work on getting a Graphviz window opening and displaying a dummy graph when a cell is clicked on. Yes
Week 11 (8/1 - 8/7) (1) Finish getting a window opening and displaying a Grappa graph. (Make graph a component and add it to window. Then replace dummy graph with graph generated based on the cell clicked.) (2) Generate Grappa graph based on the cell clicked. Yes
Week 12 (8/8 - 8/16) (1) Get feedback on how the graph looks and make any recommended changes/tweaks. (2) Write unit tests. (3) Clean up code, improve documentation and wiki Yes
Final Week (8/17 - 8/24) Write final evaluation Yes

Finished Product Screenshots

Finally, here are some screenshots of steps through the finished product.

First you open a NeXML file and select the NeXML interpreter:

NeXMLImportFile MesquiteNexmlViewer.png


You can view a cell's Phenex-generated NeXML annotations in the footnote window directly beneath the matrix: NeXMLAnnotations MesquiteNexmlViewer.png


You can view a cell's Graphviz dot graph by clicking on the dot tool and selecting a cell. The graph will appear as a pop-up.: DotGraph MesquiteNexmlViewer.png

It is possible to zoom in or out of the graph by right-clicking or Ctrl-clicking on the graph.