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 |