[Phylobase-commits] r183 - www
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Wed Jun 11 19:40:29 CEST 2008
Author: pdc
Date: 2008-06-11 19:40:29 +0200 (Wed, 11 Jun 2008)
New Revision: 183
Added:
www/gsoc.html
Modified:
www/index.php
Log:
A bit of information about the summer of code and progress updates
Added: www/gsoc.html
===================================================================
--- www/gsoc.html (rev 0)
+++ www/gsoc.html 2008-06-11 17:40:29 UTC (rev 183)
@@ -0,0 +1,68 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+
+<html lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>untitled</title>
+ <meta name="author" content="Peter Cowan">
+ <link rel="stylesheet" href="style.css" type="text/css" />
+ <!-- Date: 2008-01-25 -->
+</head>
+<body>
+<div class="content">
+
+<h1 id="updates">Updates</h1>
+
+<ul>
+<li><p>2008-06-11 - Step one is completed. Steve and I decided that the first goal should be plotting of simple phylograms. Toward that end, I started with the <code>ape</code> <code>plot.phylo()</code> command and deleted all the code related to fan and radial shaped plotting. I also removed all the code related to up/down vs. left/right plotting as these are high level function in <code>grid</code> (not yet implemented).</p>
+
+<p>At this stage, it will be worthwhile stepping back and considering if the <code>plot.phylo()</code> architecture is appropriate and what alternatives might exist.</p></li>
+</ul>
+
+<h1 id="full_application">Project description and timeline</h1>
+
+<h1 id="tree_and_data_plotting_in_the_phylobase_project">Tree and data plotting in the phylobase project</h1>
+
+<h2 id="my_interest_in_the_project">My interest in the project</h2>
+
+<p>I am interested in this particular proposal because I have been frustrated by the lack of good links between R’s excellent data plotting ability and tree plotting abilities. A recent example would be my current project on the evolution of a trait with a circular distribution. The R package circular contains nice functions for plotting circular data as a rose diagrams, and the ape and phylobase packages contain functions for plotting phylogenetic trees. However, without significant low level work, plotting rose diagrams at the tips, or internal nodes isn’t possible. A clear interface to plotting operations allow users to ‘nest’ plot on phylogenies. would remove a major obstacle for those trying to produce phylogenetic tree figures suitable for publication.</p>
+
+<h2 id="current_implementations">Current implementations</h2>
+
+<p>The phylobase project currently supports two basic phylogenetic tree data types, one where trees are associated data (phylo4d) and another for the trees alone (phylo4). For each of these basic types there a corresponding “multi” object which is list containing several trees. To date, only the single tree objects have methods for visual display. These methods are wrappers for functions in the package ape which calculate and plot the tree using the R base graphics system. In the case of a phylo4d object data associated with the tree tips is plotted on top of the same graphics device in a style inspired by the package ade4, though re-implemented in phylobase.</p>
+
+<h2 id="current_limitations">Current limitations</h2>
+
+<p>Current plotting functions are a limitation to the phylobase package as they require phylobase objects to correspond to, or be coercible to ape package style phylogenies. The also add a dependency to the external package ape for a basic tree operation. Specific limitations stem from the use of the base graphics system, scaling of trees, labels, data and other text is difficult within this system. This is readily observable by plotting the examples in the current plot command help files. If plotted on the default graphics size an error is encountered, in other example improper spacing between legends and other objects is a problem. Lastly as plots are resized, the tree scales but data objects do not.</p>
+
+<h2 id="proposed_solutions">Proposed solutions</h2>
+
+<p>The way forward is outline in the project call, plotting of phylobase objects should not have external dependancies and should be implemented in the grid graphics system.</p>
+
+<p>The grid graphics system was written by Paul Murrell and provides an alternative graphics interface. Other high level plotting systems in R, such as lattice and ggplot2. One feature of grid is the ability to scale object in relation to the size of the plotting region, or not, thus when when a plotting region is resized, labels and text scale appropriately.</p>
+
+<p>A key paradigm of the grid system is the viewpoint, basically a plotting region that can be nested within another plotting region. This concept is most useful for the case of plotting tree with associated tip or internal node data. A possible approach would be to generate viewpoints at each of the tree tips, which then could be filled with a variety of plot types such as histograms, sideways boxplots, or bivariate scatterplots. Likewise each node could have a associated viewpoint to display data corresponding to that node.</p>
+
+<h2 id="project_roadmap">Project roadmap</h2>
+
+<p>Below is a roadmap for how this project might be implemented. I have strived to make each point a discrete sequential step. They should be done in the order suggested below. As long as each step is completed any point would be an appropriate project stopping point, leaving no further work in order to be usable.</p>
+
+<ol>
+<li><p>For phylo4 objects, replace base graphics calls with grid graphics calls. This should be fairly straight forward as grid possesses functions similar to many of the higher level commands, such as lines() used by the current plotting functions. Time is also alloted to ensure a more thorough understanding of the grid system architecture and how it differs from the base graphics. I estimate this step will take 2-3 weeks.</p></li>
+<li><p>For the plotting of phylo4d projects add viewpoints for node and tip data. Based on my understanding of the grid system this should be fairly straight forward. The primary challenge will be find the best way to pass on the data plotting commands. I estimate this step will take 1-2 weeks.</p></li>
+<li><p>Transition back end calls to ape to phylobase specific code, allowing for more flexible handling of node (internal and tip) data. The code from the ape package is largely applicable to phylobase object, but may require some abstraction. I estimate this step will take 1-3 weeks.</p></li>
+</ol>
+
+<p>I expect to complete the above goals by the midterm review in early July.</p>
+
+<ol>
+<li><p>Rewrite as necessary C code to optimize plot calculations. Again, the ape package already contains and example of how this might work. The primary challenge here is my beginner knowledge in C. I estimate this step will take 2-3 weeks.</p></li>
+<li><p>In addition to writing or updating the R help files for the function described above, I will create tutorials for end users. This would include adding examples of common plot types to the help file, writing sections for the phylobase vignette and updating appropriate wikis such the R wiki and R phylo wiki. I estimate this step will take 1-2 weeks.</p></li>
+</ol>
+
+<p>Total time 7-13 weeks</p>
+
+<ol>
+<li>Time permitting write functions to zoom and collapse clades. An example, zoom function exist in ape as does a non-graphical collapse function. I estimate this step will take 1-2 weeks.</li>
+</ol>
Modified: www/index.php
===================================================================
--- www/index.php 2008-06-11 17:37:33 UTC (rev 182)
+++ www/index.php 2008-06-11 17:40:29 UTC (rev 183)
@@ -62,6 +62,7 @@
<li>A current copy (0.3r104) of the package
<a href="misc/phylobase.pdf"><strong>vignette</strong></a></li>
<li>The <strong>project summary page</strong> can found <a href="http://r-forge.r-project.org/projects/phylobase/"><strong>here</strong></a>. </li>
+<li>Google Summer of Code <a href= "gsoc.html" title = "GSOC"><strong>project description and progress</strong></a>. </li>
</ul>
The phylobase email lists can be accessed and subscribed to from <a href="http://r-forge.r-project.org/mail/?group_id=111">this page.</a>
More information about the Phylobase-commits
mailing list