• Stars
    star
    463
  • Rank 94,661 (Top 2 %)
  • Language
    JavaScript
  • License
    Other
  • Created almost 16 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

JBrowse 1, a full-featured genome browser built with JavaScript and HTML5. For JBrowse 2, see https://github.com/GMOD/jbrowse-components.

Build status Contributor Covenant

Note: most of our current development is on JBrowse 2, see our github repo here https://github.com/gmod/jbrowse-components

We will still continue to make bug fix and maintenance releases of JBrowse 1 but most development is on JBrowse 2

Note: if you are using plugins with a dev version of JBrowse or installing from GitHub, you may need to use node <=14 (e.g. node >=15 may fail) due to node-sass not compiling on newer node versions easily. See #1607 for details

Installing JBrowse

To install jbrowse, visit http://jbrowse.org/blog and download the latest JBrowse zip file. See instructions at http://jbrowse.org/docs/installation.html for a tutorial on setting up a sample instance.

Install JBrowse from GitHub (for developers)

To install from GitHub, you can simply clone the repo and run the setup.sh script

git clone https://github.com/GMOD/jbrowse
cd jbrowse
./setup.sh

Develop JBrowse or JBrowse plugins

To obtain a jbrowse development environment, e.g. for jbrowse source code editing or plugin development (or just running jbrowse from the github repo)

git clone https://github.com/GMOD/jbrowse
cd jbrowse
./setup.sh # not strictly necessary if you don't need to sample data

If you are going to edit the jbrowse source code, then also run

yarn watch

And keep yarn watch running in the background as you create changes to your code.

To start a temporary dev server, can also run

yarn start

And keep this running in the background, this will launch a webserver running jbrowse on port 8082.

Alternatively, you can put this jbrowse folder in your webserver (e.g. /var/www/html/) directory. The key is, if you are modifying jbrowse or plugin source code, to run yarn watch in the background, so that webpack incorporates your changes in either the main codebase (src/JBrowse folder) or any plugins (plugins/YourPlugin).

Note for users in China

In order to make downloads faster you can set a mirror for the npm registry

npm config set registry http://r.cnpmjs.org
npm config set puppeteer_download_host=http://cnpmjs.org/mirrors
export ELECTRON_MIRROR="http://cnpmjs.org/mirrors/electron/"

Notes on setting up a JBrowse server

Note: you should avoid using sudo tasks like ./setup.sh and instead use chown/chmod on folders to your own user as necessary.

Also note: After editing a file, you must re-run the webpack build with npm run build or you can keep webpack running in "watch" mode by running npm run watch.

Also also note: by default git clone will clone the master branch which contains the latest stable release. The latest development branch is called dev. Run git checkout dev after clone to retrieve this

Installing as an npm module

To install jbrowse from NPM directly, you can run.

npm install @gmod/jbrowse

To setup a simple instance, you can use

node_modules/.bin/jb_setup.js
node_modules/.bin/jb_run.js

Then visit http://localhost:3000/?data=sample_data/json/volvox

Contributing

Looking for places to contribute to the codebase? Check out the "help wanted" label.

Running the developer test suites

The Travis-CI suite runs Perl, JavaScript, and Selenium automated tests. To run locally, you can use

prove -Isrc/perl5 -lr tests
node tests/js_tests/run-puppeteer.js http://localhost/jbrowse/tests/js_tests/index.html
pip install selenium nose
MOZ_HEADLESS=1 SELENIUM_BROWSER=firefox JBROWSE_URL='http://localhost/jbrowse/index.html' nosetests

Supported browsers for SELENIUM_BROWSER are 'firefox', 'chrome', 'phantom', and 'travis_saucelabs'. The Sauce Labs + Travis one will only work in a properly configured Travis CI build environment.

Manual testing

Browserstack

JBrowse has a free open source account on Browserstack for manual testing. Contact @rbuels for access.

Generating Packaged Builds

You can also optionally run build steps to create the minimized codebase. Extra perl dependencies Text::Markdown and DateTime are required to run the build step.

make -f build/Makefile

To build the Electron app (JBrowse desktop app), run the following

npm install -g electron-packager
make -f build/Makefile release-electron-all

To run the Electron app in debug mode run the following

npm install -g electron
electron browser/main.js

Making a JBrowse release

NOTE: Beginning in 1.12.4,

  1. Run build/release.sh $newReleaseVersion $nextReleaseVersion-alpha.0 notes.txt, where notes.txt is any additional information to add to a blogpost. Then check its work, and then run the git push command it suggests to you. This makes a tag in the repository for the release, named, e.g. 1.6.3-release. This should cause Travis CI to create a release on GitHub under https://github.com/GMOD/jbrowse/releases

  2. Test that the page loads in IE11 on BrowserStack

  3. Add release notes to the new GitHub release that Travis created. Can just paste these from release-notes.md, which is in Markdown format.

  4. Write a twitter post for usejbrowse and JBrowseGossip with the announcement link to the blogpost

  5. Write an email announcing the release, sending to gmod-ajax. 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.

