Difference between revisions of "PhyloSoC:phyloGeoRef"
m (→Week 4:=)
m (→Week 4:)
|Line 41:||Line 41:|
Implement latitude and longitude algorithm.
Implement latitude and longitude algorithm. will get their lat/long data from the coord file.
Revision as of 19:23, 2 June 2010
phyloGeoRef: a geo-referencing library implemented in Java
The goal of this project is to create a geo-referencing library for parsing and displaying geographical and phylogenetic information. The main aim of the project is to bring together geographical and phylogenetic information in a way that is usable and useful to the user. Given an input of a tree file and geographical information the library will return a tree with phylogenetic and geographical information in a format such as KML or shapefile or a georeferenced phylogenetic format such as neXML.
Tasks: Gather sample tree files, KML files and other files used by the library; set up development environment; learn about geographical data files; catalog java tree and geospatial libraries Deliverables: psudocode for project -- what information needs to be extracted and how to store it; set up github account and integrate with Eclipse or other IDE, join mailing lists; study KML files; list of relevant java libraries
Approach and organization:
Start small and expand as needed. In this case I'm staring with the basic ability to take a tree file, deliminated file and Take a select few types of files to completion, then add more
A lot of the functions I need for this project have already been written and with a little modification they can be easily implemented in my library. This will allow me to be a little more creative and expand the scope of the library and what the library can do, beyond the original intention.
Define tree parser
Define csv parser
Define delimitated file parser, tsv and user defined
Start storeTree class
Finish storeTree class: Phylogeny array parser Define function to add latitude, longitude and altitude data to each node. this will probably change a little bit once the actual algorithm is implemented Define functions to parse shapefiles using GeoTools library Define function to add metadata to the tree -> should be an extension of, or similar to, the csv parser already implemented.
Implement algorithm from Jamies et al, nodeAltitude = a + ((n-1)*b) where a is the altitude of a node with only terminal leafs (based on the size of the tree), b is the altitude of nodes that are ancestral to more than one node and n is the number of node from the current node to the leaf.
Implement latitude and longitude algorithm. Leafs will get their lat/long data from the coord file.
Define kml writer using jak library. Most of the KML writer functions exist in this library so my job will be to make sure the data is populated correctly. A major part of this will be telling kml how to draw the trees, ie where to put branches (line or pathway) and nodes (points).
Add support for other file types such as neXML. I really like SQL so if time permits, I'd like to add a way to extract tree information, geo coordinates and metadata from a database. It would also be neat to add some eye-candy to the metadata similar to the thematic engine.
Extensive testing and documentation
Clean up code
Janies, D., Hill, A.W., Habib, F., Guralnick, R., Waltari, E., Wheeler, W.C., 2007. Genomic analysis and geographic visualization of the spread of avian influenza (H5N1). Syst. Biol. 56, 321–329.