Developer guide
JBrowse 2 is published as products people run and plugins that add to them. This page describes both, links working plugins to read, and indexes the guides for each kind of pluggable element.
Products and plugins
Two kinds of package are published on their own: products and plugins.
A product is an application published on its own: jbrowse-web in a browser,
jbrowse-desktop in Electron, jbrowse-cli on the command line, and the
embedded React components.
A plugin adds functionality to a product at runtime. Anyone can write and publish one, and a product loads plugins from a URL. A product can also be built with its plugins bundled in, which is what the embedded components do.
Example plugins
Plugin templates:
- jbrowse-plugin-template
- jbrowse-plugin-esbuild-template (lightweight esbuild-based alternative)
Working plugin examples:
- jbrowse-plugin-ucsc-api is the smallest of these, an adapter that reads the UCSC REST API
- jbrowse-plugin-gwas draws GWAS data as a manhattan plot
- jbrowse-plugin-biothings-api reads mygene.info, one of the "biothings API" services
- jbrowse-plugin-msaview creates a custom view type that holds no tracks at all
- jbrowse-plugin-gdc reads the GDC cancer data GraphQL API, and adds a drawer widget and a track type that colors variants by impact score
- jbrowse-plugin-systeminformation reaches node system libraries from JBrowse Desktop. A desktop-only plugin like this one ships as a CJS bundle, which is what Electron loads
The jbrowse-plugin-list is the community plugin registry: browse it to find published plugins, or submit your own through a pull request.
Guides by topic
Getting started
Plugins
- Custom track and display types
- Plotting features in a custom display
- GPU displays
- Add-track workflows
- Custom adapters
- Custom connections
- Custom view types
- Custom widgets
- Drawer widgets
- Menus
- SVG export
- Text search adapters
- Upgrading to v5
Core concepts
- Configuration schema
- Data fetching pipeline
- Data flow, end to end
- Dependencies and re-exports
- Extension points
- MST patterns
- RPC and worker system