PhyloSoC:Browser-based animations for phylogeography
Author and Relevant links
Abstract
The fields of phylogeography and biogeography both study the distribution of life over the planet to learn more about evolutionary, ecological, and geographical processes. The fossil record and statistical inference are used to reconstruct ancestral species or population distribution hypotheses over the course of time. Animated graphics clearly communicate such hypotheses to both the expert or the layperson.
We propose to develop a lightweight Javascript and Processing.js package to generate interactive browser-based animations published under an open source license.
Project Goals
- Easy to Interpret
- Converts numerical output into intuitive animations
- Coloring and masking controls to distinguish specific lineages/clades
- Time-calibrated phylogeny and discrete state space reflect modeling assumptions
- Easy to Use
- Requires no software installation
- Intuitive controls (standard movie player controls, phylogenetic movie player controls)
- Establish file parsing for several popular software output formats (e.g. BEAST, Lagrange)
- (possible) Export utilities (e.g. screen capture, video export, Youtube export)
- Extensible
- Javascript published under GPL
- Use other open source libraries
- Scales for large numbers of lineages and states
- Design classes for future extension
Timeline
Week 1: April 23 - April 29 (Community Bonding)
Week 2: April 30 - May 6
Week 3: May 7 - May 13
Week 4: May 14 - May 20
Week 5: May 21 - May 27 (Project Starts)
Week 6: May 28 - June 3
- Establish file formats.
- Assemble test input.
- Implement file parser.
- Implement data structures.
Week 7: June 4 - June 10
- Add image and geographical coordinates to map.
Week 8: June 11 - June 17
- Add Clock object.
- Add time control widget to control panel.
Week 9: June 18 - June 24
- Add phylogeny widget to control panel.
- Create a ColorSchedule object for the phylogeny.
- Animate time along the phylogeny.
Week 10: June 25 - July 1
- Add MRCA ancestral distribution to map.
Week 11: July 2 - July 8
- Add ancestral distributions according to Tree and Clock to map.
Week 12-13: July 9 - July 22 (Midterm Evaluation)
- Create an AreaSchedule for the phylogeny.
- Animate distribution transitions over time on map.
Week 14-15: July 23 - August 6
- Add clade filters, colors, transparency effects to control panel.
- General debug and clean-up.
- If time remains, add some of the features below.
- Thorough progress review with mentors.
Week 16: August 6 - August 12
- Write user manual.
- Conduct user testing and respond to feedback.
Week 17: August 13 - August 19 (Project Ends; Final Evaluation)
- Final debug and code clean-up.
Features to be added
The above timeline is a conservative estimate of how long tasks will take. I have cushioned the schedule towards the end of the project in case I need to recoup misspent time. If time remains before the 12 week Summer of Code is over, I have several other ideas to improve the proposed package:
- Extend list of supported input file formats.
- Setup basic web service on cteg.berkeley.edu (or any available server)
- Tool to export animation as a video file or to Youtube
- Add user annotations on top of animation (text boxes, drawn arrows)
- Incorporate overlay transparencies (paleoclimatological data)
- Incorporate tectonic reconstructions (continental drift)
Deliverables
Source code
User manual
Sample animation
GitHub repository
(Web service)
Involved toolkits or projects
Code: Javascript, Processing.js, HTML5, D3.js, Polymaps.js, jQuery
Maps: NaturalEarthData, Pplates
Input: BEAST, Lagrange, PaleoDB, (others may be added easily)
Examples, inspirations: Animaps, SPREAD, Google Earth, GlobalForestWatch