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>() | |
lanePinslanePins: types.frozen<readonly LanePin[] | undefined>() | the reader's pins: a lane's contig, or a block on it, and its orientation on a contig against the anchor it was set under |
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> | |
renderOriginPxnumber | the view's offsetPx the stack was last laid out against |
laneTransitionsMap<string, LaneTransition> | |
laneMotionClockMsnumber | |
heldLaneOrderHeldLaneOrder | undefined | the structure order graph haplotype lanes stack by while nothing pins one, with the window and lane selection it was worked out on |
laneMotionHalfwayReadonlySet<string> | |
laneDragPxReadonlyMap<string, number> |
24 inherited volatiles from 7 models
From LodTierInfoMixin: adapterHeaderRead
From LegendMixin: dismissedLegendSections
From KeyedFetchMixin: loadedFetchKey
From FetchMixin: activeSignal, fetchGeneration, reloadCounter, statusWindow, error, statusMessage, statusProgress, fetchCanceled, fetchRotation
From RenderLifecycleMixin: canvasDrawn, paintCount, currentRenderingBackend, renderTick, autorunsInstalled, renderError, offScreen
From RegionTooLargeMixin: forceLoadTrack, byteEstimate, gateMeasuredViewportKey
From TrackHeightMixin: scrollTop, hostHeight
Getters
| Member | Description |
|---|---|
declaredLanesDeclaredLane[] | undefined | |
starAnchorstring | undefined | |
lgvLinearGenomeView | |
featuresFeature[] | undefined | undefined while the view's anchor differs from the fetch's |
featureOpsAlignmentOpsById | |
windowDeletionsreadonly WindowDeletion[] | the deletions a record states across the whole fetched window, for a lane the window shows none of |
hoveredGroupKeystring | undefined | |
resolutionLodMode | |
ribbonColorstring | |
laneChoicereadonly string[] | undefined | rows.kept as a choice: undefined while it names no lane |
ribbonColorFieldstring | undefined | |
ribbonColorDomainstring[] | |
ribbonPaintSyntenyColorPaint | |
hideUnlabelledboolean | |
interpolate"bump" | "linear" | The curve every ribbon side takes, ribbons.mark.interpolate. |
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 | |
geneColorFieldstring | undefined | undefined while encoding.color.value paints |
geneSolidColorstring | undefined | the constant encoding.color.value holds, undefined for none or a jexl: one |
hasLodCapableAdapterboolean | |
lodTierLodTier | read off the settled zoom, so a passing gesture refetches nothing |
liveLodTierLodTier | |
viewSignaturestring | undefined | |
groupsMultiWayGroup[] | |
| laneIndels | each lane's holes and stated changes against the anchor, 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 |
| laneOpenings | each lane's holes, one per deletion laneIndels opens |
laneChanges(assemblyName: string, refName: string) => readonly LaneChange[] | each lane's deletions, insertions and inversions as its records state them, for the header |
ribbonColorAttributesstring[] | |
ribbonAttributeRangesRecord<string, AttributeRange> | |
geneColorSlotsHeldSlots | undefined | The slots an ordinal gene color deals its values into. |
dealtGeneColorSlotsHeldSlots | undefined | geneColorSlots once every value the boxes and lane genes show is dealt as one batch, so the two take colors apart whichever lands first |
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 |
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 |
laneFetchKinds{ lanePairs: boolean; laneRows: boolean; } | the fetches beyond the anchor's that its records call for |
domainstring[] | rows.sort in each placed lane's own spelling, so an order a config wrote with an alias merges with one a drag writes |
configuredLanesstring[] | the track's assemblies beside the anchor for a source that declares the lanes itself, 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 |
anchorAssemblyAssembly | undefined | |
anchorLocStringstring | |
declaredLaneLabelsMap<string, string> | keyed by laneKey |
rowLabelsMap<string, string> | rows.labels, 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 |
pinsInForceLanePin[] | the pins that hold under the anchor, each naming its lane as rowAssemblies spells it |
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 | the bp the canvas spans: a lane's bpPerPx is this times its rung over canvasWidthPx, so the two read one width or every lane but the anchor is scaled against a box it doesn't fill |
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 | |
stackGeometryLaneGeometry | every lane's band, the anchor's first |
scrollContentHeightnumber | |
laneGeneTracksMap<string, AnyTrackConfig> | keyed by each lane's own spelling, not by laneKey |
laneGeneTrackEntriesMap<string, TrackConfigEntry> | each lane's gene track config as a hydrated track reads it, so a frozen entry's displayDefaults and retired display types count |
laneGeneAdaptersMap<string, Record<string, unknown>> | |
scrollViewportHeightnumber | |
dragOffsetPxnumber | the px the view has scrolled since the stack was laid out |
anchorReversedboolean | |
anchorStageAnchorStage | the live view, laid out against renderOriginPx, as the lanes draw against it |
anchorSpansMap<string, Span> | the anchor placements in stack px, relative to renderOriginPx |
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 | has 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, over the reach the anchor's rule draws |
| 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 every lane, over the settled window, or the anchor lane alone where every lane's values are too many to list |
colorScalesColorScale[] | |
legendRightnumber | |
laneLayerPlacementsLaneLayerPlacement[] | 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 the way the mark display reads its colors |
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 |
67 inherited getters from 11 models
From LodTierInfoMixin: adapterHeader, lodTierInfo
From ColorWritesMixin: writtenColor
From ParkedColorMixin: parkedColor
From LegendMixin: showLegend, legendSpec, hasLegendKey
From GlobalFetchMixin: host, canvasWidthPx, staticBlockSignature, dynamicBlockSignature, viewportEmpty, canRender, rendersCanvas, paintInert, svgReady, displayPhase
From KeyedFetchMixin: currentFetchKey, dataCurrent
From FetchMixin: isLoading, isLoadingOrCanceled, fetchInert, awaitingPrerequisite, settingsFetchInputs
From RenderLifecycleMixin: paintSuperseded, painted
From RegionTooLargeMixin: gateEnabled, byteGateAdapterConfig, configuredFetchSizeLimit, densityTooLarge, byteGateAdapterPath, adapterFetchSizeLimit, configForceLoad, gateViewportSpanBp, gateViewport, aboveForceLoadFloor, gateExempt, estimatedFetchBytes, gateMeasurementStale, gateByteLimit, gateActive, densityGateActive, tooLargeStatus, regionTooLarge, regionTooLargeReason, zoomCanReleaseGate, gateSkipsMeasuredViewport
From TrackHeightMixin: configuredHeight, allottedHeight, height, resizing, scrollableHeight
From BaseDisplay: parentTrack, RenderingComponent, DisplayBlurb, adapterConfig, isMinimized, featureNoun, featureWidgetType, liveNotices, plotKeys, plot, configNotices, notices, cornerNotices, plotExamples, configDocsUrl
Methods
| Member | Description |
|---|---|
laneKey(assemblyName: string) => string | the canonical name, so two spellings of one assembly share a key |
laneSpellings(assemblyName: string) => string[] | assemblyName and every alias the session holds it under |
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 | |
anchorStageAt(originPx: number, bpPerPx: number) => AnchorStage | the view at bpPerPx, laid out against originPx, as the lanes decide against it |
| anchorAbsXAt | each group's viewport-cut centre, in view px at bpPerPx before the scroll offset |
| laneFrameOf | undefined once the pivot is off the displayed regions |
| laneDecisionsAt | for the viewport at originPx and bpPerPx: which group is the pivot and what the hold test counts are judged in it. A lane in frozen keeps its frozen decision |
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[] |
10 inherited methods from 4 models
From ParkedColorMixin: parkedColorOf
From LegendMixin: colorScalesIn, legendSpecIn
From RegionTooLargeMixin: resolvedByteLimit, gateFetchState
From BaseDisplay: renderingProps, configProblemsOf, liftPlot, plotProblems, plotWrites
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 | |
setSelectedLanes(names: readonly string[] | undefined) => void | writes rows.kept; undefined restores configuredLanes, or every lane |
setRibbonColorField(field: string | undefined) => void | |
setDomain(domain: string[]) => void | takes the whole pinned order, empty meaning densest-first; merge a partial one with mergeDomain first |
setRibbonColorDomain(domain: string[]) => void | |
setHideUnlabelled(flag: boolean) => void | |
setInterpolate(interpolate: "bump" | "linear") => void | |
setShowLaneTicks(flag: boolean) => void | |
setSplitStrands(flag: boolean) => void | |
setInlineLaneNames(flag: boolean) => void | |
setShowGeneLabels(flag: boolean) => void | |
setGeneTextField(field: string) => void | |
setResolution(mode: LodMode) => void | |
holdLaneOrder(regions: FetchRegion[]) => void | runs when the anchor fetch for regions completes. Haplotype lanes read off a graph stack by structure while no order is pinned, worked out again only once a fetch leaves the window it was worked out on or the lane selection changes, so panning never reshuffles the stack |
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 | 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 lanes are laid out against; the same origin and decisions write nothing |
restampOrigin() => void | lays the lanes out against where the view is now; a lane's position does not depend on the origin, only what the stack clips to does |
advanceAnimation(nowMs: number) => void | |
endAnimation() => void | |
setRibbonColorValue(value: string | undefined) => void | Paint every ribbon value, undefined returning to the strand colors. |
openRibbonSolidColorDialog() => void | the picker the ribbon Color by's Solid color... opens |
openSolidColorDialog() => void | the picker the gene Color by's Solid color... opens |
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 |
39 inherited actions from 10 models
From LodTierInfoMixin: setAdapterHeader
From ColorWritesMixin: colorByField, setColorValue, pickDefaultColor, pickSolidColor
From ParkedColorMixin: parkColor
From LegendMixin: setShowLegend, dismissLegendSection
From KeyedFetchMixin: commitFetchResult, reload
From FetchMixin: setError, setStatusMessage, stopActiveFetch, openStatusStream, cancelFetch, cancelFetchByUser, beforeDestroy, beginFetch, endFetch, runFetch
From RenderLifecycleMixin: markCanvasDrawn, resetCanvasDrawn, stopRenderingBackend, renderNow, setOffScreen, setRenderError, attachRenderingBackend
From RegionTooLargeMixin: clearByteEstimate, clearGateMeasurements, setForceLoadTrack, commitFetchBytes, forceLoad
From TrackHeightMixin: setScrollTop, setHostHeight, setHeight, resizeHeight, expandToContentHeight