Question: What The Simplest/Easiest Open Source Genome Browser To Develop With? (For A Beginner Programmer)
gravatar for bio monkey
8.5 years ago by
bio monkey40
bio monkey40 wrote:

I'm a very novice-level programmer (Biology major) and I want to find a simple genome browser that I can easily add functionality to. What I want to be able to do is be able to upload a file that contains differential gene expression levels and then display these on a "track" on the genome browser a the whole chromosome level.

Ideally you would be able to see the entire track for the chromosome, then be able to zoom in to a section of the chromosome and be able to see the values plotted out.

What is the easiest/simplest genome browser to work with? I've already tried Savant but the code is too extensive and too hard to follow. I've also heard of GBrowse but it seems like thats too complex too.


ADD COMMENTlink modified 4.3 years ago by Biostar ♦♦ 20 • written 8.5 years ago by bio monkey40

So what is your aim? To find a browser with the features you listed,there is a lot of them, or to find one that is easily extensible, or to find a browser to study for its supreme coding style, or one that is easy to hack?

ADD REPLYlink modified 8.5 years ago • written 8.5 years ago by Michael Dondrup47k

And btw it also depends on the programming language you prefer. If you haven't chosen your language yet, choose java, there are many browsers in java and it's more newbie friendly than perl. If you want publication ready graphics,go for R and ggplot.

ADD REPLYlink written 8.5 years ago by Michael Dondrup47k

indeed, probably the language that the OP knows is the most important factor - bio monkey should think about the language first, then the browser

ADD REPLYlink written 8.5 years ago by Istvan Albert ♦♦ 84k

Thanks for the help everyone. Just to clarify, I'm looking for something java-based (I took an intro computer science class in Java) that can be manipulated easily. I'll check out Gbrowse2.

But more specifically I'm looking for something with these two components: 1. the reference track is plotted (with genes shown) and a graph is overlayed (or shown above) the reference track that shows the p-value for an entire gene. this way, you would be able to see easily which genes in your viewing window are significant between two populations (e.g. two SAM files uploaded). 2. you can click on a particular gene and then a popup shows up that displays the P-value, t-statistic, maybe some sort of enrichment score.

Does anybody know of a tool that does this?

ADD REPLYlink written 8.5 years ago by bio monkey40

Yes gbrowse can be configured to do this, but gbrowse is perl, and for larger genomes requires a database installation. See my updated answer.

ADD REPLYlink written 8.5 years ago by Michael Dondrup47k

Galaxy should let you do this. They've got some nice tutorials that you can refer to

ADD REPLYlink written 8.5 years ago by ngsgene350

You are right that the scores could be precomputed in galaxy and be exported as a track. Normally, for most genome browsers, tracks and scores must be pre-computed,as more complex scores cannot be computed on the fly.

ADD REPLYlink written 8.5 years ago by Michael Dondrup47k
gravatar for brentp
8.5 years ago by
Salt Lake City, UT
brentp23k wrote:

Most genome browsers, including Savant, are built so that you don't have to program.

If your data is in the right format, you can just upload it and view it. Savant supports viewing differential expression data. Did you try just using the browser directly?

You could also use the UCSC genome browser if your data is in BAM format or in wig format.

If you do any programming, it'll likely be to convert data to whatever format your chosen viewer can use to render what you're looking for.


Since you mention Java is a requirement, also check out IGV it's open source: if you find you really need to dig in to the code.

ADD COMMENTlink modified 8.5 years ago • written 8.5 years ago by brentp23k
gravatar for Mary
8.5 years ago by
Boston MA area
Mary11k wrote:

WebGBrowse: All you need to do is structure the file.

EDIT to add: I looked at Gaggle once too and thought it looked nice, but haven't actually tried to add data myself:

ADD COMMENTlink modified 8.5 years ago • written 8.5 years ago by Mary11k

That looks like a good solution, you get the power of gbrowse without installation costs. The configuration should work exactly the same way as documented for gbrowse, correct?

ADD REPLYlink written 8.5 years ago by Michael Dondrup47k

Yeah, it's my understanding that it is totally aligned with installed GBrowse. EDIT: see their page at GMOD

ADD REPLYlink modified 8.5 years ago • written 8.5 years ago by Mary11k
gravatar for Michael Dondrup
8.5 years ago by
Bergen, Norway
Michael Dondrup47k wrote:

In fact the simples genome browser for a beginner might be the software that doesn't need programming because it already has all features required and that has the largest user community.

To say it frankly, for a beginner in programming modifying an existing codebase of a highly complex software (e.g. any reasonable genome browser) is not going to be a recommended exercise (it depends really on good you are). Instead I recommend to look at GBrowse2 again. It has all the features you describe (custom tracks, zooming, quantitative tracks) and many more. The whole thing comes as a Perl module and needs only writing configuration files, no programming. It has a large user community which is eager to provide support. I have recently evaluated GMOD and GBrowse installation and found it reasonably simple to install. If you'd really need some new feature you can ask for it on the mailing list and might get a hint on how to configure GBrowse to do this.

I recommend you try setting it up and configuring it going through the howto.

Edit, after reading your comment. Imagine you had a gff3 file with your genes and a tag 'pvalue' in the last column, Then the following configuration code would most likely work for you

   description = sub {
       my $feature = shift;
       return $feature->attributes('pvalue');

This is configuration but it also is programming, because you in fact can inject little code fragments via the configuration file without compiling the application again. Also it is sufficiently abstract to be obvious how this code works, or how to change it to display an attribute 'evalue'.

ADD COMMENTlink modified 8.5 years ago • written 8.5 years ago by Michael Dondrup47k
gravatar for Alex Paciorkowski
8.5 years ago by
Rochester, NY USA
Alex Paciorkowski3.4k wrote:

Do you need to use a genome browser to do this? If you only need to generate a figure of the data you describe, you could use Circos to visualize heatmap data overlaid on genomic coordinates. The downside is you have to learn a little bit of Perl. But the upside is, you get to learn a little bit of Perl.

But, if your goal is also to learn about the inner workings of a genome browser, then the other answers here give you some excellent pointers.

ADD COMMENTlink written 8.5 years ago by Alex Paciorkowski3.4k
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 2139 users visited in the last hour