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, which follows the top hit until the user pins one, 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' gives each source a row of its own, 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 is supplied by the user 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 its own threshold: MAF's summary bars.
- ColorWritesMixin — The writes a display's color object 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).
- 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 own field, hideGroup and showAllGroups writing them, the…
- 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…
- 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.
- 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 — Not a cross-cutting mixin any more: ScoreScaleMixin is its one composer, and a display takes the axis by taking that.
- ScoreScaleMixin — Value scale, written in scales.y. valueScaleSchema / scalesSchema.
- 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 color object and palette, the opacity object and the…
- 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.
- 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 — The 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, aggregate, resolution and the line/gap settings.
- WiggleScoreConfigMixin — The score-plot config every display with a score axis shares: the axis and its guides (ScoreScaleMixin). A display plotting one configured field composes YFieldConfigMixin, which adds the y slot.
- WorkspaceLayoutMixin — The whole workspace as one MST tree:
- YFieldConfigMixin — WiggleScoreConfigMixin plus the y slot, for a display that plots one configured feature field and so declares yFieldConfigSchemaFields: 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 tabular file, such as a VCF, BED or CSV, 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, scales.y. The display is a safe reference, so hiding its track or closing its view empties it rather than leaving the widget writing to a dead node.
- 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 the click landed in.
- 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.