MultiWaySyntenyDisplay
Auto-generated from the @jbrowse/mobx-state-tree model in the source — see the developer guide for concepts. Provided by the linear-comparative-view plugin. View source.
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.
The configuration slots for this model are documented on its config schema page.
Each section ends with the members a composed model contributes, linked to the page that documents them.
Properties
| Member | Description |
|---|---|
typetype: types.literal('MultiWaySyntenyDisplay') | |
configurationconfiguration: ConfigurationReference(configSchema) | |
hiddenLaneNames: types.frozen<readonly string[] | undefined>() | the lanes a reader hid from the lane menu, by assembly name; the lanes chosen are rows.kept |
frozenLanesfrozenLanes: types.frozen<FrozenLanes | undefined>() |
1 inherited property from one model
From BaseDisplay: id
Volatiles
| Member | Description |
|---|---|
| fetchedFeatures | |
seenAttributeRangesRecord<string, AttributeRange> | |
laneGenesLaneFetchState<HeldLaneGenes> | |
laneDescriptionsMap<string, AssemblyDescription> | |
describedLanesSet<string> | |
lanesBeingDescribedSet<string> | |
releasedLanesSet<string> | |
laneLinksLaneFetchState<HeldLaneLinks> | per adjacent mate-lane pair, at the lanes' own coordinates |
laneGroupsLaneFetchState<HeldLaneGroups> | per mate lane, a gene table's rows on the lane's own window |
laneLayerDataLaneFetchState<HeldLaneLayer> | |
hoverTargetHoverTarget | undefined | |
clickedTargetRibbonRef | undefined | |
laneDecisionsMap<string, LaneDecision | undefined> | |
pinnedLanesMap<string, LanePin> | |
laneFlipPinsByAnchorMap<string, ReadonlyMap<string, LaneFlipPin>> | |
renderOriginPxnumber | the view's offsetPx the stack was last laid out against |
laneTransitionsMap<string, LaneTransition> | |
laneMotionClockMsnumber | |
laneMotionHalfwayReadonlySet<string> | |
laneDragPxReadonlyMap<string, number> |
24 inherited volatiles from 8 models
From BaseDisplay: error, statusMessage, statusProgress
From TrackHeightMixin: scrollTop, hostHeight
From RegionTooLargeMixin: forceLoadTrack, byteEstimate, gateMeasuredViewportKey
From RenderLifecycleMixin: canvasDrawn, paintCount, currentRenderingBackend, renderTick, autorunsInstalled, renderError, offScreen
From KeyedFetchMixin: loadedFetchKey
From FetchMixin: activeSignal, fetchGeneration, reloadCounter, statusWindow, fetchCanceled, fetchRotation
Getters
| Member | Description |
|---|---|
declaredLanesDeclaredLane[] | undefined | |
starAnchorstring | undefined | |
| lgv | |
featuresFeature[] | undefined | undefined while the view's anchor differs from the fetch's |
featureOpsAlignmentOpsById | |
hoveredGroupKeystring | undefined | |
lodModeLodMode | |
hasLodCapableAdapterboolean | |
lodTierLodTier | read off the settled zoom, so a passing gesture refetches nothing |
liveLodTierLodTier | |
canvasWidthnumber | |
viewSignaturestring | undefined | |
groupsMultiWayGroup[] | |
| laneOpenings | each lane's holes, read off every fetched group rather than the viewport's, so one appears once both its pieces arrive and not as the second scrolls in |
featuresAreNamelessboolean | |
ribbonColorstring | |
domainstring[] | |
laneChoicereadonly string[] | undefined | rows.kept as a choice: undefined while it names no lane |
ribbonColorFieldstring | |
ribbonColorAttributesstring[] | |
ribbonColorDomainstring[] | |
ribbonPaintSyntenyColorPaint | |
ribbonAttributeRangesRecord<string, AttributeRange> | |
hideUnlabelledboolean | |
drawCurvesboolean | |
bridgeSkippedLanesboolean | |
showLaneTicksboolean | |
splitStrandsboolean | |
showGeneLabelsboolean | |
geneTextFieldstring | a field, a jexl expression, or empty for the name-else-ID default |
inlineLaneNamesboolean | |
geneLabelPxnumber | |
laneLayerHeightsnumber[] | |
layerPxnumber | |
geneColorSettingsGeneColorSettings | |
geneColorEncodingstring | FieldColorEncoding | undefined | |
geneColorSlotsHeldSlots | undefined | The slots a categorical gene color deals its values into. |
geneColorFieldstring | '' while color.value paints |
geneSolidColorstring | undefined | the constant color.value holds, undefined for none or a jexl: one |
boxColorsGeneColors | |
laneGeneColorsReadonlyMap<string, GeneColors> | |
selectedFeatureIdstring | undefined | |
anchorAssemblyNamestring | |
adapterCapabilitiesreadonly string[] | |
adapterDeclaresLanesboolean | |
adapterPairsOnAnchorboolean | |
adapterBatchesLanePairsboolean | the adapter answers a window's lanePairs in one call |
sessionTracksByIdReadonlyMap<string, AnyTrackConfig> | every session track, connections' included |
adjacentLanesAlignDirectlyboolean | |
rowsVsAnchorboolean | a source that names an anchor and answers no lane pairs states each lane against the anchor alone, so each gutter draws its lower lane against the anchor |
pinnedLaneFlipsReadonlyMap<string, LaneFlipPin> | |
configuredLanesstring[] | the track's assemblies beside the anchor for a source that declares its own lanes, empty for every other source |
laneSelectionreadonly string[] | undefined | undefined means every lane, and a hidden lane stays in force |
readonly string[] | |
fetchLaneSelectionstring[] | undefined | undefined unless the adapter declares its lanes, and lists each held genome under every name the session knows it by |
| anchorAssembly | |
anchorLocStringstring | |
declaredLaneLabelsMap<string, string> | keyed by laneKey |
laneUniverseLaneChoice[] | the anchor is never a lane |
rowAssembliesstring[] | a paralogy mate on the anchor assembly draws on its axis, not as a row |
laneStructureOrderstring[] | the drawn lanes chained by their deletions and insertions against the anchor, for "Order lanes by structure"; empty for a gene table |
rowOfLaneReadonlyMap<string, string> | each drawn lane's row name by its canonical name, for data keyed by the records' spelling of a lane |
lanesToDescribestring[] | |
laneAssemblyConfsMap<string, Record<string, unknown>> | |
canReanchorboolean | |
visibleBpSpannumber | |
visibleGroupWindows{ group: MultiWayGroup; start: number; end: number; }[] | each with the hull, in anchor bp, of the settled blocks it meets |
visibleGroupsMultiWayGroup[] | uncut at the viewport edge, cut only at a displayed region's end |
fitGroupsMultiWayGroup[] | the visible groups cut to the viewport, which each lane's frame fits |
tickIntervalBpnumber | |
scrollContentHeightnumber | |
laneGeneTracksMap<string, AnyTrackConfig> | keyed by each lane's own spelling, not by laneKey |
laneGeneAdaptersMap<string, Record<string, unknown>> | |
scrollViewportHeightnumber | |
anchorPlacementsMap<string, AxisPlacement> | in view px before the scroll offset; a flipped view gives x1 > x2 |
dragOffsetPxnumber | the px the view has scrolled since the stack was laid out |
anchorReversedboolean | |
anchorSpansMap<string, Span> | the anchor placements in stack px, relative to renderOriginPx |
anchorAbsXMap<string, { coord: AnchorCoord; x: number; }> | each group's viewport-cut centre, in view px before the scroll offset |
rowFramesMap<string, RowFrame | undefined> | |
lanesFrozenboolean | true only while the view, on the anchor the lanes froze on, still shows part of the window they froze on |
frozenDecisionsReadonlyMap<string, LaneDecision> | empty unless lanesFrozen |
anchorFetchRegionsFetchRegion[] | |
laneWindowsReadonlyMap<string, LaneWindow> | what each lane's dependent fetches ask for: the anchor's merged blocks, and each held, framed lane's window |
lanePairsLanePair[] | |
anchorlessGroupsPlacedGroup[] | |
laneGenesFetchSpecsLaneGenesFetchSpec[] | |
laneGroupsFetchSpecsLaneGroupsFetchSpec[] | a gene table read on each mate lane's window, for the rows the anchor lacks; a star source indexes its anchor alone, so it has none to give |
laneLinksFetchSpecsLaneLinksFetchSpec[] | one spec per adjacent mate-lane pair whose gutter is on screen or within a screen of it |
laneLayerTemplates(Record<string, unknown> | undefined)[] | |
laneLayerSourcesMap<string, LaneLayerSource>[] | |
laneLayerReads{ specs: LaneLayerFetchSpec[]; pastCap: boolean[]; } | pastCap flags a layer that skipped a lane past LANE_TEMPLATE_MAX_BP |
laneLayersFetchSpecsLaneLayerFetchSpec[] | |
laneStackLaneStack | carries no lane genes, so a gene commit re-uploads no ribbon or tick |
laneMapsReadonlyMap<number, LaneMap> | |
laneHeaderRowsLaneHeaderRow[] | |
pairLinksReadonlyMap<string, LaneLinks> | the alignments the source answered for each adjacent mate-lane pair, keyed upper|lower; a pair it has not answered draws nothing |
loadingGutterYsnumber[] | the centre, in stack px, of each gutter whose lane pair was asked for and has not landed |
ribbonGeometryRibbonGeometry | in the stack's own px |
tickGeometryTickGeometry | |
bandCellMultiWayCell | |
anchorTickXsnumber[] | px of the anchor's ticks across the displayed regions |
| laneCells | boxes before glyphs, so an in-order hit test finds a box over a gene |
laneGlyphCellsMap<string, MultiWayCell> | |
laneBoxNamesMap<string, NamedSpan[]> | |
laneGeneGroupsMap<string, Map<string, string>> | per lane, each drawn gene's group, keyed by feature id |
pinnedLabelGroupsReadonlySet<string> | |
geneTextOf(feature: Feature) => string | undefined | |
geneColorScalesColorScale[] | keys the anchor lane alone, over the settled window |
colorScalesColorScale[] | |
legendRightnumber | |
| laneLayerPlacements | each payload's region placed in its lane's own frame; a payload whose lane or contig no longer draws is left out |
laneLayerDomains([number, number] | undefined)[] | undefined for a layer no drawn lane holds values for yet |
laneLayerColorsColorSource[][] | where each lane layer's marks take their color from, one per mark, read as the mark display reads its own |
selectedGlyphHitsGlyphHit[][] | the selected feature's glyph hits per row, which a pan leaves alone |
laneLayerColorScales(MarkColorScale | undefined)[][] | the ramp or threshold each lane layer's bars paint numbers through, one per mark and undefined for a mark colored another way; a ramp's domain covers the values of every drawn lane, as laneLayerDomains does for y, so one value takes one color in all of them |
laneLayerTitles{ key: string; text: string; top: number; }[] | |
laneLayerCells{ cells: Map<string, MultiWayCell>; layers: BarLayer[]; } | |
namedCellsReadonlyMap<string, MultiWayCell> | |
namedLayersMultiWayLayer[] | back to front, bands first to cover the view's gridlines |
hoveredFeatureIdnumber | |
clickedFeatureIdnumber | |
hoverInkHighlightRect[] | |
selectionInkHighlightRect[] | |
highlightStyleHighlightStyle | |
groundPaletteJBrowsePalette | |
outlineCellsReadonlyMap<string, MultiWayCell> | |
renderCellsReadonlyMap<number, MultiWayCell> | keyed by sharedBackendKey |
renderLayersReadonlyMap<number, MultiWayLayer> | back to front, each outline immediately over the gutter it traces |
ribbonRegionsReadonlyMap<number, SyntenyInstanceData> | in draw order |
ribbonRecordsReadonlyMap<number, ReadonlyMap<number, Feature>> | ribbonGeometry.records keyed by sharedBackendKey |
renderStateMultiWayRenderState | |
renderBlocksRenderBlock[] | |
ribbonPickStateSyntenyRenderState | |
animatingboolean | |
laneFetches{ state: LaneFetchState<HeldLane>; specs: LaneFetchSpec[]; }[] | |
awaitingDependentDataboolean | |
dataSupersededboolean | |
hoveredFeatureFeature | undefined |
61 inherited getters from 9 models
From BaseDisplay: parentTrack, RenderingComponent, DisplayBlurb, adapterConfig, isMinimized, featureNoun, featureWidgetType, plotKeys, plot, plotExamples, configDocsUrl
From TrackHeightMixin: configuredHeight, allottedHeight, height, resizing, scrollableHeight
From GlobalFetchMixin: host, staticBlockSignature, dynamicBlockSignature, viewportEmpty, canRender, rendersCanvas, paintInert, svgReady, displayPhase
From RegionTooLargeMixin: gateEnabled, byteGateAdapterConfig, configuredFetchSizeLimit, densityTooLarge, byteGateAdapterPath, adapterFetchSizeLimit, configForceLoad, gateViewportSpanBp, gateViewport, aboveForceLoadFloor, gateExempt, estimatedFetchBytes, gateMeasurementStale, gateByteLimit, gateActive, densityGateActive, tooLargeStatus, regionTooLarge, regionTooLargeReason, zoomCanReleaseGate, gateSkipsMeasuredViewport
From RenderLifecycleMixin: paintSuperseded, painted
From KeyedFetchMixin: currentFetchKey, dataCurrent
From FetchMixin: isLoading, isLoadingOrCanceled, fetchInert, awaitingPrerequisite, settingsFetchInputs
From LegendMixin: showLegend, legendTop, legendSpec, hasLegendKey
Methods
| Member | Description |
|---|---|
laneKey(assemblyName: string) => string | the canonical name, so two spellings of one assembly share a key |
namedLaneTracks(entries: readonly string[], key: string) => AnyTrackConfig[] | the tracks entries names for the lane keyed key, best first: plain ids, then {assembly} entries, each in entry order |
rpcProps() => { haplotypes: string[] | undefined; } | reads only user-controlled state, never a fetch's output, or it loops |
holdsAssembly(assemblyName: string) => boolean | |
holdsTemporarily(assemblyName: string) => boolean | |
laneLabel(assemblyName: string) => string | |
| laneFrameOf | undefined once the pivot is off the displayed regions |
| laneDecisionsAt | in the px space anchored at origin; a lane in frozen keeps its own |
bandCellOn(page: string) => MultiWayCell | |
| laneGeneLabels | placed in the stack's px |
coloredLayersOf(held: HeldLaneLayer) => EncodedChannels[] | a held payload's layers, each colored as its mark declares |
pickRibbonAt(x: number, y: number) => SyntenyPickResult | undefined | x and y are container-relative; the topmost ribbon wins |
slidableLaneAt(y: number) => string | undefined | y is container-relative; undefined unless the lanes are frozen |
hitTest(x: number, y: number) => HoverTarget | undefined | x and y are container-relative |
() => MenuItem[] |
9 inherited methods from 3 models
From BaseDisplay: renderingProps, liftPlot, plotProblems, plotWrites
From RegionTooLargeMixin: resolvedByteLimit, gateFetchState
From LegendMixin: svgLegendWidth, colorScalesIn, legendSpecIn
Actions
| Member | Description |
|---|---|
| setFeatures | |
beginDescribingLanes(names: string[]) => void | |
| endDescribingLanes | |
forgetUndescribedLanes() => void | |
| setLaneGenes | specs holds every lane the run was asked for, and anchor the anchor the specs were built under |
| setLaneLayerData | |
| setLaneLinks | |
| setLaneGroups | |
setDomain(domain: string[]) => void | takes the whole pinned order, empty meaning densest-first; merge a partial one with mergeDomain first |
setSelectedLanes(names: readonly string[] | undefined) => void | writes rows.kept; undefined restores configuredLanes, or every lane |
setBridgeSkippedLanes(flag: boolean) => void | |
setRibbonColorField(field: string) => void | |
setRibbonColorDomain(domain: string[]) => void | |
setHideUnlabelled(flag: boolean) => void | |
setDrawCurves(flag: boolean) => void | |
setShowLaneTicks(flag: boolean) => void | |
setSplitStrands(flag: boolean) => void | |
setInlineLaneNames(flag: boolean) => void | |
setShowGeneLabels(flag: boolean) => void | |
setGeneTextField(field: string) => void | |
setLodMode(mode: LodMode) => void | |
chooseLanes(names: string[]) => void | |
hideLane(assemblyName: string) => void | |
showLane(assemblyName: string) => void | |
() => void | |
openLaneSelection() => void | |
setLanesFrozen(flag: boolean) => void | |
realignLane(assemblyName: string) => void | |
nudgeLane(assemblyName: string, dxPx: number) => void | slides a mate lane dxPx screen px, only while the lanes are frozen |
setLaneDragPx(assemblyName: string, dxPx: number) => void | |
endLaneDrag(assemblyName: string) => void | |
pinLane(assemblyName: string, pin: LanePin | undefined) => void | a contig, or a block on it; undefined lets the lane choose again |
flipLane(assemblyName: string) => void | |
unpinLaneFlip(assemblyName: string) => void | |
| setLaneFrames | originPx is the view offset the decisions' px space is anchored at |
advanceAnimation(nowMs: number) => void | |
endAnimation() => void | |
setGeneColorBy(field: string) => void | '' paints by color.value |
setGeneSolidColor(color: string | undefined) => void | Paints the constant, a field staying under scale: 'none' for the way back; undefined returns to the config's own color. |
pickDefaultGeneColor() => void | Color by's Default: no field and no constant, so the config's own color paints, a jexl: expression included |
pickGeneSolidColor() => void | Color by's Solid color...: paints the constant kept beside a field, where there is one, and opens the picker |
selectFeature(feature: Feature) => void | |
openInNewView(assemblyName: string, loc: string) => void | |
reanchor(assemblyName: string, loc: string) => void | |
setHoverTarget(target: HoverTarget | undefined) => void | |
startRenderingBackend(backend: MultiWayRenderingBackend) => void | |
setPointer(state?: MouseState | undefined) => void | |
clearHoveredFeature() => void | |
selectHovered() => void | |
| renderSvg |
34 inherited actions from 8 models
From BaseDisplay: setStatusMessage, setError, reload, applyDisplaySettings, applyPlot
From TrackHeightMixin: setScrollTop, setHostHeight, setHeight, resizeHeight, expandToContentHeight
From RegionTooLargeMixin: clearByteEstimate, clearGateMeasurements, setForceLoadTrack, commitFetchBytes, forceLoad
From RenderLifecycleMixin: markCanvasDrawn, resetCanvasDrawn, stopRenderingBackend, renderNow, setOffScreen, setRenderError, attachRenderingBackend
From KeyedFetchMixin: commitFetchResult
From FetchMixin: stopActiveFetch, openStatusStream, cancelFetch, cancelFetchByUser, beforeDestroy, beginFetch, endFetch, runFetch