Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A modern genome browser built with JavaScript and HTML5.
JavaScript Perl CSS C++ Python Perl6 Other
Failed to load latest commit information.
bin add m. durling --config option to
build Add a release-notest mode to the Makefile
docs Change some values for the new BAM options
img Merge branch 'clear_highlight_button'
plugins/RegexSequenceSearch tweak regex search box a little more
sample_data in faceted tracksel, do not filter using the displayColumnFilter, bec…
src Allow falsey values to be used in browser.cookie
tests Add run-jasmine.js for phantomjs test runner…
.gitignore Updated gitignore
.gitmodules Added dkasenberg/FileSaver as a submodule, forked from eligrey. Will …
.htaccess add a .htaccess file to the JBrowse root directory that enables CORS
INSTALL make INSTALL point at the tutorial again, now that it's updated
LICENSE add license info
Makefile.PL Fixed ability to install JBrowse scripts to the system Add phantomjs javascript runner instructions
combination_tracks.css improve repetitive dkasenberg css
compat_121.html fix compat_121 broken in 006cbe8
export_dialog.css replace export View dialog filename textbox with a dijit textbox, loo…
faceted_track_selector.css tweak faceted tracksel styles
file_dialog.css tweak file dialog ui a little more
genome.css Add default dojo stylesheet for tristate checkbox (needs customization)
hierarchical_track_selector.css hierarchical tracksel style tweaks
icons.css Remove old highlight code
index.html Add the menu option to the query string
jbrowse.conf Move highResolutionMode,documentDomain,refSeqOrder into general secti…
jbrowse_conf.json add an empty jbrowse_conf.json, with a comment
main.css Fixing what look like syntax errors in some property declarations.
maker.css make maker2jbrowse support user-defined source tags
menubar.css align menubar components vertically with the top of the div; add "ver…
release-notes.txt Fix GridLines bug at strange zoom levels. Fixes #514
sequence.css Use hex instead of named color. Use default gray for deletions for no… Convert samtools master to samtools 0.1.20 -- final version without h…
track_styles.css added diamond glyph
tristate.css Fixing what look like syntax errors in some property declarations.

Installing JBrowse

Users of JBrowse should get it from the main JBrowse site at

Unless you intend to work on the JBrowse code itself, or develop a JBrowse plugin, stop reading now and go to

About running from a git clone

Only developers should run JBrowse from a git repository. For one reason, the development version has a much, much slower initial load time than the built release zipfiles. Also, since the master branch code is ''in development'' for the next JBrowse release, it often (usually?) contains bad bugs, much more so than the official releases put up on

Setting up a development environment

Make sure you have a web server installed on your development machine. Any web server will do.

cd /my/dev/webserver/root;
git clone --recursive
cd jbrowse
# and now point your browser to
#   http://localhost/jbrowse/index.html?data=sample_data/json/volvox
# and you should see the volvox example data

Running the developer test suites

Server-side Perl

Tests for the server-side Perl code. You must have the JBrowse Perl module prerequisites installed for them to work. Run with:

prove -Isrc/perl5 -lr tests

Client-side Unit Tests

Point your browser at

You can also run them from phantomJS using

phantomjs tests/js_tests/run-jasmine.js

Client-side Integration Tests

Integration tests for the client-side app. You need to have Python eggs for selenium and nose installed. Run the tests with:

JBROWSE_URL='http://localhost/jbrowse/index.html' nosetests

Cutting a JBrowse release

  1. Edit the JBrowse package.json file and change 'version' to the version you are releasing. Don't commit this change to the repository, it should stay as dev in git so that it shows up in analytics as a development version.

  2. Build the release packages: make -f build/Makefile release. The files produced during the build should not be committed to the repository either. There is also make -f build/Makefile release-notest for releases that don't need perl tests to be run. NOTE: you may need to use the command ulimit -n 1000 to avoid "spawn EMFILE" build errors.

  3. Make a tag in the repository for the release, named, e.g. 1.6.3-release.

  4. scp the release .zip files (min and full) to

  5. Add them to the Wordpress Downloads list so that we can track how many times they are downloaded.

  6. Write a blog post announcing the release. The release-notes.html file made during the build might be useful for this.

  7. Update the "Install" page on the site to point to the newest release.

  8. Update the latest-release code checkout on the site, which the "Latest Release" demo on the points to, to be an unzipped-and-set-up copy of the latest release.

  9. Write an email announcing the release, sending to gmod-ajax, jbrowse-dev. If it is a major release, add gmod-announce and make a GMOD news item.

As you can tell, this process could really use some more streamlining and automation.

Something went wrong with that request. Please try again.