Lincoln D. Stein


Frequently asked questions - with answers.


How do I get the most recent version of this FAQ?

The most recent version of this FAQ can be downloaded at and

What is GBrowse good for?

GBrowse was designed to view genomes. It displays a graphical representation of a section of a genome, and shows the positions of genes and other functional elements. It can be configured to show both qualitative data such as the splicing structure of a gene, and quantitative data such as microarray expression levels.

Another good way to get an overview of the features GBrowse offers is to read the online tutorial at

What platforms does GBrowse run on?

GBrowse is a web-server application that is implemented in the Perl programming language. It will run on any machine that runs Perl, including Windows, Macintosh OS X, and most versions of Linux and UNIX.

How is GBrowse distributed?

GBrowse is distributed as source code for Macintosh OS X, UNIX and Linux platforms, and as pre-packaged binaries for Windows machines.

What are the terms of use for GBrowse?

GBrowse is distributed under the Perl Artistic License, which allows for unrestricted use and distribution, including commercial use and resale. You may modify and distribute modified versions of GBrowse provided that you credit the original authors for their contribution.

I have a problem. What do I do?

First consult the mailing lists at Your problem may already have been reported and discussed. If you find no help there, then send email to E<>. If you are pretty certain you have found a bug, please report it to the bug report tracking system at


Where do I download GBrowse?

From If you want to live on the bleeding edge, you may try the development version of GBrowse. Instructions for accessing the development version of GBrowse can be found at

How do I install GBrowse?

After you unpack GBrowse, detailed installation instructions will be found in the top level directory, in the file INSTALL. An online version of this document can be found at


When I search, why doesn't GBrowse find my 3-letter gene name?

If you are using the MySQL GFF adaptor and are storing gene names inside Note attributes, then you may bump up against MySQL's default four-letter limit on full text searches. To fix this, either:

  1. Put the gene name in an Alias attribute, e.g. "Alias LEP"


  2. Change MySQL to allow searches on 3-character words.

The latter solution is a multi-step process:

  1. Open /etc/my.cnf and add the following configuration line
     to the [mysqld] stanza:


  2. Restart the mysql server.

  3. Connect to your database using the mysql command-line client
     and run the command:

         mysql> repair table fattribute_to_feature quick;
How do I use semantic zooming to hide a track completely?

If you wish to turn off a track entirely, you can use the "hide" flag to hide the track when the display exceeds a certain size:

  hide = 1
I have a multi-segmented feature (such as a multi-exon transcript). It looks fine at low power, but when I zoom in the connecting lines between segments disappear. Help!

You need to structure the feature in such a way that it has a single parent part that spans the whole feature from end to end, and then use the appropriate aggregator. For example, the "match" aggregator looks for a parent feature of type "match" and subpart features of type "HSP." So the GFF file you load should look like this:

  Chr1 . match  1  1000 . . . ID=Hit27
  Chr1 . HSP    1   200 . . . Parent=Hit27
  Chr1 . HSP  500   600 . . . Parent=Hit27
  Chr1 . HSP  900  1000 . . . Parent=Hit27

In GFF2 format, the example will look like this:

  Chr1 . match  1  1000 . . . Hit Hit27
  Chr1 . HSP    1   200 . . . Hit Hit27
  Chr1 . HSP  500   600 . . . Hit Hit27
  Chr1 . HSP  900  1000 . . . Hit Hit27

For transcripts, use the "processed_transcript" aggregator and create features with a main part of "mRNA" and subparts of "CDS", "exon", and/or various types of UTRs.

I'm using the GFF database adaptor. Is it better to load it using GFF2 or GFF3?

GFF2, described in the GBrowse tutorial, is the older version of the GFF feature annotation format. Its main limitation is that it cannot represent features that have more than one level of nested subparts. For example, you cannot represent the relationship between a gene, two alternatively spliced transcripts, and the exons inside the transcripts. GFF3 ( corrects this problem as well as a number of other deficiencies.

You can load a BioPerl GFF database using either GFF2 or GFF3 format. However, the BioPerl GFF database schema has not yet been updated to handle the new features of GFF3. Therefore you will not benefit from most of GFF3's features. In particular, BioPerl will use the GFF3 ID as the name of the feature, rather than NAME (the provided name will be recognizeed as a synonym). In addition, BioPerl allows only one level of feature nesting.

The bottom line is that you might want to use GFF3 in order to have forward-compatiility with new versions of Bio::DB::GFF. Otherwise GFF2 will work perfectly well.

How do I pass parameters into functions of init_code?

You want to define a function in the init_code section which will then be called within callbacks.

The answer is to do something like this:

 init_code = sub round {
                 my $a = shift;
                 return int($a + 0.5);

 label    = sub { 
           my $feature = shift;
           my $score   = $feature->score;
           return "score = ",round($score);

Note that you'll need GBrowse version 1.63 or higher for this to work.

How do I show circular genomes?

GBrowse was designed for linear genomes. In order to represent circular genomes, you'll need to break the circle open at a convenient spot (preferably a spot that is not spanned by any genes). If you do need to break a gene, you'll have to put two entries for it in the GFF load file:

  ====>                                           >==========
  second half                                      first half

You may have to give the two halves different names in order to prevent GBrowse from trying to join the two halves. This is nonoptimal and will be fixed in a later release.


Why are there so few questions in the FAQ?

Because I just started this document.

$Id: FAQ.pod,v 1.2 2005-12-09 22:19:09 mwz444 Exp $

1 POD Error

The following errors were encountered while parsing the POD:

Around line 48:

Unknown E content in E<>