Building Visualisation Tools (Beginner'S Guide)
4
2
Entering edit mode
12.2 years ago
Vikas Bansal ★ 2.4k

Dear all,

I have seen so many visualisation tools in Bioinformatics and I would like to know how should I start if I want to build my own tool according to my needs. The best example here would be, a tool like IGV ( or in UCSC browser). Please note, I am not talking about just visualisation or plotting pictures. I want to build like IGV. We can import different types of files (like bed files or files after CNV calling), etc. I would like to know your suggestions.

Thanks and Best regards,

Vikas

visualization cnv igv ucsc • 3.7k views
ADD COMMENT
5
Entering edit mode

Why built yet another tool? Why not contribute to an existing open source project to add functionality to your needs? There are plenty: IGB (GenoVis), IGV (BROAD), Dalliance biodalliance.org), Trakster (Galaxy), JBrowse (GMOD), UCSC&Ensembl...... Plus many of these are DAS compliant

ADD REPLY
2
Entering edit mode

Look at these, find a suitable one written in a language you like, download the source code and have a play. Alternatively look into DAS (e.g. proserver das ) which will allow you to visualise your data, in a way dictated by you, on other peoples tools.

ADD REPLY
1
Entering edit mode

Thanks for your suggestion. I was thinking may be first I will build a small version of my own, so that I can get some idea, how to do all these things.I was looking for advice, that how should I start.I just want to know, what should I start studying (which software's and languages) so that at least I can begin.

ADD REPLY
0
Entering edit mode

I think Alastair's comments are ideal! The best way to learn is to get involved with an existing project, read through the code and see how things are done and then contribute your own code! There's no point reinventing the wheel, unless you have a valid reason!

ADD REPLY
6
Entering edit mode
12.2 years ago

Here is the java code for a Very Simple and Stupid java-based Genome Browser (VSSJBGB?).

  • the data model is a simple array of genomic objects (start/end/name)
  • A java JTable is used to display the values. The 4th column use a specific renderer to paint the current genomic object.

[?]

Compile and run:

javac Biostar18110.java
java Biostar18110

Result:

I put a screenshot on twitter: https://twitter.com/#!/yokofakun/status/175557157171892225

alt text

ADD COMMENT
0
Entering edit mode

Thanks. But I was looking for advice, that how should I start.I just want to know, what should I start studying (which software's and languages) so that at least I can begin.

ADD REPLY
3
Entering edit mode
12.2 years ago

IGV is a relatively large project, carried on at the Broad Institute where they can constatnly have people working on it. I suspect it will not be easy and fast to develop something of that size as a one man project.

If IGV is not that far off from what you would like, maybe by studying it you'll realize it can already do what you need. If not, then it might be best to add funtionality, either being involved in the project or forking into your project.

Otherwise, I would suggest that you develop a visualisation tool that does the thing you want to visualise, but without all the fancy feature of IGV

ADD COMMENT
0
Entering edit mode

Thanks for your reply. I mentioned IGV, because I just want to inform that the tool should be like that but not fancy and all. That is why I wrote, beginner's guide. I just want to know, what should I start studying (which software's and languages) so that at least I can begin.

ADD REPLY
3
Entering edit mode
12.1 years ago
Gjain 5.8k

Hi Vikas,

you can look at "Processing".

Processing is an open source programming language and environment for people who want to create images, animations, and interactions. Initially developed to serve as a software sketchbook and to teach fundamentals of computer programming within a visual context.

One of the tool built using this language is "MizBee: a multiscale synteny browser"

The main Processing website has examples and books available. Here is the wikipedia entry for it.

This is a very useful book on processing: Algorithms for Visual Design Using the Processing Language

I hope this might be useful to you.

ADD COMMENT
2
Entering edit mode
12.2 years ago

I have a web development background, so I've been working on a purely client-side javascript/html based visualization tool. Browser technology has matured to a point where I really think it is possible to display large amounts of NGS data.

Obviously there are issues with file IO and permanence when you work within the confines of a browser, but there are hacks around that. And this is a purely visualization tool. Only simple analysis like filtering by gene expression, blast, go data are available. You'd be surprised at how fast browsers are for rendering large amounts of data.

So far I've implemented a genome browser that works pretty much exactly like IGV and an expression data viewer for the dataset my lab uses. It works purely on the client side without a server. So you could just load it on a USB stick and have it work on any relatively new Chrome/Firefox/Safari browser without any dependencies.

I've also made it python compilable. So you just have to input some fasta,tab delimited, gtf files into a python script, and it will generate all the necessary html/js files. It is still very much a work in progress.

Here is a screenshot of the app: http://i.imgur.com/TaJOp.png

ADD COMMENT

Login before adding your answer.

Traffic: 2514 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6