# LinearAlignmentsDisplay

Auto-generated from the @jbrowse/mobx-state-tree model in the source — see the [developer guide](https://jbrowse.org/jb2/docs/developer_guide/) for concepts. Provided by the `alignments` plugin. [View source](https://github.com/GMOD/jbrowse-components/blob/main/plugins/alignments/src/LinearAlignmentsDisplay/model.ts).

## Example usage

The display goes in a track's `displays` array; here are three complete
`AlignmentsTrack` configs to paste into `tracks`.

Basic BAM, opened taller:

```js
{
  type: 'AlignmentsTrack',
  trackId: 'ngs_reads',
  name: 'NGS reads',
  assemblyNames: ['hg38'],
  adapter: { type: 'BamAdapter', uri: 'https://example.com/sample.bam' },
  displays: [
    {
      type: 'LinearAlignmentsDisplay',
      displayId: 'ngs_reads-LinearAlignmentsDisplay',
      height: 250,
    },
  ],
}
```

CRAM colored by CpG methylation (modBAM MM/ML tags):

```js
{
  type: 'AlignmentsTrack',
  trackId: 'methylation',
  name: 'Methylation',
  assemblyNames: ['hg38'],
  adapter: { type: 'CramAdapter', uri: 'https://example.com/sample.cram' },
  displays: [
    {
      type: 'LinearAlignmentsDisplay',
      displayId: 'methylation-LinearAlignmentsDisplay',
      baseColor: 'modifications',
      modifications: { unmodified: 'all' },
    },
  ],
}
```

Long reads with split/mate reads connected by arcs:

```js
{
  type: 'AlignmentsTrack',
  trackId: 'long_reads',
  name: 'Long reads',
  assemblyNames: ['hg38'],
  adapter: { type: 'BamAdapter', uri: 'https://example.com/longreads.bam' },
  displays: [
    {
      type: 'LinearAlignmentsDisplay',
      displayId: 'long_reads-LinearAlignmentsDisplay',
      height: 400,
      unit: 'chain',
      readConnections: 'arc',
    },
  ],
}
```

State model factory for LinearAlignmentsDisplay

The configuration slots for this model are documented on its [config schema page](../../config/linearalignmentsdisplay).

Each section ends with the members a composed model contributes, linked to the page that documents them.

## Properties

| Member | Description |
| --- | --- |
| **type**<br><code>type: types.literal('LinearAlignmentsDisplay')</code> |  |
| **configuration**<br><code>configuration: ConfigurationReference(configSchema)</code> |  |

1 inherited property from one model:

From [BaseDisplay](../basedisplay): [`id`](../basedisplay#property-id)


## Volatiles

| Member | Description |
| --- | --- |
| **featureIdUnderMouse**<br><code>string &#124; undefined</code> |  |
| **mouseoverExtraInformation**<br><code>TooltipPayload &#124; undefined</code> |  |
| **contextMenuFeature**<br><code>Feature &#124; undefined</code> |  |
| **collapsedGroups**<br><code>ObservableSet&lt;string&gt;</code> | Group keys whose pileup is collapsed to its coverage band, dropped when `groupKeySpace` moves (`dropGroupState`). |
| **groupMaxHeightOverrides**<br><code>ObservableMap&lt;string, number&gt;</code> | Per-group pileup height override in px, keyed by group key and dropped with `collapsedGroups`. Absent keys fall back to the display-wide `maxHeight`. |
| **fittedHeightPx**<br><code>number</code> | Fitted read pitch in px, written by the afterAttach autorun while `fitHeightToDisplay` is on; 0 until computed. A volatile rather than a getter because it breaks the cycle between `featureHeight` and the layout. |
| **highlightedChainReadIds**<br><code>string[]</code> | Read ids of the chain under the cursor — NOT chain ids; see `readIdsByChainName`, which is where they come from. |
| **hoveredJunction**<br><code>LaneJunction &#124; undefined</code> | The sashimi junction under the cursor, whose supporting reads the hover lights. |
| **overCigarItem**<br><code>boolean</code> |  |
| **hoverCoverageBand**<br><code>HoverCoverageBand &#124; undefined</code> | Screen-px coverage band of the section under a coverage/indicator hover; the tooltip's vertical hover bar lands on it. `undefined` when not hovering. |
| **hoveredArcHighlight**<br><code>ArcHighlight &#124; undefined</code> | The read-connection arc under the cursor, as the ink `ArcHoverOverlay` draws. A snapshot from the mousemove that found the arc, like its tooltip. |

25 inherited volatiles from 9 models:

From [BaseDisplay](../basedisplay): [`error`](../basedisplay#volatile-error), [`statusMessage`](../basedisplay#volatile-statusmessage), [`statusProgress`](../basedisplay#volatile-statusprogress)

From [TrackHeightMixin](../trackheightmixin): [`scrollTop`](../trackheightmixin#volatile-scrolltop), [`hostHeight`](../trackheightmixin#volatile-hostheight)

From [MultiRegionDisplayMixin](../multiregiondisplaymixin): [`loadedRegions`](../multiregiondisplaymixin#volatile-loadedregions)

From [RegionTooLargeMixin](../regiontoolargemixin): [`forceLoadTrack`](../regiontoolargemixin#volatile-forceloadtrack), [`byteEstimate`](../regiontoolargemixin#volatile-byteestimate), [`gateMeasuredViewportKey`](../regiontoolargemixin#volatile-gatemeasuredviewportkey)

From [RenderLifecycleMixin](../renderlifecyclemixin): [`canvasDrawn`](../renderlifecyclemixin#volatile-canvasdrawn), [`paintCount`](../renderlifecyclemixin#volatile-paintcount), [`currentRenderingBackend`](../renderlifecyclemixin#volatile-currentrenderingbackend), [`renderTick`](../renderlifecyclemixin#volatile-rendertick), [`autorunsInstalled`](../renderlifecyclemixin#volatile-autorunsinstalled), [`renderError`](../renderlifecyclemixin#volatile-rendererror), [`offScreen`](../renderlifecyclemixin#volatile-offscreen)

From [FetchMixin](../fetchmixin): [`activeSignal`](../fetchmixin#volatile-activesignal), [`fetchGeneration`](../fetchmixin#volatile-fetchgeneration), [`reloadCounter`](../fetchmixin#volatile-reloadcounter), [`statusWindow`](../fetchmixin#volatile-statuswindow), [`fetchCanceled`](../fetchmixin#volatile-fetchcanceled), [`fetchRotation`](../fetchmixin#volatile-fetchrotation)

From [ScoreScaleMixin](../scorescalemixin): [`unclippedQuantile`](../scorescalemixin#volatile-unclippedquantile)

From [LegendMixin](../legendmixin): [`dismissedLegendSections`](../legendmixin#volatile-dismissedlegendsections)

From [ContextMenuMixin](../contextmenumixin): [`contextMenuInfo`](../contextmenumixin#volatile-contextmenuinfo)


## Getters

| Member | Description |
| --- | --- |
| **unit**<br><code>"chain" &#124; "read"</code> |  |
| **showBezierConnections**<br><code>boolean</code> |  |
| **showCoverage**<br><code>boolean</code> |  |
| **showPileup**<br><code>boolean</code> |  |
| **coverageHeight**<br><code>number</code> |  |
| **coverageSnpMinFrequency**<br><code>number</code> |  |
| **showMismatches**<br><code>boolean</code> |  |
| **showInterbaseIndicators**<br><code>boolean</code> |  |
| **showInterchrom**<br><code>boolean</code> |  |
| **showOrdinaryPairs**<br><code>boolean</code> | Whether the band draws its ordinary pairs: the arcs' concordant ones (`isConcordantPairRead`, whose failure on a paired primary read is `filter.svSignal`'s discordant clause) and the cloud's modal-insert ones. Unset, arcs keep them and the cloud drops them. |
| **minInterchromSupport**<br><code>number</code> | Reads a translocation must gather, within one fragment length on both sides, before its connector ticks are drawn. See `clusteredInterchromSupport` — the count is over a window because a mate-pair breakpoint is not localized to a base. |
| **showLongRange**<br><code>boolean</code> |  |
| **readConnections**<br><code>"arc" &#124; "cloud" &#124; "off"</code> |  |
| **readConnectionsDown**<br><code>boolean</code> |  |
| **showSashimiArcs**<br><code>boolean</code> | Whether sashimi arcs draw: the slot, and the coverage band they hang off. |
| **sashimiArcsMode**<br><code>"auto" &#124; "down" &#124; "up"</code> |  |
| **minSashimiScore**<br><code>number</code> |  |
| **sashimiArcsHeight**<br><code>number</code> |  |
| **readConnectionsHeight**<br><code>number</code> |  |
| **showSoftClipping**<br><code>boolean</code> |  |
| **colorSetting**<br><code>AlignmentsColorSetting</code> |  |
| **colorEncoding**<br><code>string &#124; FieldColorEncoding &#124; undefined</code> | `colorSetting` as it paints, through the one resolver every display's color object goes through. |
| **colorLabels**<br><code>readonly string[]</code> | `color.labels` as written, read apart from `colorSetting`, which every color tier keys on, so renaming a key entry re-bakes no read. |
| **colorTitle**<br><code>string &#124; undefined</code> | `color.title` as written: unset keeps the key's own heading, `''` draws none. |
| **colorKeyTitle**<br><code>string &#124; undefined</code> | The key's heading: `color.title` as written, else its field preset's while the color paints through the preset, so `{ field: 'mapq' }` keys as "Mapping quality". Unset keeps the key's own heading. |
| **colorKeyDescending**<br><code>boolean &#124; undefined</code> | `color.descending` as written, else its field preset's while the color paints through the preset, so `{ field: 'mapq' }` keys 30+ first. Read apart from `colorSetting`, so turning the key round re-bakes no read. |
| **colorNotices**<br><code>string[]</code> | What the `color` object's slots say together that it cannot paint as written, which the corner notice lists. |
| **facetNotices**<br><code>string[]</code> | What `facet` names that `unit` cannot group by, which the corner notice lists. |
| **pinnedInsertSizeBand**<br><code>{ lower: number; upper: number; } &#124; undefined</code> | The short/long cut points `color.domain` pins under an insert-size field, undefined while the sampled band decides. Compared by value, so a color write that leaves the cut points alone relayouts nothing. |
| **modificationSettings**<br><code>ModificationColorBy</code> |  |
| **colorBy**<br><code>ReadColorBy</code> | The read fill `color` selects. |
| **colorField**<br><code>string</code> | The field the read fill paints by, `''` for the plain fill. |
| **arcColorField**<br><code>"insertSize" &#124; "insertSizeAndOrientation" &#124; "pairOrientation"</code> | The field the arcs and the read cloud paint: `arcColor`'s own, or the reads' where `arcColor` names none. |
| **baseLayer**<br><code>BaseLayer &#124; undefined</code> | The per-base layer `baseColor` selects, with the settings the modification fields read beside it; undefined while none is drawn. |
| **bodyColorScheme**<br><code>ColorSchemeType</code> | What the read body paints as: `colorBy`, or the modification layer's own pale strand tint while the fill is plain. |
| **readFilter**<br><code>ReadFilter</code> |  |
| **configuredFeatureHeight**<br><code>number</code> |  |
| **maxHeight**<br><code>number</code> |  |
| **showSashimiLabels**<br><code>boolean</code> | Whether to draw the supporting-read count on each sashimi arc. |
| **showNonCanonicalJunctions**<br><code>boolean</code> | Whether junctions with a non-canonical splice motif are dropped from the sashimi arcs. |
| **fadeLowFrequencyMismatches**<br><code>boolean</code> |  |
| **fadeLowQualityMismatches**<br><code>boolean</code> |  |
| **layoutOrder**<br><code>"length" &#124; "position" &#124; "spliced" &#124; "split" &#124; "svSignal"</code> | The whole-window row order: `sort`'s type, or `position` under a column sort, which lays the reads off its column out by start (a tier-2 relayout). |
| **facet**<br><code>Facet &#124; undefined</code> | The `facet` object as written, undefined while ungrouped. The worker partitions one fetch into a section per value of its field. |
| **readConnectionsLineWidth**<br><code>number</code> |  |
| **rpcDataMap**<br><code>ReadonlyMap&lt;number, GroupedAlignmentsResult&gt;</code> | Region index → grouped worker result. Ungrouped fetches store one group (key ''). |
| **view**<br><code>ModelInstanceTypeProps&lt;…&gt; &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; {…} &amp; { rubberbandClickMenuItems(clickOffset: BpOffset): MenuItem[]; highlightMenuItems(_highlight: HighlightType): MenuItem[]; } &amp; { flyTo: (centerBp: number, windowWidthBp: number) =&gt; void; flyToCenter(coord: number, refName: string, displayedRegionIndex?: number &#124; undefined): void; flyToFit(centerBp: number, fitWidthBp: number): void; } &amp; { afterCreate(): void; afterAttach(): void; } &amp; IStateTreeNode&lt;…&gt;</code> |  |
| **showLinkedReadLines**<br><code>boolean</code> | Whether the straight-line pass connects normal read pairs. Chain layout has its own pass for them. Neither pass reaches across regions; that is `bezierArcScope`'s `crossRegion`. |
| **bezierArcScope**<br><code>BezierArcScope</code> | What the SVG connection overlay draws — see `BezierArcScope`. Chain mode claims `crossRegion` even with the curved connectors off: only that pass joins a chain's ends across displayed regions. |
| **featureWidgetType**<br><code>{ type: string; id: string; }</code> |  |
| **selectedFeatureId**<br><code>string &#124; undefined</code> |  |
| **TooltipComponent**<br><code>LazyExoticComponent&lt;({ model, mouseState, }: { model: { mouseoverExtraInformation: TooltipPayload &#124; undefined; hoverCoverageBand: { topOffset: number; coverageHeight: number; } &#124; undefined; colorPalette: ColorPalette; showModifications: boolean; }; mouseState: MouseState &#124; undefined; }) =&gt; Element &#124; null&gt;</code> |  |
| **detectedModifications**<br><code>ReadonlyMap&lt;string, string&gt;</code> | Modification type code -> painted color, for every type the loaded reads declare. Off `rpcDataMap`, not the laid-out map, so a hidden group's types stay offered; the legend asks `presentModifications` instead. |
| **modificationsReady**<br><code>boolean</code> | Whether a fetch has landed, so an empty `detectedModifications` means these reads carry none. The modifications menu shows "Loading modifications..." until it turns true. |
| **detectedModificationTypes**<br><code>string[]</code> |  |
| **isFitting**<br><code>boolean</code> | Fit-to-display mode is on and a pitch has been computed (`fittedHeightPx > 0`). Both size getters read this gate. |
| **featureHeight**<br><code>number</code> | The read body height: the fitted pitch minus `featureSpacing` in fit mode, else `configuredFeatureHeight`, which is what editors that write the size read. |
| **featureSpacing**<br><code>number</code> | Derived from the read height, never stored: a 1px gap once there is room (pitch/height > 3), else flush. One rule covers the fixed presets and the fit squeeze. |
| **rowHeight**<br><code>number</code> | The per-row pitch: read body plus derived gap. Every "row N sits at N*pitch" computation reads it. |
| **sortColumn**<br><code>SortColumn &#124; undefined</code> | The column sort `sort` names, or undefined under a whole-window order. Normalizes the refName, since a spec can write an alias (`chr1` for `1`) that `sortLayout`'s gate would never match. A column type missing `refName` or `pos` reads as no sort. |
| **effectiveFacet**<br><code>Facet &#124; undefined</code> | The facet the fetch partitions by. Chain mode turns a per-read dimension into ungrouped without changing the slot, so the slot alone does not determine which sections come back. |
| **groupKeySpace**<br><code>string</code> | Identity of the key space the fetched group keys live in, and so of every collection this model keys by group key — see `groupKeySpaceOf`. |
| **prefersOffset**<br><code>boolean</code> | Whether the grouping will be HONORED, decidable from settings alone since chain mode drops a per-read dimension (`facetForUnit`). Positions the track label, which is placed before data arrives and must not jump afterwards. |
| **collapseGroupRows**<br><code>boolean</code> | Whether each group draws as one row, overlap depth carried by the tint layer — the collapse IN EFFECT. Reads `canCollapseGroupRows`, not the slot alone: a config default can be ticked where collapsing is inert. |
| **canCollapseGroupRows**<br><code>boolean</code> | Whether collapsing can take effect, so whether the "Show..." menu offers the toggle. Chain mode never collapses (`collapsesRows`). The menu omits the row rather than disabling it: a click would write a slot no getter reads. |
| **sortReadsBlockedReason**<br><code>string &#124; undefined</code> | Why an explicit read ordering cannot take effect, or `undefined`: one value carries both the gate and the copy naming the switch that brings it back. Chain layout takes no `sort`; its rows are chains. |
| **canSortReads**<br><code>boolean</code> | Whether an explicit read ordering can take effect. The track menu's "Sort by..." and the context menu's position-anchored sorts both read it. |
| **canSizeGroupHeights**<br><code>boolean</code> | Whether a single group's pileup height can be set on its own, offered by the label chip's expand/fit button and the per-group drag handles. Fit mode refuses: an override there opts a lane out of the fit and overflows the display. |
| **groupHeightOverrides**<br><code>ReadonlyMap&lt;string, number&gt;</code> | The per-lane height overrides IN EFFECT, not the set banked. Fit solves one pitch from every lane's full row count, so fit mode ignores the overrides without dropping them; returning to fixed restores them. |
| **coverageScaleType**<br><code>ScaleTypeCode</code> |  |
| **autoscaleRange**<br><code>[number, number] &#124; undefined</code> | The depth every SHOWN group spans, so stacked sections share a scale; hidden lanes are excluded. |
| **defaultScoreDomain**<br><code>[number &#124; undefined, number &#124; undefined]</code> | Depth has a floor of 0 while the axis reaches it, so an unpinned bottom stays there whatever a rule below it asks for; with `scales.y.zero` off it spans the depths in view. |
| **coverageDomain**<br><code>[number, number] &#124; undefined</code> | The autoscaled depth domain. Undefined until some region holds one. |
| **coverageDepthDomain**<br><code>[number, number] &#124; undefined</code> | The domain the coverage band draws against: `coverageDomain` with a log scale's floor pulled up to one read (see `coverageDepthDomain`). Every consumer reads this one — the y-axis ticks and both renderers' normalizers. |
| **coverageTicks**<br><code>YScaleTicks &#124; undefined</code> | The coverage band's own ladder (`computeCoverageTicks`), which `valueScales` hands the chrome in place of the mixin's. Takes the raw `scales.y.symlogConstant`, resolved from the same domain as `renderState`, so the labels sit on the bars. |
| **colorLegendCategories**<br><code>Set&lt;ReadColorCategory&gt;</code> | Read-color buckets present across the rendered reads, so the legend lists only relevant swatches. Empty while the legend is hidden, skipping the O(reads) scan. |
| **presentTagValues**<br><code>ReadonlySet&lt;string&gt; &#124; undefined</code> | The per-read values the CPU-baked schemes painted in the rendered reads (tag values, or mate refNames under chromosome painting). `undefined` for other schemes, and the legend then does not filter; the empty set means none are on screen. Gated on showLegend: O(reads). |
| **presentModifications**<br><code>ReadonlySet&lt;string&gt; &#124; undefined</code> | The modification types drawn in the rendered reads. Read from `modificationTypes`, which the worker builds from the drawn marks; `detectedModifications` includes hidden lanes. The legend's bisulfite branch runs before this filter, since the two differ there. `undefined` outside the modification schemes. |
| **colorPalette**<br><code>ColorPalette</code> | Derived from the session theme, so headless SVG export and RPC have it without a mounted component. |
| **declaredReadLabels**<br><code>DeclaredReadLabels</code> | `color.labels` against the read buckets and values it names, which every key row, hover and connection curve names a bucket by. |
| **arcLegendCategories**<br><code>Set&lt;ArcCategory&gt;</code> | The arc color slots plotted, mapped to legend buckets, for curved arcs and the read cloud alike: both paint `arcColorField`, which follows the reads only where they paint a pair field. Empty unless an overlay is on with the legend shown. |
| **overlapLegendKind**<br><code>"chain" &#124; "collapsed" &#124; undefined</code> | Which overlap mark the legend row names, undefined when none. The row needs the pass to be DRAWING (`shouldDrawOverlaps`, shared with both renderers) and some region to hold an interval, so no row explains an off-screen mark. O(regions). |
| **keySectionOrder**<br><code>((a: string, b: string) =&gt; number) &#124; undefined</code> | The sections' order, where the facet reads the field the reads are colored by: a key over one field lists it as the sections stack. Not over `mapq`, whose sections are bins and whose key is its bins or its raw values. |
| **arcLegendTitle**<br><code>"Arc colors" &#124; "Read cloud colors"</code> | Heading for the overlay's own color key, named after the overlay the reader is looking at: flat read-cloud lines are not arcs. |
| **sashimiDownKeysByGroup**<br><code>Map&lt;string, ReadonlySet&lt;string&gt;&gt;</code> | Per group, which junctions draw in the strip below coverage (by `junctionKey`): the one sashimi side decision, read by `sashimiDownArcLanes` to reserve the strip and `sashimiFeedsByGroup` to place each arc. refNames come from `loadedRegions`, keeping this a tier-1 (fetch) derivation. A region not yet loaded gets a unique key, so regions not proven to share a chromosome never pool onto one bp line. |
| **sashimiDownArcLanes**<br><code>Set&lt;string&gt;</code> | Group keys whose junctions land in the strip below coverage, i.e. the lanes that strip is reserved for. |
| **resizableBandBounds**<br><code>{ max: number; }</code> | The ceiling of the three bands stacked over the pileup, which the resize handles drag against and `bandHeights` draws within. Leaves the pileup a row. Reads `fitTargetHeight`, not `height`, which derives from the layout these heights feed in grow mode. |
| **bandHeights**<br><code>{ coverageHeight: number; readConnectionsHeight: number; sashimiArcsHeight: number; }</code> | The three band heights as every consumer draws them: the slots bound to `resizableBandBounds`, since a config or a session snapshot states a height no drag clamped. |
| **belowCoverageBandsSettings**<br><code>BelowCoverageBandsSettings</code> | The settings half of the below-coverage band geometry: whether each strip MAY be reserved and how tall, with neither data half answered. |
| **belowCoverageBandsInput**<br><code>{ hasArcs: boolean; hasSashimiDownArcs: boolean; showCoverage: boolean; coverageHeight: number; readConnections: "arc" &#124; "cloud" &#124; "off"; readConnectionsDown: boolean; showSashimiArcs: boolean; sashimiArcsHeight: number; readConnectionsHeight: number; }</code> | Inputs to `belowCoverageBandsGeometry`: the settings above plus whether ANY lane has arcs or a sashimi junction bound for its strip. Pooled over the lanes, so it is the ungrouped answer; the grouped stack's total is `totalBandOverhead`. |
| **totalBandOverhead**<br><code>number</code> | The height the below-coverage strips take from the fit-to-viewport row budget: the bands reserved in every lane, summed as `computeStackedSections` reserves them. Fetch-tier inputs only, so the layout reads it without a cycle. |
| **groupRowCaps**<br><code>ReadonlyMap&lt;string, RowCap&gt;</code> | The height overrides as row caps, keyed by lane — the layout's input. Keeps its identity while the caps compare equal, so a drag frame that moves no cap relays no read and re-bakes no color. |
| **fitDefaultCap**<br><code>RowCap</code> | The cap a lane on the shared fit budget lays out to: its slice of the viewport when grouped, the display-wide ceiling when not, with the policy that set it (a clipped lane reports it as `clippedBy`). Keeps its identity like `groupRowCaps`: its inputs move a px at a time, it moves a row at a time. Grow mode fits to the grow ceiling, fixed/fit to the drag-resizable slot; both read config slots, never the `height` getter, so grow's height → layout chain cannot cycle. |
| **resolvedFitDefaultCap**<br><code>RowCap</code> | `fitDefaultCap` recomputed, without the identity it keeps. |
| **fitRows**<br><code>number</code> | How many rows the uncollapsed groups need, laid out uncapped. Reads the overlaps and the ceiling only, so a fit drag leaves it alone. |
| **fitCeilingRows**<br><code>number</code> | The `maxHeight` ceiling in rows. While fitting it is clamped to the rows the pileup needs, so the quotient holds steady across drag frames and the layout does not re-place every row. |
| **laidOutByGroupUncolored**<br><code>LaidOutByGroup</code> | Per-group laid-out data: group key → (region index → laid-out data). Each group lays out independently under its own cap, so a dense group cannot starve the rest. Rows only; the per-read color arrays bake one computed later, in `laidOutByGroup`. |
| **framesChainStrand**<br><code>boolean</code> | Whether the unpaired chain-strand framing is on: the one answer the consensus pass, the bake (`readColorOpts`) and the key read. A boolean in its own computed, so a scheme switch that leaves the answer alone does not re-run the frame solve. |
| **laidOutByGroupFramed**<br><code>LaidOutByGroup</code> | The laid-out data with every chain's strand frame settled — see `applyChainStrandFrames`. |
| **laidOutByGroupColored**<br><code>ColoredByGroup</code> | Per-group laid-out data with the per-read color arrays baked on. Nothing in `readColorContext` moves a read's row, so a recolor keeps the layout memoized and `readYs` keeps its identity: the GPU upload memo checks `readYs` to rewrite only the read pass. Tag colors bake here, not in the worker, so tag coloring stays a main-thread tier-2 setting. |
| **laidOutByGroup**<br><code>ColoredByGroup</code> | `laidOutByGroupColored` with the straight-line pass's records spread on, so a curved-connector toggle re-spreads the lines and keeps both the layout and the colors. |
| **connectorsByGroup**<br><code>Map&lt;string, GroupConnectors&gt;</code> | Every read connector per group, from one walk of its reads: the straight-line pass's records and the pairs the connector mark draws. Reads the layout tier, so a band resize, height drag or recolor reuses them. |
| **groupLayoutContext**<br><code>{ order: GroupId[]; rawByGroup: ReadonlyMap&lt;string, ReadonlyMap&lt;number, ChainedPileupData&gt;&gt;; unit: "chain" &#124; "read"; sortColumn: SortColumn &#124; undefined; showSoftClipping: boolean; layoutOrder: "length" &#124; "position" &#124; "spliced" &#124; "split" &#124; "svSignal"; regions: ObservableMap&lt;number, LoadedRegion&gt;; collapseGroupRows: boolean; }</code> | The layout mechanics (grouping, sort, soft-clip) shared by the viewport fit pass and ad-hoc layouts such as `fittedFeatureHeight`. Excludes the fit policy (row caps) and the color inputs, which invalidate a later tier. |
| **readColorContext**<br><code>{ colorBy: ReadColorBy; bodyScheme: ColorSchemeType; readColorOpts: { chainMode: boolean; framesChainStrand: boolean; }; bakedScale: BakedColorScale &#124; undefined; }</code> | The per-read color bake's inputs, kept out of `groupLayoutContext` so a recolor never relays. |
| **bakedColorExtent**<br><code>NumericExtent &#124; undefined</code> | The span of a linear color field over the loaded reads, which a ramp's open ends stretch across: their extremes, or below a `domainQuantile` of 1 that quantile of each sign. Undefined while `domainMin` and `domainMax` both pin the ramp or another scale paints, so a region arriving rebakes nothing then. |
| **tagValueExtent**<br><code>NumericExtent &#124; undefined</code> | `linearFieldExtent` over the loaded reads |
| **baseQualitySpan**<br><code>QualitySpan</code> | The span of the base qualities drawn, and whether a base carries none. O(bases), so gated on showLegend like the category scan. |
| **bakedColorScale**<br><code>BakedColorScale &#124; undefined</code> | The scale a tag, attribute or mate reference bakes through, read by the per-read bake and the key alike. Undefined for the fields the category table paints. |
| **paintedRefNamePosition**<br><code>((refName: string) =&gt; number &#124; undefined) &#124; undefined</code> | Where a mate's reference sits in this assembly's own chromosome order, for chromosome painting — the same `Assembly.getRefNamePosition` the comparative displays paint by. From the ASSEMBLY, not the reads on screen, so a color never changes with what else is in view. Undefined under every other scheme and until the assembly initializes. |
| **readColorOpts**<br><code>{ chainMode: boolean; framesChainStrand: boolean; }</code> | The non-scheme inputs to read classification, with the framing as `framesChainStrand` answered it, so the bake frames exactly where the consensus pass ran and the key words it. |
| **groupOrder**<br><code>GroupId[]</code> | Group keys + labels in stacking order; one entry (key '') when ungrouped. Derived from the fetched `rpcDataMap`, not the layout pass, so group identity and order stay stable across relayouts. |
| **notices**<br><code>string[]</code> | What the `color`, `facet` and `scales.y` slots say that the display cannot draw as written, for the corner notice, and a facet field no fetched read answers. |
| **showsGroupLabels**<br><code>boolean</code> | Whether the stacked section labels and dividers are drawn. Not `isGrouped`: grouping that yields one section still reserves the label offset (`prefersOffset`) and wants its section named and collapsible. Reads the fetched sections, not `facet` — see `hasNamedGroups`. |
| **rawDataByGroup**<br><code>Map&lt;string, Map&lt;number, WorkerPileupData&gt;&gt;</code> | Raw (un-laid-out) data regrouped as group key → (region idx → data), insertion-ordered so the first key is the primary group; ungrouped is the single key `''`. Hidden lanes are already gone, like `groupOrder`, so a walk of every entry is a walk of every DRAWN lane. See `buildRawDataByGroup`. |
| **chainAttachment**<br><code>ChainedByGroup &#124; undefined</code> | `rawDataByGroup` with chain identity joined across every region and lane (`attachChainFields`), in chain mode only. The worker knows no chains, so toggling the mode is this getter changing, not a fetch. |
| **chainedByGroup**<br><code>ReadonlyMap&lt;string, ReadonlyMap&lt;number, ChainedPileupData&gt;&gt;</code> | The layout's input: `chainAttachment` in chain mode, else the fetched data. `rawDataByGroup` stays chain-free, so the arcs, sashimi, coverage and a split view overlaying this display do not recompute on the toggle. |
| **readIdsByChainName**<br><code>ReadonlyMap&lt;string, string[]&gt;</code> | Chain name → the ids of the READS in it; empty outside chain mode. The key is a chain's own identity and the values are read ids, which consumers resolve through `readIdToIndex` / `readIdIndexMap` (hence `highlightedChainReadIds`, `selectedChainReadIds`). |
| **loadedRegionInfos**<br><code>{ refName: string; start: number; end: number; displayedRegionIndex: number; }[]</code> | The fetched regions as `{refName,start,end,displayedRegionIndex}`, the shape every per-read region scan takes (`computeArcsByGroup`). Regions whose fetch has not landed are dropped. |
| **displayedRegionInfos**<br><code>{ refName: string; start: number; end: number; displayedRegionIndex: number; }[]</code> | The VIEW's displayed regions in the same shape: not "where did reads come from" but "where can a coordinate be drawn". The arc partition (`CrossRegionArc`) keys on this list, since `view.bpToPx` projects through `displayedRegions` (see `ArcRegions`). `displayedRegions` changes on navigation, not on pan, so `arcsByGroup` keeps its fetch invalidation tier. |
| **canonicalRefName**<br><code>((refName: string) =&gt; string) &#124; undefined</code> | Normalizer for a refName in the BAM's own spelling (an SA tag's or RNEXT's `chr1`) rather than the assembly-canonical one a fetched read carries (`1`). Undefined when no assembly is resolved, where consumers fall back to identity. Without it a same-chromosome split junction reads as inter-chromosomal. |
| **arcsResult**<br><code>ArcsByGroupResult</code> | THE arc resolution: both halves from one pass, read through `arcsByGroup` (arcs inside one region) or `crossRegionArcsByGroup` (arcs joining two). `computeArcsByGroup` owns the whole fan-out because the pooled arc scale (`poolArcScale`) describes the fetch, not a lane. Hidden lanes must stay out: the cross-group scans (`arcsYDomainBp`, `arcLegendCategories`) walk every entry. |
| **arcsByGroup**<br><code>Map&lt;string, Map&lt;number, ArcsUploadData&gt;&gt;</code> | Each group's arcs and ticks by loaded region, every arc filed under the one region holding a foot. |
| **crossRegionArcsByGroup**<br><code>Map&lt;string, CrossRegionArc[]&gt;</code> | Arcs whose two feet are in different displayed regions, per group. Empty in a single-region view. |
| **arcFeedsByGroup**<br><code>Map&lt;string, Map&lt;number, ArcBandFeed&gt;&gt;</code> | The band's marks' input, per group and region (`buildArcBandFeeds`). |
| **modificationThreshold**<br><code>number</code> |  |
| **showModifications**<br><code>boolean</code> |  |
| **mismatchContrastMap**<br><code>Record&lt;string, string&gt;</code> | Contrast colors for the mismatch/softclip/per-base letters, off the session palette. SVG export calls `getMismatchContrastMap` with its own palette. |
| **showPerBaseQuality**<br><code>boolean</code> |  |
| **showPerBaseLetter**<br><code>boolean</code> |  |
| **readIdIndexMap**<br><code>ReadIdIndexMap</code> |  |
| **layoutReady**<br><code>boolean</code> | Whether a pileup is laid out for an overlay to read — see `readArraysByGroup`. |
| **belowCoverageBands**<br><code>{ coverageHeight: number; hasArcsBand: boolean; hasSashimiBand: boolean; arcsBandTop: number; sashimiBandTop: number; bottom: number; }</code> | Geometry of the bands stacked below coverage in arcs-down mode: coverage → paired-end arcs → sashimi. `arcsBandTop`/`sashimiBandTop` are each band's top edge; `bottom` is where the pileup begins (== coverageDisplayHeight). |
| **coverageDisplayHeight**<br><code>number</code> |  |
| **lanes**<br><code>AlignmentLane[]</code> | The stacked lanes in stacking order, one `AlignmentLane` per drawn group; ungrouped is the one-lane case. The one place a lane's key resolves to its data. |
| **drawnLanes**<br><code>AlignmentLane[]</code> | The lanes laid out, or the one SYNTHETIC no-data lane: `sections` must produce a section before any fetch lands, and a grouped fetch over an empty region partitions to zero lanes. Every collection on it is empty. |
| **sections**<br><code>SectionsLayout</code> | All vertical band geometry, one entry per lane; ungrouped is the one-lane call. Runs over `drawnLanes` so a display with no data still has a section. The sticky-coverage-vs-scroll distinction lives downstream in `buildSectionRenders`. |
| **renderSections**<br><code>LaneSection[]</code> | Every lane paired with its band geometry in stacking order: the list the overlays, the hit-test pipeline and both renderers walk. The pairing is by INDEX, structural since `computeStackedSections` emits one section per lane in order from `drawnLanes`. |
| **bezierPairSections**<br><code>{ groupKey: string; topOffset: number; pileupHeight: number; dipReserve: number; pairs: LinkedPair[]; }[]</code> | The pairs the connector mark draws, placed on each drawn section's pileup band. |
| **connectionColorTypes**<br><code>Set&lt;number&gt;</code> | The connection types (LINKED_READ_COLOR_*) drawn in view, by the overlay's curves and by the straight-line pass beside them, so the key lists every connector color on screen. Empty while the legend is hidden so the scan is skipped. |
| **legendMaxWidth**<br><code>number</code> | `LegendMixin`'s hook: the split-read rows have to name which kind of read they classify, and that is the tree's longest label. |
| **featureNoun**<br><code>string</code> | What one row of this pileup is called, for UI text built from the model alone (the group-label chips). Overridable: LGVSyntenyDisplay draws PAF blocks, so its chips must not offer to "show all reads". |
| **contextMenuHit**<br><code>ContextMenuHit &#124; undefined</code> | Everything the right-click's hit test resolved — the block, the clicked column and whichever mark answered. See `ContextMenuHit`. |
| **contextMenuFeatureId**<br><code>string &#124; undefined</code> | The read id under a right-click, known synchronously unlike `contextMenuFeature`, which lands after an RPC. A menu item that can act from the id alone reads this. |
| **isGrouped**<br><code>boolean</code> | True when reads are stacked into >1 group section. Drives the scroll model: ungrouped keeps coverage sticky; grouped scrolls the whole stack as one. |
| **scrollModel**<br><code>ScrollModel</code> | The scroll-projection inputs (`sectionScreen.ts`) every overlay needs to map a content-space Y into screen space. |
| **stickyBandHeight**<br><code>number</code> | The coverage band held out of the scroll: ungrouped keeps it sticky above the pileup, grouped scrolls the whole stack. Subtracted from both the viewport and the content. |
| **scrollViewportHeight**<br><code>number</code> | Ungrouped excludes the sticky coverage band; grouped scrolls the entire display. |
| **scrollContentHeight**<br><code>number</code> | The laid-out `sections` less the sticky band, so a hidden pileup or a collapsed group opens no phantom scroll below the coverage band. |
| **growTargetHeight**<br><code>number</code> | HeightModeMixin's grow hook: the full laid-out content height (coverage + pileup + arcs), before the `growMaxHeight` cap. Independent of `self.height`: in grow mode `laidOutByGroup` fits to `growMaxHeight` and `featureHeight` is the configured value, so the mixin's `height` can return it without a cycle. With no layout (reads not loaded, or the too-large banner shown) the track keeps its current height. |
| **showOutline**<br><code>boolean</code> |  |
| **visibleLabels**<br><code>VisibleLabel[]</code> |  |
| **selectedChainReadIds**<br><code>string[]</code> | Read ids of the selected read's chain, empty outside chain mode. |
| **readCategoryLabel**<br><code>(c: ReadColorCategory) =&gt; string &#124; undefined</code> | Names one read color bucket for the hover, with the active scheme's rewording applied — the same `readCategoryLabelOverrides` the legend uses, so the tooltip and its swatch agree. |
| **arcCategoryLabel**<br><code>(c: ArcCategory) =&gt; string &#124; undefined</code> | Names one arc color bucket for the hover in the arc key's wording, so the tooltip and the swatch it sends the reader to agree. |
| **readArraysByGroup**<br><code>ReadonlyMap&lt;string, ReadonlyMap&lt;number, WorkerPileupData&gt;&gt;</code> | The reads a view overlaying this display may connect — the BreakpointSplitView's curves — by lane and region index, with hidden lanes dropped. Empty while no pileup is laid out, so an overlay draws no read this display does not. |
| **sashimiJunctionSections**<br><code>{ groupKey: string; sashimiDownKeys: ReadonlySet&lt;string&gt;; junctions: MergedJunction[]; }[]</code> | The junctions each lane draws, merged and filtered, in stacking order. A gesture owes none of it: it reads loaded data, the on-screen region set and the junction filters, and only the count labels (`sashimiLabels`) read the pan. Not a lane field: a lane feeds the LAYOUT, which the on-screen region set must never reach. |
| **drawsSashimi**<br><code>boolean</code> | Whether any lane has a junction to draw. What the view's region table and the count labels wait on, so a track of unspliced reads pays for neither. |
| **sashimiFeedsByGroup**<br><code>ReadonlyMap&lt;string, ReadonlyMap&lt;number, SashimiBandFeed&gt;&gt;</code> | The sashimi marks' input, per group and region (`buildSashimiBandFeeds`). In bp, so a pan or zoom rebuilds nothing. |
| **connectorFeedsByGroup**<br><code>Map&lt;string, Map&lt;number, ConnectorFeed&gt;&gt;</code> | The connector mark's input, per group and region (`buildConnectorFeeds`): the pairs `bezierPairSections` places, in bp and rows, so a pan or zoom rebuilds nothing. |
| **sourceSections**<br><code>SectionSource[]</code> | Per-section upload input in stacking order: each section's laid-out region map with its arc and sashimi feeds, keyed by group. Both renderers pair uploaded section `s` with drawn section `s` by INDEX, so this list and `renderState.sections` both derive from `renderSections` and share its length and order. |
| **sashimiLegendStrands**<br><code>ReadonlySet&lt;number&gt;</code> | The junction strands drawn, one key row each. Read off the merged junctions rather than the projected arcs, so a pan does not rebuild the legend. |
| **colorScales**<br><code>ColorScale[]</code> | `LegendMixin`'s hook: the read fills, the arc or read-cloud colors, the connection curves and the junction strands, merged and deduped by `getAlignmentsColorScales`. Empty while the legend is hidden, since the category scans are. |
| **fittedFeatureHeight**<br><code>number</code> | The read height that makes every uncollapsed group's reads fill the display without scrolling (`fittedReadPitch`). The uncapped row count uses a fixed `maxHeight`-row cap, independent of `featureHeight`, so the fit autorun that writes `featureHeight` cannot feed back into it. Reads `fitTargetHeight`, not the reactive `height` getter — the anti-cycle rule `laidOutByGroup` follows. |
| **sortTag**<br><code>string &#124; undefined</code> | Only the tag NAME goes to the worker, so `rpcProps` re-notifies when the tag changes, not when the sort position or a non-tag type flips. |
| **renderState**<br><code>{ scrollTop: number; featureHeight: number; featureSpacing: number; coverageHeight: number; coverageMinDepth: number &#124; undefined; coverageMaxDepth: number &#124; undefined; coverageScaleType: ScaleTypeCode; coverageSymlogConstant: number; coverageSnpMinFrequency: number; sashimiArcsHeight: number; showMismatches: boolean; fadeLowFrequencyMismatches: boolean; fadeLowQualityMismatches: boolean; showSoftClipping: boolean; showInterbaseIndicators: boolean; showModifications: boolean; showPerBaseQuality: boolean; showPerBaseLetter: boolean; showOutline: boolean; pileupTopOffset: number; coverageTopOffset: number; sections: SectionRender[]; canvasWidth: number; canvasHeight: number; colors: ColorPalette; chainMode: boolean; showLinkedReadLines: boolean; collapseGroupRows: boolean; readConnectionsLineWidth: number; arcsYDomainBp: number &#124; undefined; linkRegions: readonly LinkRegion[]; }</code> |  |
| **linkRegions**<br><code>readonly LinkRegion[]</code> | The view's displayed regions as the band's connections place their feet (`viewRegionTable`), and the splice junctions theirs; empty while the band is off and no lane has a junction, so a pan leaves `renderState` alone on a track that draws neither. |
| **sashimiLabels**<br><code>readonly SashimiLabel[]</code> | The junction read counts, each at its arc's apex (`sashimiLabels`). The one part of sashimi that reads the pan, and only while the labels are shown; the same empty array otherwise, so the overlay's observer stops. |
| **selectedSashimiHighlight**<br><code>ArcHighlight &#124; undefined</code> | The selected splice junction's ink, for the overlay that outlines it. Reads the pan, and only while a junction is selected. |
| **selectedConnectorHighlight**<br><code>ArcHighlight &#124; undefined</code> | The connectors of the selected read or chain, for the overlay that outlines them. Reads the pan, and only while one is selected. |
| **hoverInk**<br><code>HighlightRect[]</code> | The boxes of the hovered read or chain, for the chrome's highlight. Not in `renderState`: the hovered id changes on nearly every mousemove, and routing it through the canvas would repaint the whole pileup. |
| **selectionInk**<br><code>HighlightRect[]</code> | The boxes of the selected read, or of every read in the selected chain — the same walk as `hoverInk`, so a click repaints the guide's divs, not the canvas. Not in the SVG export, as no display's selection is. |
| **arcsYDomainBp**<br><code>number &#124; undefined</code> | Floored at 1000bp, so an all-concordant set never divides by near zero. |
| **scoreRulesDrawn**<br><code>boolean</code> | Overrides `ScoreScaleMixin`'s: `scales.y.rules` are depths, so they draw on the coverage band. |
| **valueScales**<br><code>ValueScale[]</code> | The scales the chrome places the axes from. Coverage rules one band per section, on the right wherever the group label chips take the left edge. The read cloud's insert-size scale rules each section's arc band, captioned TLEN. Each band projects through its section's own scroll; the chrome drops the off-screen ones. |
| **lodTier**<br><code>LodTier &#124; undefined</code> | Overridable hook (default undefined: whatever the adapter picks): the detail tier a fetch issued now asks a tiered adapter for, off the settled zoom. `LGVSyntenyDisplay` resolves it for tiered PIF adapters. In `zoomFetchArgs`, not `rpcProps`, like `perBaseBinBp`. |
| **liveLodTier**<br><code>LodTier &#124; undefined</code> | Overridable hook: the same tier off the LIVE zoom, read by `dataSuperseded` alone — see `livePerBaseBinBp` for the window it covers. |
| **perBaseBinBp**<br><code>number</code> | Genomic bp one per-base cell stands for in the worker's extract: the foundation's `settledSubPixelBinBp`, and `1` in every color mode that does not paint a wall of them. Per-base quality and lettering emit an entry per aligned base of EVERY read, so sampling one base per sub-pixel window bounds the extract by the VIEWPORT, not the region. Not an `rpcProps` field — see `zoomFetchArgs`. |
| **livePerBaseBinBp**<br><code>number</code> | The same bin off the LIVE zoom, read by `dataSuperseded` alone. The debounced bin is what the held data was fetched under, so it cannot say whether that data is sampled finely enough. Kept out of `zoomFetchArgs` because `FetchVisibleRegions` runs on the leading edge: a live key would refetch at every octave a fast gesture passes. |
| **hoveredFeature**<br><code>SimpleFeature &#124; undefined</code> |  |
| **dataSuperseded**<br><code>boolean</code> | `MultiRegionDisplayMixin`'s supersession hook: the settled per-base bin or detail tier has not moved yet, but the live zoom has left it, so the clear is inevitable and not yet committed. Only the debounce half is here: once the settled bin moves, the stamp stops matching `fetchInputs` and the foundation's `isCacheValid` covers it. A value compare, never a second derivation of `zoomFetchArgs`: restated args would latch this true the day they grow a field, and a latched supersession hangs an export until `awaitSvgReady` times out. |
| **ownGroupState**<br><code>(string[] &#124; { [k: string]: number; })[]</code> | The mixin's hook: the collapses and per-group height overrides `dropGroupState` clears below. |
| **gateEnabled**<br><code>boolean</code> | Opt into RegionTooLargeMixin's byte gate: `fetchNeeded` passes `resolvedByteLimit()` to `RenderAlignmentData`, whose first await is the index estimate, so an over-budget region is refused before a read downloads. |

98 inherited getters from 12 models:

From [BaseDisplay](../basedisplay): [`parentTrack`](../basedisplay#getter-parenttrack), [`RenderingComponent`](../basedisplay#getter-renderingcomponent), [`DisplayBlurb`](../basedisplay#getter-displayblurb), [`adapterConfig`](../basedisplay#getter-adapterconfig), [`isMinimized`](../basedisplay#getter-isminimized), [`plotKeys`](../basedisplay#getter-plotkeys), [`plot`](../basedisplay#getter-plot), [`schemaNotices`](../basedisplay#getter-schemanotices), [`plotExamples`](../basedisplay#getter-plotexamples), [`configDocsUrl`](../basedisplay#getter-configdocsurl)

From [HeightModeMixin](../heightmodemixin): [`heightMode`](../heightmodemixin#getter-heightmode), [`fitTargetHeight`](../heightmodemixin#getter-fittargetheight), [`growMaxHeight`](../heightmodemixin#getter-growmaxheight), [`autoHeight`](../heightmodemixin#getter-autoheight), [`fitHeightToDisplay`](../heightmodemixin#getter-fitheighttodisplay), [`grownHeight`](../heightmodemixin#getter-grownheight), [`height`](../heightmodemixin#getter-height)

From [TrackHeightMixin](../trackheightmixin): [`configuredHeight`](../trackheightmixin#getter-configuredheight), [`allottedHeight`](../trackheightmixin#getter-allottedheight), [`resizing`](../trackheightmixin#getter-resizing), [`scrollableHeight`](../trackheightmixin#getter-scrollableheight)

From [MultiRegionDisplayMixin](../multiregiondisplaymixin): [`host`](../multiregiondisplaymixin#getter-host), [`canvasWidthPx`](../multiregiondisplaymixin#getter-canvaswidthpx), [`settledSubPixelBinBp`](../multiregiondisplaymixin#getter-settledsubpixelbinbp), [`canRender`](../multiregiondisplaymixin#getter-canrender), [`rendersCanvas`](../multiregiondisplaymixin#getter-renderscanvas), [`trackVisibleRegions`](../multiregiondisplaymixin#getter-trackvisibleregions), [`viewportWithinLoadedData`](../multiregiondisplaymixin#getter-viewportwithinloadeddata), [`viewportEmpty`](../multiregiondisplaymixin#getter-viewportempty), [`fetchSuspended`](../multiregiondisplaymixin#getter-fetchsuspended), [`renderBlocks`](../multiregiondisplaymixin#getter-renderblocks), [`fetchInputs`](../multiregiondisplaymixin#getter-fetchinputs), [`regionPayloads`](../multiregiondisplaymixin#getter-regionpayloads), [`hasRegionData`](../multiregiondisplaymixin#getter-hasregiondata), [`staleSettingsDrawn`](../multiregiondisplaymixin#getter-stalesettingsdrawn), [`dataCurrent`](../multiregiondisplaymixin#getter-datacurrent), [`loadedAssembly`](../multiregiondisplaymixin#getter-loadedassembly), [`phaseViewportCurrent`](../multiregiondisplaymixin#getter-phaseviewportcurrent), [`svgReady`](../multiregiondisplaymixin#getter-svgready), [`paintInert`](../multiregiondisplaymixin#getter-paintinert), [`paintSuperseded`](../multiregiondisplaymixin#getter-paintsuperseded), [`displayPhase`](../multiregiondisplaymixin#getter-displayphase)

From [RegionTooLargeMixin](../regiontoolargemixin): [`byteGateAdapterConfig`](../regiontoolargemixin#getter-bytegateadapterconfig), [`configuredFetchSizeLimit`](../regiontoolargemixin#getter-configuredfetchsizelimit), [`densityTooLarge`](../regiontoolargemixin#getter-densitytoolarge), [`byteGateAdapterPath`](../regiontoolargemixin#getter-bytegateadapterpath), [`adapterFetchSizeLimit`](../regiontoolargemixin#getter-adapterfetchsizelimit), [`configForceLoad`](../regiontoolargemixin#getter-configforceload), [`gateViewportSpanBp`](../regiontoolargemixin#getter-gateviewportspanbp), [`gateViewport`](../regiontoolargemixin#getter-gateviewport), [`aboveForceLoadFloor`](../regiontoolargemixin#getter-aboveforceloadfloor), [`gateExempt`](../regiontoolargemixin#getter-gateexempt), [`estimatedFetchBytes`](../regiontoolargemixin#getter-estimatedfetchbytes), [`gateMeasurementStale`](../regiontoolargemixin#getter-gatemeasurementstale), [`gateByteLimit`](../regiontoolargemixin#getter-gatebytelimit), [`gateActive`](../regiontoolargemixin#getter-gateactive), [`densityGateActive`](../regiontoolargemixin#getter-densitygateactive), [`tooLargeStatus`](../regiontoolargemixin#getter-toolargestatus), [`regionTooLarge`](../regiontoolargemixin#getter-regiontoolarge), [`regionTooLargeReason`](../regiontoolargemixin#getter-regiontoolargereason), [`zoomCanReleaseGate`](../regiontoolargemixin#getter-zoomcanreleasegate), [`gateSkipsMeasuredViewport`](../regiontoolargemixin#getter-gateskipsmeasuredviewport)

From [RenderLifecycleMixin](../renderlifecyclemixin): [`painted`](../renderlifecyclemixin#getter-painted)

From [FetchMixin](../fetchmixin): [`isLoading`](../fetchmixin#getter-isloading), [`isLoadingOrCanceled`](../fetchmixin#getter-isloadingorcanceled), [`fetchInert`](../fetchmixin#getter-fetchinert), [`awaitingPrerequisite`](../fetchmixin#getter-awaitingprerequisite), [`awaitingDependentData`](../fetchmixin#getter-awaitingdependentdata), [`settingsFetchInputs`](../fetchmixin#getter-settingsfetchinputs)

From [ScoreScaleMixin](../scorescalemixin): [`scaleType`](../scorescalemixin#getter-scaletype), [`scaleZero`](../scorescalemixin#getter-scalezero), [`domainQuantile`](../scorescalemixin#getter-domainquantile), [`clipQuantile`](../scorescalemixin#getter-clipquantile), [`symlogConstant`](../scorescalemixin#getter-symlogconstant), [`manualMinScore`](../scorescalemixin#getter-manualminscore), [`manualMaxScore`](../scorescalemixin#getter-manualmaxscore), [`valueScaleNotices`](../scorescalemixin#getter-valuescalenotices), [`autoscaleGroup`](../scorescalemixin#getter-autoscalegroup), [`scaleTitle`](../scorescalemixin#getter-scaletitle), [`grid`](../scorescalemixin#getter-grid), [`minimalTicks`](../scorescalemixin#getter-minimalticks), [`scoreRules`](../scorescalemixin#getter-scorerules)

From [ScoreAxisMixin](../scoreaxismixin): [`axisReachesZero`](../scoreaxismixin#getter-axisreacheszero), [`autoscaledDomain`](../scoreaxismixin#getter-autoscaleddomain), [`minScoreBound`](../scoreaxismixin#getter-minscorebound), [`maxScoreBound`](../scoreaxismixin#getter-maxscorebound), [`hasManualScoreBounds`](../scoreaxismixin#getter-hasmanualscorebounds), [`axes`](../scoreaxismixin#getter-axes)

From [LegendMixin](../legendmixin): [`showLegend`](../legendmixin#getter-showlegend), [`legendTop`](../legendmixin#getter-legendtop), [`legendRight`](../legendmixin#getter-legendright), [`legendSpec`](../legendmixin#getter-legendspec), [`hasLegendKey`](../legendmixin#getter-haslegendkey)

From [ColorWritesMixin](../colorwritesmixin): [`writtenColor`](../colorwritesmixin#getter-writtencolor)

From [HiddenGroupsMixin](../hiddengroupsmixin): [`displayHiddenGroupKeys`](../hiddengroupsmixin#getter-displayhiddengroupkeys), [`hiddenGroups`](../hiddengroupsmixin#getter-hiddengroups), [`hiddenGroupKeys`](../hiddengroupsmixin#getter-hiddengroupkeys), [`groupStateKey`](../hiddengroupsmixin#getter-groupstatekey)


## Methods

| Member | Description |
| --- | --- |
| **nonReferenceAt**<br><code>(column: VariantSortColumn, allele?: VariantAllele &#124; undefined) =&gt; { count: number; depth: number; } &#124; undefined</code> | The loaded reads differing from the reference at a variant's sort column, or with `allele` only those carrying it, over the reads spanning it. Undefined until a fetch reaching the column lands. |
| **colorPaletteIn**<br><code>(theme: JBrowsePalette) =&gt; ColorPalette</code> | The read palette over `theme`, with the category colors `color` sets. SVG export passes its own theme. |
| **legendItems**<br><code>(palette: ColorPalette) =&gt; LegendItem[]</code> |  |
| **arcLegendItems**<br><code>(palette: ColorPalette) =&gt; LegendItem[]</code> | Key for the paired-end arc / read-cloud colors, empty when no overlay is drawn. |
| **groupChipLabel**<br><code>(label: string) =&gt; string</code> | The text a group's chip shows for its section label |
| **arcFeedsByGroupIn**<br><code>(colors: ColorPalette) =&gt; Map&lt;string, Map&lt;number, ArcBandFeed&gt;&gt;</code> | `arcFeedsByGroup` colored from `colors`, which the SVG export passes to draw in its own theme. |
| **findFeatureInRpcData**<br><code>(featureId: string) =&gt; ReadHit &#124; undefined</code> |  |
| **laneFor**<br><code>(key: string) =&gt; AlignmentLane &#124; undefined</code> | One lane by group key, for the per-key questions a component asks with a `groupKey` in hand. `undefined` for a key that isn't drawn. |
| **connectionLegendItems**<br><code>(palette: ColorPalette) =&gt; LegendItem[]</code> | Legend swatches for the read connectors. |
| **groupPileupOffset**<br><code>(groupKey: string) =&gt; number</code> | Content-space Y of a group's pileup relative to the reserved below-coverage height: how far a read's row shifts because its group is stacked below the others. Callers add `coverageDisplayHeight` back. Slightly negative for a lane that drops its arc band (`hasArcs` false). |
| **readIdsSharingChain**<br><code>(rpcData: ChainedPileupData, index: number) =&gt; string[]</code> | Read ids sharing a chain with the read at `index` in `rpcData`, the read's own included. Empty when the read is in no chain. Shared by hover-highlight and click-select. |
| **readIdsSharingChainWith**<br><code>(featureId: string) =&gt; string[]</code> | `readIdsSharingChain` from a read id alone, for a caller holding no block — the connector mark, whose arcs carry ids. Empty outside chain mode and for an id no fetched region holds. |
| **getFeatureInfoById**<br><code>(featureId: string) =&gt; { lodMode: LodTier &#124; undefined; id: string; name: string; start: number; end: number; flags: number; mapq: number; strand: number; refName: string; assemblyName: string; } &#124; undefined</code> |  |
| **readLayoutRecord**<br><code>(groupKey: string, displayedRegionIndex: number, idx: number) =&gt; [number, number, number, number] &#124; undefined</code> | Layout rect of one read of `readArraysByGroup`. Y is relative to the pileup's own top (callers add `coverageDisplayHeight`), so a grouped read needs only its section's stacking offset on top of its row. A read past the row cap sits on the cap's overflow row. |
| **connectorFeedsByGroupIn**<br><code>(colors: ColorPalette) =&gt; Map&lt;string, Map&lt;number, ConnectorFeed&gt;&gt;</code> | `connectorFeedsByGroup` colored from `colors`, for the SVG export's theme. |
| **sashimiFeedsByGroupIn**<br><code>(colors: ColorPalette) =&gt; ReadonlyMap&lt;string, ReadonlyMap&lt;number, SashimiBandFeed&gt;&gt;</code> | `sashimiFeedsByGroup` colored from `colors`, which the SVG export passes to draw in its own theme. |
| **sourceSectionsIn**<br><code>(colors: ColorPalette) =&gt; SectionSource[]</code> | `sourceSections` with the connections colored from `colors`, for the SVG export's theme. |
| **sourceSectionsWith**<br><code>(feeds: ReadonlyMap&lt;string, ReadonlyMap&lt;number, ArcBandFeed&gt;&gt;, sashimiFeeds: ReadonlyMap&lt;string, ReadonlyMap&lt;number, SashimiBandFeed&gt;&gt;, connectorFeeds: ReadonlyMap&lt;string, ReadonlyMap&lt;number, ConnectorFeed&gt;&gt;) =&gt; SectionSource[]</code> | The laid-out sections with each lane's read connections and splice junctions, which join here rather than on the lane: both are colored, and the layout must not read the palette. |
| **sashimiSupportingReadSlots**<br><code>(junction: LaneJunction) =&gt; ReadSlot[]</code> | The slots of the reads in the junction's lane whose skip gap it is. |
| **colorScalesIn**<br><code>(theme: JBrowsePalette) =&gt; ColorScale[]</code> | `colorScales` in another theme: the SVG export's, whose theme need not be the session's. |
| **readInk**<br><code>(ids: readonly string[], strong: boolean) =&gt; HighlightRect[]</code> | The boxes the named reads painted, clipped to their sections. Reading `readIdIndexMap` builds over the whole fetched dataset, so it waits until something is hovered or selected. |
| **slotInk**<br><code>(slots: readonly ReadSlot[], strong: boolean) =&gt; HighlightRect[]</code> | The boxes the reads in these slots painted, clipped to their sections. |
| **rpcProps**<br><code>() =&gt; { filterBy: ReadFilter; colorBy: ReadColorBy &#124; undefined; baseLayer: BaseLayer &#124; undefined; sortTag: string &#124; undefined; facet: WorkerFacet &#124; undefined; showSoftClipping: boolean; showCoverage: boolean; }</code> | Fields that invalidate the fetched data, every one worker-bound. Arc-only fields (`arcColor`, `showInterchrom`, `showLongRange`) are NOT here: `arcsResult` reads them and they need no refetch. Non-tag sort changes and tag coloring (`readFillColors`, baked in `laidOutByGroup`) stay main-thread. Its own views block, after every field it reads, so it reads them off `self`: a subclass override captures the base as a bare function, which would lose a `this`. |
| **zoomFetchArgs**<br><code>() =&gt; { perBaseBinBp: number; lodMode: LodTier &#124; undefined; }</code> | `MultiRegionDisplayMixin`'s per-region content axis: the zoom-derived worker arguments, which the fetch spreads into its RPC and the foundation stamps beside every region it loads. Only the per-base bin and the detail tier move it, so a zoom refetches the regions on screen only when one flips; neither is in `rpcProps`. Its own views block, after the getters it reads, like `rpcProps`. |
| **trackMenuItems**<br><code>() =&gt; (MenuItem &#124; { label: string; icon: OverridableComponent&lt;SvgIconTypeMap&lt;{}, "svg"&gt;&gt; &amp; { muiName: string; }; type: "subMenu"; subMenu: (MenuItem &#124; { label: string; onClick: () =&gt; void; })[]; })[]</code> | Track menu items |
| **contextMenuItems**<br><code>() =&gt; MenuItem[]</code> |  |

10 inherited methods from 4 models:

From [BaseDisplay](../basedisplay): [`renderingProps`](../basedisplay#method-renderingprops), [`liftPlot`](../basedisplay#method-liftplot), [`plotProblems`](../basedisplay#method-plotproblems), [`plotWrites`](../basedisplay#method-plotwrites)

From [MultiRegionDisplayMixin](../multiregiondisplaymixin): [`regionHasData`](../multiregiondisplaymixin#method-regionhasdata), [`isCacheValid`](../multiregiondisplaymixin#method-iscachevalid)

From [RegionTooLargeMixin](../regiontoolargemixin): [`resolvedByteLimit`](../regiontoolargemixin#method-resolvedbytelimit), [`gateFetchState`](../regiontoolargemixin#method-gatefetchstate)

From [LegendMixin](../legendmixin): [`svgLegendWidth`](../legendmixin#method-svglegendwidth), [`legendSpecIn`](../legendmixin#method-legendspecin)


## Actions

| Member | Description |
| --- | --- |
| **toggleGroupCollapsed**<br><code>(key: string) =&gt; void</code> | Collapse/expand a stacked group's pileup (coverage stays visible). |
| **dropGroupState**<br><code>() =&gt; void</code> | The mixin's hook: the collapses and per-group height overrides, which are keyed by group key. |
| **clearMouseoverState**<br><code>() =&gt; void</code> |  |
| **clearHoverUnlessPinned**<br><code>() =&gt; void</code> | What a cursor leaving a read or connector calls. `setHoverState` refuses writes while the right-click menu pins the hover, so the leave refuses them too. `clearMouseoverState` is the unconditional form, for `closeContextMenu`. |
| **setError**<br><code>(error?: unknown) =&gt; void</code> |  |
| **setRpcData**<br><code>(displayedRegionIndex: number, data: GroupedAlignmentsResult, region: Region) =&gt; void</code> | Stage a region as fetched, with this display's payload shape — so a test stands up a loaded display in one call. Production goes through `ctx.commitRegion`. |
| **clearSelection**<br><code>() =&gt; void</code> |  |
| **setBaseLayer**<br><code>(layer?: BaseLayer &#124; undefined) =&gt; void</code> | Draw a per-base layer over the reads, or none. The read fill is `colorByField`'s and stays as it is. |
| **setReadFilter**<br><code>(filterBy: ReadFilter) =&gt; void</code> |  |
| **setShowSoftClipping**<br><code>(value: boolean) =&gt; void</code> |  |
| **setFadeLowQualityMismatches**<br><code>(value: boolean) =&gt; void</code> |  |
| **sortAtCenterLine**<br><code>(type: "basePair" &#124; "hardclip" &#124; "insertion" &#124; "mapq" &#124; "pairOrientation" &#124; "softclip" &#124; "strand" &#124; "tag", tag?: string &#124; undefined) =&gt; void</code> |  |
| **setSort**<br><code>(sort: SortSetting) =&gt; void</code> | The one writer of `sort`: a whole-window order, or a column sort. |
| **setFacet**<br><code>(facet?: Facet &#124; undefined) =&gt; void</code> | Writes the `facet` object; undefined is ungrouped. A tier-1 refetch setting (in `rpcProps`). Resets the Y scroll since the stacked content height changes. `HiddenGroupsMixin`'s key-space reset drops the per-lane state. A grouping named without a domain keeps the current one while the key space holds, so a re-pick is not a reorder. |
| **setCollapseGroupRows**<br><code>(flag: boolean) =&gt; void</code> | Draw each group as one row, overlap depth shown as tint. Clears the per-group height overrides: an override opts a lane out of the collapse, which means nothing once every lane is a stack again. |
| **toggleGroupExpanded**<br><code>(key: string) =&gt; void</code> | Expand a fit-to-viewport group to the full `maxHeight` cap, or, if it already carries an override, drop it to return the group to the fit budget. Expanding overflows the viewport, which engages the pileup scroll. Pairs with `groupHeightOverrides`. |
| **resizeGroupHeight**<br><code>(key: string, dy: number) =&gt; void</code> | Drag a stacked group's pileup band taller/shorter by `dy` px. The override caps the group's rows and pads the band where the rows fall short, so the drag runs in both directions. The accumulation policy lives in the pure `nextGroupHeightOverride`. |
| **setFeatureHeight**<br><code>(height?: number &#124; undefined) =&gt; void</code> | Set the per-read pixel size. Grow keeps growing at the new size. Fit derives the size, so a chosen size would be dormant: picking one drops back to fixed. |
| **setMaxHeight**<br><code>(height?: number &#124; undefined) =&gt; void</code> |  |
| **setHeightMode**<br><code>(mode: "fit" &#124; "fixed" &#124; "grow") =&gt; void</code> | The two pieces of transient state a uniform fit/grow contradicts that HeightModeMixin can't know about. The slot write and the scroll reset are its `setHeightMode`, captured as super above. |
| **setFittedHeightPx**<br><code>(px: number) =&gt; void</code> | Caches the fitted read height; `featureHeight`/`featureSpacing` split it into a body and a derived gap. Written only by the driving autorun. |
| **setShowSashimiArcs**<br><code>(show: boolean) =&gt; void</code> | Writes this slot alone. The arcs draw only with the coverage band (`showSashimiArcs`), and the menu greys the row out without it rather than turning the band back on behind the user's back. |
| **setShowCoverage**<br><code>(show: boolean) =&gt; void</code> |  |
| **setReadConnections**<br><code>(mode?: "arc" &#124; "cloud" &#124; "off" &#124; undefined) =&gt; void</code> |  |
| **setReadConnectionsDown**<br><code>(down: boolean) =&gt; void</code> | Whether the read-connection band hangs below the coverage band. |
| **setShowPileup**<br><code>(show: boolean) =&gt; void</code> |  |
| **setCoverageHeight**<br><code>(height: number) =&gt; void</code> |  |
| **setCoverageSnpMinFrequency**<br><code>(fraction: number) =&gt; void</code> |  |
| **setReadConnectionsHeight**<br><code>(height: number) =&gt; void</code> |  |
| **setSashimiArcsHeight**<br><code>(height: number) =&gt; void</code> |  |
| **setMinSashimiScore**<br><code>(score: number) =&gt; void</code> |  |
| **setSashimiArcsMode**<br><code>(mode: "auto" &#124; "down" &#124; "up") =&gt; void</code> |  |
| **setShowSashimiLabels**<br><code>(show: boolean) =&gt; void</code> |  |
| **setShowNonCanonicalJunctions**<br><code>(show: boolean) =&gt; void</code> |  |
| **setReadConnectionsLineWidth**<br><code>(width: number) =&gt; void</code> |  |
| **setShowInterchrom**<br><code>(draw: boolean) =&gt; void</code> |  |
| **setShowOrdinaryPairs**<br><code>(show?: boolean &#124; undefined) =&gt; void</code> |  |
| **setMinInterchromSupport**<br><code>(support: number) =&gt; void</code> |  |
| **setShowLongRange**<br><code>(draw: boolean) =&gt; void</code> |  |
| **setArcColorField**<br><code>(field: "" &#124; "insertSize" &#124; "insertSizeAndOrientation" &#124; "pairOrientation") =&gt; void</code> | Paint the arcs by `field`, `''` following the reads. `arcColor` holds a field and nothing else, so it skips `colorForField`, whose `scale: 'none'` it has no slot for. |
| **setShowMismatches**<br><code>(show: boolean) =&gt; void</code> |  |
| **setShowInterbaseIndicators**<br><code>(show: boolean) =&gt; void</code> |  |
| **setUnit**<br><code>(unit: "chain" &#124; "read") =&gt; void</code> | A new unit restacks the whole pileup, so the scroll resets: the `scrollableHeight` clamp catches only a shorter stack. |
| **setShowBezierConnections**<br><code>(flag: boolean) =&gt; void</code> | Toggle the paired-read connection overlay. A main-thread tier-2/4 setting, not in `rpcProps`: toggling never refetches. |
| **setHoverState**<br><code>(state: { overCigarItem: boolean; featureIdUnderMouse: string &#124; undefined; mouseoverExtraInformation: TooltipPayload &#124; undefined; hoverCoverageBand?: HoverCoverageBand &#124; undefined; hoveredArcHighlight?: ArcHighlight &#124; undefined; hoveredJunction?: LaneJunction &#124; undefined; highlightedChainReadIds: string[]; }) =&gt; void</code> | The whole hover state in one action, so no branch of the mousemove handler leaves a field stale. Refused while the right-click menu is open, since `openContextMenu` pins the hover to the read the menu acts on. `highlightedChainReadIds` is a chain's reads in chain mode, and outside it the two ends of a hovered connector. |
| **setContextMenuFeature**<br><code>(feature?: Feature &#124; undefined) =&gt; void</code> |  |
| **closeContextMenu**<br><code>() =&gt; void</code> | Close the right-click menu and release the hover it pinned. `setHoverState` refuses writes while the menu is up, so this is the only place the pin comes off. |
| **selectFeature**<br><code>(feature: Feature) =&gt; void</code> |  |
| **startRenderingBackend**<br><code>(backend: AlignmentsRenderingBackend) =&gt; void</code> |  |
| **withFeatureById**<br><code>(featureId: string, onFeat: (feat: Feature) =&gt; void) =&gt; Promise&lt;void&gt;</code> | Fetch the feature behind `featureId` and hand it to `onFeat`. For a menu item that needs the whole feature but is offered before one is in hand. |
| **selectFeatureById**<br><code>(featureId: string) =&gt; Promise&lt;void&gt;</code> |  |
| **openContextMenu**<br><code>(info: AlignmentsContextMenuInfo) =&gt; void</code> | Open the right-click menu over a hit. The block, the clicked column and the mark hit arrive as one `ContextMenuHit`, so a consumer cannot read a block without its hit. Resets the read feature and, when the hit carries one, fills it by async RPC, so a repositioned menu cannot inherit the prior read's items. Also clears the hover, then re-pins the highlight box on the menu's read, in that order. |
| **fetchNeeded**<br><code>(needed: IndexedRegion[]) =&gt; Promise&lt;void&gt;</code> |  |
| **renderSvg**<br><code>(opts?: ExportSvgDisplayOptions &#124; undefined) =&gt; Promise&lt;ReactElement&lt;unknown, string &#124; JSXElementConstructor&lt;any&gt;&gt; &#124; Iterable&lt;ReactNode&gt; &#124; AwaitedReactNode&gt;</code> |  |
| **clearHoveredFeature**<br><code>() =&gt; void</code> | Fills `BaseDisplay`'s hover-clear hook, which the fetch foundation's reaction calls on every viewport change. A pan, zoom or internal scroll under a stationary cursor fires no mousemove or mouseleave, so the highlight and tooltip would keep naming the read that was there. |

52 inherited actions from 11 models:

From [BaseDisplay](../basedisplay): [`setStatusMessage`](../basedisplay#action-setstatusmessage), [`reload`](../basedisplay#action-reload), [`applyDisplaySettings`](../basedisplay#action-applydisplaysettings), [`applyPlot`](../basedisplay#action-applyplot)

From [HeightModeMixin](../heightmodemixin): [`resizeHeight`](../heightmodemixin#action-resizeheight)

From [TrackHeightMixin](../trackheightmixin): [`setScrollTop`](../trackheightmixin#action-setscrolltop), [`setHostHeight`](../trackheightmixin#action-sethostheight), [`setHeight`](../trackheightmixin#action-setheight), [`expandToContentHeight`](../trackheightmixin#action-expandtocontentheight)

From [MultiRegionDisplayMixin](../multiregiondisplaymixin): [`setLoadedRegion`](../multiregiondisplaymixin#action-setloadedregion), [`evictRegionStore`](../multiregiondisplaymixin#action-evictregionstore), [`dropLoadedRegion`](../multiregiondisplaymixin#action-droploadedregion), [`clearDisplaySpecificData`](../multiregiondisplaymixin#action-cleardisplayspecificdata), [`clearSettingsBakedData`](../multiregiondisplaymixin#action-clearsettingsbakeddata), [`clearAllRpcData`](../multiregiondisplaymixin#action-clearallrpcdata), [`invalidateSettings`](../multiregiondisplaymixin#action-invalidatesettings), [`fetchRegions`](../multiregiondisplaymixin#action-fetchregions), [`afterAttach`](../multiregiondisplaymixin#action-afterattach)

From [RegionTooLargeMixin](../regiontoolargemixin): [`clearByteEstimate`](../regiontoolargemixin#action-clearbyteestimate), [`clearGateMeasurements`](../regiontoolargemixin#action-cleargatemeasurements), [`setForceLoadTrack`](../regiontoolargemixin#action-setforceloadtrack), [`commitFetchBytes`](../regiontoolargemixin#action-commitfetchbytes), [`forceLoad`](../regiontoolargemixin#action-forceload)

From [RenderLifecycleMixin](../renderlifecyclemixin): [`markCanvasDrawn`](../renderlifecyclemixin#action-markcanvasdrawn), [`resetCanvasDrawn`](../renderlifecyclemixin#action-resetcanvasdrawn), [`stopRenderingBackend`](../renderlifecyclemixin#action-stoprenderingbackend), [`renderNow`](../renderlifecyclemixin#action-rendernow), [`setOffScreen`](../renderlifecyclemixin#action-setoffscreen), [`setRenderError`](../renderlifecyclemixin#action-setrendererror), [`attachRenderingBackend`](../renderlifecyclemixin#action-attachrenderingbackend)

From [FetchMixin](../fetchmixin): [`stopActiveFetch`](../fetchmixin#action-stopactivefetch), [`openStatusStream`](../fetchmixin#action-openstatusstream), [`cancelFetch`](../fetchmixin#action-cancelfetch), [`cancelFetchByUser`](../fetchmixin#action-cancelfetchbyuser), [`beforeDestroy`](../fetchmixin#action-beforedestroy), [`beginFetch`](../fetchmixin#action-beginfetch), [`endFetch`](../fetchmixin#action-endfetch), [`runFetch`](../fetchmixin#action-runfetch)

From [ScoreScaleMixin](../scorescalemixin): [`setScaleType`](../scorescalemixin#action-setscaletype), [`setScaleZero`](../scorescalemixin#action-setscalezero), [`setDomainQuantile`](../scorescalemixin#action-setdomainquantile), [`setMinScore`](../scorescalemixin#action-setminscore), [`setMaxScore`](../scorescalemixin#action-setmaxscore), [`setAutoscaleGroup`](../scorescalemixin#action-setautoscalegroup), [`setGrid`](../scorescalemixin#action-setgrid), [`setScoreRules`](../scorescalemixin#action-setscorerules)

From [LegendMixin](../legendmixin): [`setShowLegend`](../legendmixin#action-setshowlegend), [`dismissLegendSection`](../legendmixin#action-dismisslegendsection)

From [ColorWritesMixin](../colorwritesmixin): [`colorByField`](../colorwritesmixin#action-colorbyfield), [`setColorValue`](../colorwritesmixin#action-setcolorvalue)

From [HiddenGroupsMixin](../hiddengroupsmixin): [`hideGroup`](../hiddengroupsmixin#action-hidegroup), [`showAllGroups`](../hiddengroupsmixin#action-showallgroups)


