State models
Auto-generated reference for JBrowse's MobX state-tree models: the views, tracks, displays, sessions, and mixins that make up a running app, along with their properties, actions, and views. These pages are generated from the model definitions in the source, so they always match the current release.
For how these fit together and how to extend them, see the developer guide.
Assembly Management
- Assembly — Loads an assembly's reference sequence names, refName aliases and cytobands, and maps each data file's refNames onto the assembly's canonical names.
- AssemblyManager — Keeps an Assembly for each assembly in the config and the session, and looks one up by name or alias.
Connection
- BaseConnectionModel — Holds the tracks a connection has loaded. Each connection type overrides connect to fetch them from its source.
- JB2TrackHubConnection — Fetches another JBrowse 2 config.json on connect and adds its tracks to the session.
- JBrowse1Connection — Connection that imports tracks from a legacy JBrowse 1 data directory, composed on the base connection model.
- UCSCTrackHubConnection — Fetches a UCSC track hub's hub.txt on connect and adds its tracks to the session.
Display
- BaseChordDisplay — What the circular view's chord and ribbon displays share: the features, the slice index a feature end is looked up in, and the lifecycle getters ChordDisplayFrame publishes.
- BaseDisplay — Holds a display's parent track, the adapter config read from that track, its load status and error, and the component that draws it. Every display composes this model.
- ChordSyntenyDisplay — Draws a SyntenyTrack in a CircularView, with a ribbon joining the two spans of each alignment.
- ChordVariantDisplay — Draws the structural variants of a VariantTrack in a CircularView, each translocation as a chord across the circle.
- DotplotDisplay — Draws a SyntenyTrack as a dot plot inside a DotplotView.
- LDTrackDisplay — A linkage disequilibrium matrix read from a pre-computed file, drawn as a triangle over the view.
- LGVSyntenyDisplay — Draws where a SyntenyTrack's alignments fall in a plain linear genome view, with menu items that open them in a synteny view.
- LinearAlignmentsDisplay — State model factory for LinearAlignmentsDisplay
- LinearBasicDisplay — GPU-accelerated feature display with gene-specific UI on top of the shared canvas base display (LinearCanvasBaseDisplay).
- LinearCanvasBaseDisplay — Shared GPU-accelerated feature display base for canvas-rendered tracks.
- LinearHicDisplay — The Hi-C contact matrix as a triangle over the view.
- LinearMafDisplay — Draws the multiple alignment in a MafTrack, one row per aligned species, under a conservation band.
- LinearManhattanDisplay — The mark display with the LD join: an index SNP each fetch joins r² to, picked once from the top hit, and the menus that color the points by it.
- LinearMarkDisplay — A display declared in config: a list of marks, each with an encoding from feature fields to channels, drawn in order over one score axis from one worker fetch per region.
- LinearMultiRowFeatureDisplay — Partitions a single feature track into stacked rows by a feature attribute and paints each feature as a colored block on its row.
- LinearMultiSampleVariantDisplay — Multi-sample variant display drawing one genotype row per sample, with a per-cell feature widget on click.
- LinearReferenceSequenceDisplay — Draws a ReferenceSequenceTrack as rows of bases: the forward strand, the reverse complement and the translation frames.
- LinearScoreDisplay — The worked-example score display: one value per feature, drawn as a box along the genome. The developer guides walk through this model.
- LinearSyntenyDisplay — Pure-data model. The containing LinearSyntenyView owns the shared GPU backend, the upload autorun (which watches every display's instanceData and keys it by displayKey), and the render autorun.
- LinearVariantDisplay — GPU-accelerated variant display with custom feature widget on click.
- LinearWiggleDisplay — The quantitative display: one plot per rendering, drawn over one source or over many. rows: 'source' puts each source in a separate row, with the clustering sidebar, row labels and separators beside…
- MultiWaySyntenyDisplay — Draws a multi-genome ortholog track as one lane per assembly inside a linear genome view, with ribbons joining each gene's placements between adjacent lanes.
General
- Base1DView — Holds a one-dimensional axis of displayed regions, with its zoom and scroll offset, for views other than the linear genome view, such as the two axes of the dotplot.
- Dotplot1DView — Holds one axis of a dotplot: its displayed regions, zoom and scroll offset, and the ticks and labels drawn along it.
- LinearSyntenyViewHelper — Holds one level of a linear synteny comparison: its track list and height, composed with the shared rendering-lifecycle state.
- TimeTraveller — Undo/redo history for a target state-tree node: records snapshots as it changes and exposes canUndo/canRedo with undo/redo actions.
Internet Account
- BaseInternetAccountModel — Adds a token header to each request for a file on one of the account's domains, keeping the token in sessionStorage. Every internet account type builds on this model.
- DropboxOAuthInternetAccount — Fetches a file from a Dropbox share link through the Dropbox API, with an OAuth 2.0 token from the Dropbox login.
- ExternalTokenInternetAccount — Internet account that authenticates requests with a user-supplied external token, prompting for the token via a dialog and optionally validating it with a HEAD request.
- GoogleDriveOAuthInternetAccount — Fetches a file from a Google Drive share link through the Drive API, with an OAuth 2.0 token from the Google login.
- HTTPBasicInternetAccount — Internet account that authenticates requests with an HTTP Basic username/password the user enters through a dialog, optionally validated with a HEAD request.
- OAuthInternetAccount — Gets an OAuth 2.0 access token from the provider's login window, and renews it with a refresh token kept in localStorage.
- TokenEntryInternetAccount — Shared base for internet accounts whose token the user supplies through a dialog (HTTP Basic, external token).
Mixin
- AppSessionMixin — Session getters shared by the "app" products (desktop + web) that simply delegate to the root model — version, history, menus, assemblyManager — plus renameCurrentSession.
- AssembliesMixin — Adds sessionAssemblies (admin-aware, persisted-with-session assemblies) and temporaryAssemblies (used for ad-hoc read-vs-ref style assemblies).
- CanvasFeatureGateMixin — The density axis of the region-too-large gate, composed after MultiRegionDisplayMixin. A display opts in by composing this and calling commitGateMeasurements from its fetch's onComplete.
- CoarseTierMixin — The zoomed-out tier a display draws in place of its detail past a threshold the display sets: MAF's summary bars.
- ColorWritesMixin — The writes a display's encoding.color channel takes from a menu row or a picker: the field it paints by (colorByField) and the constant every feature paints (setColorValue).
- ComparativeFetchMixin — The fetch foundation of the two comparative displays (LinearSyntenyDisplay, DotplotDisplay): KeyedFetchMixin — FetchMixin's rotation, loading flag, error, status, durable cancel and retry, plus the…
- ConnectionManagementSessionMixin — Adds connections to a session: the connection instances it has made, and the configs of the connection tracks the user opened, so those tracks load on session restore without reconnecting.
- ContextMenuMixin — The right-click state of a display whose menu acts on a position: the anchor plus whatever the click resolved to (a genomic column, a feature), held as one value so the menu's open-ness and the…
- DesktopSessionTrackMenuMixin — Adds the desktop track menu to a session: Settings, Copy and Delete, plus Index track for a track whose adapter supports text indexing.
- DiagonalizeProgressMixin — The auto-diagonalize lifecycle state shared by the comparative views (LinearSyntenyView, DotplotView, CircularView): the in-flight wait, its live RPC status and signal, and the flag that gates…
- DrawerWidgetSessionMixin — Adds the widget drawer to a session: the open widgets, which one is showing, and the drawer's side, width and minimized state.
- EmbeddedSessionMixin — Everything the two single-view embedded products' sessions (react-linear-genome-view, react-circular-genome-view) share: the mixin set they compose and the three getters that read the root model.
- EmbeddedSessionThemeMixin — Theme getters shared by the single-view embedded sessions (react-linear-genome-view, react-circular-genome-view).
- FacetWritesMixin — The writes a display's facet object takes from a menu row, a dialog or a chip drag: the field the sections split by (facetByField) and their order (setFacetSort).
- FetchMixin — Cancel-safe fetch lifecycle for any display that loads data over RPC.
- GlobalFetchMixin — The foundation for a display holding a single global (non-regional) dataset: HiC's contact matrix, the LD triangle, multi-way synteny's lanes.
- HeightModeMixin — Track-height strategy over TrackHeightMixin(), which it composes and whose height and resizeHeight it overrides. growTargetHeight (default = the allotted height).
- HiddenGroupsMixin — The sections a reader hid from an in-track grouping's chips: the facet.hidden keys while the stack groups by the facet's field, hideGroup and showAllGroups writing them, hiddenGroupKeys reading them,…
- HistoryManagementMixin — Adds undo and redo of session changes to the root model, bound to Ctrl+Z and Ctrl+Y (Cmd on macOS).
- ImportFormSyntenyMixin — The synteny track each row pair of a view's import form has picked, held on the model so it outlives the form's per-pair remounts. Composed by the linear synteny, dotplot and circular views.
- InternetAccountsMixin — Adds internet accounts to the root model, and finds the account that signs the request for a given file location.
- KeyedFetchMixin — FetchMixin plus the one freshness compare a single-payload fetch runs: the key of what the view, settings and adapter call for (currentFetchKey) against the key the held data was committed under…
- LegendMixin — The legend, whole.
- LodTierInfoMixin — What the tiered adapter said about its file, held by every display that resolves a level-of-detail tier (LinearSyntenyDisplay, DotplotDisplay, LGVSyntenyDisplay, MultiWaySyntenyDisplay) and read by…
- MatrixRampMixin — A matrix display's encoding.color as it paints: the painted field through its preset's ramp (colorEncoding), that ramp's scheme, direction and 256-entry table (colorScheme, colorReverse, colorRamp),…
- MultipleViewsSessionMixin — Adds a list of views to a session, with actions to add, remove, replace and reorder them.
- MultiRegionDisplayMixin — Per-region fetch lifecycle for LGV-based GPU displays.
- ParkedColorMixin — The field the last write took off a color object, with its domain, range and key names, so picking that field again gives them back (colorForField).
- PointerHoverMixin — A hover derived from the pointer. The hit type, as the type parameter.
- PreferencesSessionMixin — Loads and saves a user's preference overrides (the BaseSession preferencesOverrides volatile) in localStorage.
- ReferenceManagementSessionMixin — Adds to a session a lookup of the views and widgets that refer to a track, and an action that hides the track in those views and closes those widgets.
- RegionTooLargeMixin — The region-too-large gate: a display opts in by overriding gateEnabled and passing byteLimit: self.resolvedByteLimit() to its fetch RPC.
- RenderLifecycleMixin — Owns the GPU draw lifecycle for any display that paints to a canvas.
- RootAppMenuMixin — Adds actions to the root model that let plugins add menus and menu items to the app bar.
- RowHeightMixin — The two-valued row height every multi-row display has. A rowHeightConfigSchemaFields slot whose 0 means fit-to-display-height, and an autoRowHeight getter saying what that fit divides.
- ScoreAxisMixin — ScoreScaleMixin is the one composer of this mixin, and a display takes the axis by taking that.
- ScoreScaleMixin — Value scale, read and written at a YScalePaths map's paths (encoding.y, the coverage band's coverage.encoding.y). yChannelSchema / yFieldChannelSchema.
- SessionTracksManagerSessionMixin — Adds session tracks to a session, and stores the user's edits to any track as a delta against its base config.
- StoredHoverMixin — A stored hover. The hit type, as the type parameter.
- SyntenyColorsMixin — The color settings every view drawing synteny tracks shares — the linear synteny view, the dotplot and the circular view: TrackColorsMixin's encoding and palette, the encoding.opacity it fades by and…
- SyntenyFadeMixin — The fade a view drawing synteny ribbons offers whatever the color mode: a sub-pixel alignment by its on-screen width, so a dense whole-genome picture keeps its density instead of saturating.
- SyntenyFilterMixin — The filter every view drawing synteny tracks applies to the alignments: the linear synteny view's ribbons, the dotplot's segments and the circular view's ribbons.
- SyntenyViewMixin — What the linear synteny and dotplot views share beyond SyntenyColorsMixin: the level-of-detail tier every track draws at, and a color key the reader closes per mode.
- ThemeManagerSessionMixin — Adds the UI theme to a session: the selected theme, light or dark mode or following the OS, and the themes an admin adds through extraThemes.
- TrackColorsMixin — The color-by state shared by every view that can draw more than one synteny track at once: the view-wide color object and the palette that tells overlaid tracks apart.
- TrackHeightMixin — Internal vertical scroll. scrollContentHeight and scrollViewportHeight (both default 0 = doesn't scroll).
- TrackMenuItemsSessionMixin — Adds two track-menu wrappers (getTrackListMenuItems for the hierarchical selector, getTrackActionMenuItems for the in-view label menu) shared by the full web and desktop sessions.
- TrackMenuSessionMixin — The minimal track menus used by the embedded react views, which have no track-editing actions to offer: just "About track" plus any plugin-contributed items (Core-extraTrackMenuItems).
- TracksManagerSessionMixin — Adds track configs to a session: looking one up by trackId among the config's tracks, assembly sequences and connection tracks, and adding or editing one.
- TreeSidebarMixin — Row set with a dendrogram sidebar, its arrangement the display's rows config object and its row colors the rowColor object, each written as a session edit to the track's config so undo, reset and a…
- TriangleMatrixMixin — A matrix drawn as a triangle over the view's axis (Hi-C, LD): the fetched payload (rpcData), the canvas box (canvasWidth, matrixHeight under the matrixTop hook), the rotate-and-squash transform and…
- WebSessionConnectionsMixin — Adds connections that a user creates to a web session, kept in the session beside the connections the config declares.
- WebSessionManagementMixin — Saved-session-database actions (favorites, recent sessions, activate/delete) delegating to the root's AbstractWebSessionDbRootModel.
- WiggleCommonMixin — Extends YFieldConfigMixin with the narrowed rpcDataMap, the autoscale domain and the wiggle-specific config: the origin, rendering type, resolution and the line/gap settings.
- WiggleScoreConfigMixin — The score-plot config every display with a score axis shares: the axis and its guides (ScoreScaleMixin) at the display's paths.
- WorkspaceLayoutMixin — The whole workspace as one MST tree:
- YFieldConfigMixin — WiggleScoreConfigMixin plus encoding.y.field, for a display that plots one configured feature field through a yFieldChannelSchema: the wiggle display.
Root
- AppCoreJBrowseModel — Holds the loaded config file, usually at rootModel.jbrowse, with actions that add and remove its assemblies and tracks.
- BaseRootModel — Holds the loaded config, the session, the assembly manager and the RPC manager. Every JBrowse product's root model composes this one.
- EmbeddedRootModel — Root model shared by the single-view embedded products (react-linear-genome-view, react-circular-genome-view).
- JBrowseDesktopConfigModel — Holds JBrowse Desktop's loaded config at rootModel.jbrowse, adding the desktop-only sourceConfigUrl and webExportUrl slots.
- JBrowseDesktopRootModel — Holds JBrowse Desktop's top-level state: the loaded config, the session, internet accounts, undo history, the app menus and the text-indexing jobs.
- JBrowseReactAppRootModel — Holds the top-level state of the embeddable JBrowse React app: the loaded config, the session, internet accounts and the app menus.
- JBrowseReactLinearGenomeViewRootModel — Composes the shared EmbeddedRootModel with a LinearGenomeView session and this product's own props.
- JBrowseWebRootModel — Holds JBrowse Web's top-level state: the loaded config, the session, internet accounts, undo history, the app menus and the saved sessions kept in the browser.
Session
- BaseSessionModel — Holds a session's name, focused view, highlights and notifications. Every product's session composes this model, so add to it with care.
- BaseWebSessionModel — Composable web session shared by jbrowse-web and react-app, before finalizeSession (the snapshotProcessor can't be composed). jbrowse-web composes WebSessionManagementMixin onto this; react-app uses…
- JBrowseDesktopSessionModel — Holds a JBrowse Desktop session: its views, session tracks, assemblies, connections, theme and preferences, and the workspace layout.
- JBrowseReactCircularGenomeViewSessionModel — The shared EmbeddedSessionMixin plus this product's tracks mixin and its single CircularView.
- JBrowseReactLinearGenomeViewSessionModel — The shared EmbeddedSessionMixin plus this product's tracks mixin, its single LinearGenomeView, and disableAddTracks, which is a root prop rather than a session one.
- JBrowseWebSessionModel — The full-app web session: the shared web session plus the saved-session database management surface (favorites, recent sessions, activate/delete) and the permanent plugin list.
- SnackbarModel — Adds notifications to a session: the snackbar messages on screen, and the error shown in the stack-trace dialog.
Track
- BaseTrackModel — Holds the UI state of a track that is shown in a view, with a reference to its track configuration and the displays drawing it.
View
- BaseViewModel — Holds a view's id, the name shown in its header, its width and whether it is minimized. Every view composes this model.
- BreakpointSplitView — Stacks linear genome views of the regions on each side of a structural-variant breakpoint, and draws the reads and variant calls that join them across the panels.
- CircularView — Lays one or more assemblies' chromosomes around a circle, and draws structural variants as chords and synteny alignments as ribbons across it.
- DotplotView — Plots the alignments between two assemblies, one on each axis, as a dot plot.
- LinearGenomeView — Stacks tracks under a horizontal axis of one or more genomic regions laid end to end, which the user scrolls, zooms and searches.
- LinearSyntenyView — Stacks a linear genome view per genome, and draws the synteny tracks between adjacent rows as ribbons joining the aligned regions.
- SpreadsheetView — Shows a VCF, BED, BEDPE or STAR-Fusion file as a filterable table whose rows open their genomic location in a new view.
- SvInspectorView — Shows a file of structural variants as a table beside a circular view that draws them as chords. The model holds a SpreadsheetView and a CircularView side by side, without extending either.
Widget
- AddTrackModel — Holds the Add track widget's form: the data file and its index, the adapter and track type guessed from them, the track name and assembly, and the URL list for adding several tracks at once.
- BaseFeatureWidget — The feature-details panel. featureData is the clicked feature with the track's and the session's formatDetails callbacks applied, derived on read from the raw feature the widget was opened with, so…
- ConfigurationEditorWidget — Widget for editing a config model's slots in a form: holds the target configuration and debounce-saves edits back to the session.
- GridBookmarkWidgetModel — Lists the session's highlights in a table, where the user imports them and recolors or removes the selected ones.
- HierarchicalTrackSelectorWidget — Lists a view's available tracks as a tree of categories, with a filter box, favorites and recently used tracks, and a group for each connection.
- MafSequenceWidget — Widget showing multiple-alignment (MAF) sequence for a set of samples over the connected view's regions, with per-row hover highlight state.
- PluginStoreWidget — Widget backing the plugin store: holds the text and tag filters applied to the installable plugin list and the view it was opened from.
- ScoreAxisWidget — Drawer widget editing one display's value scale, its encoding.y.
- SequenceFeatureDetails — User preferences for the sequence readout under a feature's details, seeded from and written straight back to localStorage.
- SyntenyFeatureWidget — The feature-details widget a synteny feature opens, which is BaseFeatureWidget plus the band that was clicked.
- UcscResultsWidget — The hit table for one UCSC BLAT or in-silico PCR query. The features are the same ones the result track was built from, so the list and the track can't disagree.
- VariantFeatureWidget — Feature-details widget for a VCF variant, extending the base feature widget with variant-specific fields such as genotypes and INFO.