Saturday, 06 July 2013 at 10:11 pm

I put some finishing touches on Seeker: Annotation Viewer last week for visualizing sequence features such as protein domains, primers, etc... Now I am working on a genome browser. Here is an extremely early prototype (there is around 1.8mb of files to load):

It should work on latest versions of Chrome/Safari/Firefox. It will most likely NOT work on IE or Opera. Hopefully, this won't crash your browser. This is completely client-side only. You can distribute these files on a USB stick and anyone with a modern browser will be able to open it.

The loaded data is human chromosome 1 parsed from a .gtf file downloaded from UCSC. The parsed data is around 1MB (980KB). These interactions are possible right now:

  • Dragging on the tracks will allow you to scroll through the reference chromosome
  • WASD movement. Press 'A' to scroll left, 'S' to scroll right, 'W' to scroll up, 'S' to scroll down. Anyone who plays computer games should be familiar with this layout.
  • Clicking on the bottom overview bar (blue bar) will let you jump to that position.
  • You can also click and drag on the bottom bar, but depending on how good your computer is, it might be jittery.
  • The line graph on the bottom overview bar represents feature density. The higher the amplitude, the more features there are at that loci.
  • Right now it's displaying 1 million base pair windows. I've tested up to 5 million with little trouble on my early 2012 Macbook Pro. I'll probably set maximum window size to 1 million. 

I'll go in to more detail about how the rendering works in the future. I've implemented a "rubber-banding" scrolling system instead of the normal Google Maps style tiling system.

  Monday, 01 July 2013 at 09:24 am

I've wanted to learn how to build web apps with webGL ever since I saw the crazy Unreal engine ported to HTML5 and webGL (as a side-note, three.js is a very popular javascript 3d library that leverages webGL). It has a lot of potential for data visualizations. Imagine a genome browser running on a GPU. It will be able to render millions of objects easily. 

I came across this developer preview library today of a framework that allows for data visualizations using webGL and webworkers for multi-threading:

It is only a developer preview. But it looks extremely cool.

Of course the down-side (as with anything running in a browser) is cross-browser compatbility. The framework seems to also use webCL which doesn't seem like it will be widely adopted anytime soon. Perhaps someone can make a modified Node-webkit?