160 likes | 285 Views
Bringing the power of SVG to a genome browser near you!. Christopher T Lewis LewisCT@agr.gc.ca CMPT 856 – Presentation 1. Outline. What the heck? Oh, I see… and what is this “power” of which you speak? Ok, I guess that’s neat… but surely the existing browsers are good enough?
E N D
Bringing the power of SVG to a genome browser near you! Christopher T Lewis LewisCT@agr.gc.ca CMPT 856 – Presentation 1
Outline • What the heck? • Oh, I see… and what is this “power” of which you speak? • Ok, I guess that’s neat… but surely the existing browsers are good enough? • HMM… so what have you got? • What do you propose? • You’re thinking of doing it how?
What the heck? • Where to start really? • I don’t know how to do a choose your own adventure presentation, so let’s introduce genome browsers and then talk about SVG.
What the … a genome browser? • The genetic materials of an organism are contained in the genome. • The genetic materials contains, among other things, the genes that make us what we are. • Biologists are often interested in studying the genome of one organism in the context of some other organism as this might help them to spot the meaningful parts.
What the … a genome browser? • Kind of like you had a book in a language you don’t know, and a book in another related language where you knew a few paragraphs • By identifying the similar paragraphs in the unknown languages, you might guess that they had approximately the same meaning • The visual inspection of a genome is generally performed by way of a genome browser
What the heck is SVG? • SVG – Scalable Vector Graphics • A W3C - World Wide Web Consortium - standard (the guys who brought us XML) • An XML based vector graphics format • No native support in mainstream browsers • Though Mozilla is working on it • Most popular viewer – Adobe SVG Viewer • Available for Mac, Linux, Windows • Though mileage outside Windows + IE might vary
What the heck is SVG? • The SVG specification is clear and concise • The grammar is quite easy to pick up • Example: • <rect x=“10” y=“10” width=“20” height=“20”/> • Produces 20x20 rectangle at position (10, 10) • Similarly: • <circle cx=“10” y=“10” r=“20/> • Produces a D=40 circle centered at (10, 10)
What the heck is SVG? • Of course this all needs to be wrapped in a document and there’s some namespace magic, but that’s all cut and paste • Let’s look at a real example: • example1.svg • Vector graphics allow infinite zooming • Individual graphical elements respond to mouse events and can be declaratively animated
Oh, I see… and what is this “power” of which you speak? • Infinite scaling and translation without loss of detail • Interactivity on a per element basis • Plus, the document is a tree and events propagate… • Declarative and scripted • The ability to add document fragments to an existing document • The ability to communicate with the server
Ok, I guess … but surely the existing browsers are good enough? • The existing browsers are all function • Frankly, the existing browsers are more than my browser… and much more widely used • However, they’re based on server generated bitmaps, which is a little restrictive • You get one fixed view • You need to wait while the server prepares a new view and sends it to you in response to a zoom or translation request • GMOD - Generic Genome Browser
HMM… so what have you got? • Time for show and tell… • A GUI library implemented in SVG • A more complete example • Use of CSS to style document • Declarative creation of widgets • An SVG based genome browser
What do you propose? • Bringing the power of SVG to mainstream genome browsers using GBrowse as a starting point
You’re thinking of doing it how? • Declarative mechanism for creating the UI • Plan to re-implement/refactor CGUI to conform to the SPARK framework • Rewrite server side of genome browser to allow the insertion of “data access modules” and “request handlers” • Write access modules to pull the information I’m interested in from GBrowse database
You’re thinking of doing it how? • Rewrite server so that the UI is generated from the GBrowse configuration file • Initially generate a GBrowse like interface in SVG, and then transition to a more powerful SVG based interface
End product • Ideally, the resulting SVG based genome browser would be a drop in replacement for GBrowse • However, in all likelihood there will be views in GBrowse that don’t map well to my vision • Thus, I’d like to ensure that the SVG based browser is interlinked with GBrowse
Web References [SVG] http://www.w3.org/TR/SVG/ [CGUI] http://homepage.usask.ca/~ctl271/cgui [SPARK] http://www.schemasoft.org [Bioviz] http://brassica.ca [GMOD] http://www.gmod.org/ [GBrowse] http://www.gmod.org/ggb/