More Repositories

1

jbrowse-components

Source code for JBrowse 2, a modern React-based genome browser
TypeScript
201
star
2

Apollo

Genome annotation editor with a Java Server backend and a Javascript client that runs in a web browser as a JBrowse plugin.
Groovy
128
star
3

GBrowse

the Generic Genome Browser
Perl
49
star
4

Chado

the GMOD database schema
PLpgSQL
38
star
5

JBrowseR

R interface to the JBrowse 2 Linear Genome View.
R
35
star
6

vcf-js

High performance Variant Call Format (VCF) parser in pure JavaScript
TypeScript
22
star
7

jbrowse-jupyter

A python package for showing JBrowse views
Python
20
star
8

cram-js

Read CRAM v3 and v2 in node or in the browser
TypeScript
17
star
9

bam-js

Parse BAM and BAM index files in javascript for node and the browser
TypeScript
15
star
10

jbrowse-registry

JBrowse 1.x Plugin Registry
HTML
14
star
11

dash_jbrowse

A suite of Dash components for JBrowse's embeddable components
Python
13
star
12

tabix-js

Read Tabix-indexed files, either with .tbi or .csi indexes, in node or the browser
TypeScript
12
star
13

indexedfasta-js

Read FASTA files indexed with .fai indexes. Also supports BGZIP+.gzi
TypeScript
11
star
14

gff-js

parse and format streams of GFF3, for node or webpack
TypeScript
10
star
15

GBrowse-Adaptors

Perl
8
star
16

Bio-Graphics

Generate GD images of biological sequences and annotations
Perl
7
star
17

react-msaview

A multiple sequence alignment viewer
TypeScript
7
star
18

bgzf-filehandle

Nodejs filehandle for reading bgzip+.gzi compressed files
TypeScript
7
star
19

abortable-promise-cache

add AbortController support to a cache of async requests
TypeScript
6
star
20

bbi-js

Parser for bigwig and bigbed files
TypeScript
6
star
21

jbrowse-plugin-gdc

JBrowse 2 plugin for integrating with GDC resources
TypeScript
6
star
22

cmap

A browser-based tool for the visual comparison of various maps (sequence, genetic, etc.) from any number of species.
Perl
5
star
23

bed-js

A parser for the BED format including autoSql support
TypeScript
5
star
24

ucsc-hub-js

read and write UCSC track and assembly hub files in node or the browser
TypeScript
5
star
25

generic-filehandle

use a subset of the NodeJS promise-based file handle API to access both local and remote files
TypeScript
4
star
26

twobit-js

Read .2bit files with pure JS. Works in node or webpack.
TypeScript
4
star
27

jblast-jbconnect-hook

JBrowse/Galaxy-Blast Plugin
CSS
4
star
28

mimosa

Miniature Model Organism Sequence Aligner
CSS
4
star
29

jbrowse-plugin-template

Template to quickly start a new JBrowse 2 plugin
TypeScript
4
star
30

jbrowse-docker

JBrowse docker project
Shell
3
star
31

ixixx-js

TypeScript
3
star
32

jbrowse-plugin-msaview

multiple sequence alignment browser plugin for JBrowse 2
JavaScript
3
star
33

Apollo3

JBrowse 2 plugin for editing annotations on an Apollo server
TypeScript
3
star
34

jbrowse-plugin-list

List of plugins for the JBrowse 2 plugin store.
2
star
35

jbrowse-plugin-ideogram

JBrowse 2 plugin for rendering ideograms
TypeScript
2
star
36

faidx-js

Index a FASTA file similar to `samtools faidx` using pure js
TypeScript
2
star
37

Bio-GMOD-Blast-Graph

display a graphical summary of a BLAST report
Perl
2
star
38

tribble-index-js

Read htsjdk tribble indexes in pure JS
JavaScript
1
star
39

jbrowse_analytics

nodejs-based server for handling usage reports coming in from JBrowse instances
JavaScript
1
star
40

gtf-js

GTF parsing library in JavaScript
TypeScript
1
star
41

sars-cov-2-jbrowse

Repo for storing dockerfile and config for a coronavirus genome browser
Dockerfile
1
star
42

genome-projection

Genome projection library
Groovy
1
star
43

jbrowse-plugin-quantseq

External JB2 plugin implementing a QuantitativeSequence track for displaying base-resolution models.
TypeScript
1
star
44

jbrowse-plugin-reactome

JBrowse 2 plugin integrating with Reactome
TypeScript
1
star
45

jb2export

A CLI program to generate static image exports for jb2
JavaScript
1
star
46

jbconnect

JBConnect, an optional server-side component of JBrowse
JavaScript
1
star
47

WebGBrowse

a web interface for setting up GBrowse instances
Perl
1
star
48

jb2profile

JavaScript
1
star
49

jbrowse-react-app-nextjs-demo

TypeScript
1
star