Saturday, August 11, 2007

Visualising very big trees, Part IV


Continuing the theme of viewing big trees, another approach to viewing large objects is tiling, which most people will have encountered if they've used Google Maps.The idea is to slice a large image into many smaller pieces ("tiles") at different reoslutions, and display only those tiles needed to show the view the user is interested in. I'd thought about doing this for trees but abandoned it. However, I think it is worth revisiting, based on discussion on the Nature Network Bioinformatics Forum, and looking at the Giant-Ass Image Viewer (version 2 is here), and Marc Paschal's blog.

As an example of what could be done, below is a phylogeny from Frost et al.'s "The amphibian tree of life" hdl:2246/5781, rendered using Zoomify's Zoomify Express. I just took a GIF I'd made of the entire tree, dropped it on the Zoomify Express icon, hacked some HTML, and got this:





Now, I don't think Zoomify itself is the answer, because what I'd like is to constrain the navigation to be in one dimension, to have a clearer sense of where I am in the tree, and to have a search function to locate nodes of interest. However, this approach seems worth having a look at. Looks like I'll need to learn a lot more Javascript...

5 comments:

Pedro Beltrão said...

The small navigation image on the right does not do a good job of helping to navigate the zoomed in version.

Rod Page said...

Pedro,

I agree, hence my comments in the final paragraph. Zoomify is designed for images, and in that case the small thumbnail is likely to be informative. However, for trees the thumbnail is pretty useless. I have some ideas on how to deal with this, which I'll try and work on this week (time permitting).

kehan said...

One of the comments on the Giant Assed Image Viewer page provides a link to
The Brain Maps image viewer
which also looks interesting. They've got an API and it's also AJAX, so html can be overlaid on the images. My 2c.

Anonymous said...

the Brain Maps API would give you a more linear thumbnail, though navigation in the highres image would not be constrained to 1D. The advantage to using this (compared to Zoomify Flash viewer) is speed. The Brain Maps API loads image tiles in a snap. There's no waiting on blurry tiles to fully load like there is in the Zoomify Flash viewer. And the Brain Maps API has a very small memory footprint, whereas the Flash viewer consumes considerable memory. For visualizing large trees, the Brain Maps API is one of the better ways to go if you use bitmapped images, but for vector graphics, something else would have to be used. Maybe try tweaking existing codes for multiresolution bitmaps to work with large vector images.

Jim said...

Another thing that does not work on the iPad. I am so sick of this POS PITA hardware. :(