Skip to main content

Table 3 A listing of JBrowse 2 elements that can be extended by third-party plugins

From: JBrowse 2: a modular genome browser with views of synteny and structural variation

Plugin-extensible element

Description

Example

Data adapters

Classes through which reading and parsing unique data formats is done, including retrieving data from RESTful APIs

BamAdapter: processes.bam files, remote or local, along with their coordinating.bai or.csi index files

Text search adapters

Classes through which searches for features by name are processed

TrixTextSearchAdapter: used for UCSC trix indexes, generated by the jbrowse text-index command

Track types

A high-level concept in the configuration system that associates a name, trackId, and metadata with a data adapter. There is not a lot of logic attached to track types; instead, the display types and renderers are used to draw and add logic to tracks

AlignmentsTrack: displays data typically associated with BAM and CRAM type data adapters

Display types

The code to “display” a track type in a particular view. This layer is important because it allows track types to be displayed in multiple view types, and often contains logic such as menus, click actions, React components, and more

LinearSyntenyDisplay, DotplotDisplay: these display types help display a SyntenyTrack in different view types

Renderer types

Fetches data from a data adapter and draws the features, typically rendering to either SVG or HTML5 canvas. Renderers run on the remote side of an RPC call and are instructed to render a particular genomic region or regions

PileupRenderer: draws the reads from a.bam or.cram file

Widgets

User interfaces that provide utility or information to the user. In JBrowse Web and JBrowse Desktop, these appear as a side drawer. In embedded, these appear in a dialog box

Track selector: Provides a list of tracks for user to toggle in the user interface

RPC calls

Custom code that a plugin runs on the remote side of an RPC call (e.g., in a web worker) to avoid doing heavy work in the main thread

WiggleGetMultiRegionStats: estimates quantitative statistics for the given genomic regions

View types

Containers for visualizations that permit wholly unique visualizations to be displayed in the same context as the standard linear genome view

CircularView: provides a circular whole-genome overview of structural variants

Extension points

A named list of callbacks that the code can use to create arbitrary modifications to various parts of the code

The `extendPluggableElement` extension point allows plugins to add to state tree models e.g., add menu items

Connection types

Connections provide a way to connect to a provider of tracks or assemblies

UCSCTrackHubConnection: adds tracks from a UCSC track hub to the tracklist

Internet account type

Adds a custom authentication method to a remote data provider

GoogleDriveOAuthInternetAccount: Adds ability to open share links from Google Drive