# LDTrackDisplay

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 `variants` plugin. [View source](https://github.com/GMOD/jbrowse-components/blob/main/plugins/variants/src/LDDisplay/model.ts).

A linkage disequilibrium matrix read from a pre-computed file, drawn as a
triangle over the view.

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

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('LDTrackDisplay')</code> |  |
| **configuration**<br><code>configuration: ConfigurationReference(configSchema)</code> |  |

1 inherited property from one model:

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


## Volatiles

| Member | Description |
| --- | --- |
| **focalSnpLocus**<br><code>string &#124; undefined</code> | Key (`refName:start:id`) of the SNP whose row and column are emphasized. A key rather than an index, so it survives a refetch. |

24 inherited volatiles from 8 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 [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 [KeyedFetchMixin](../keyedfetchmixin): [`loadedFetchKey`](../keyedfetchmixin#volatile-loadedfetchkey)

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 [LegendMixin](../legendmixin): [`dismissedLegendSections`](../legendmixin#volatile-dismissedlegendsections)

From [TriangleMatrixMixin](../trianglematrixmixin): [`rpcData`](../trianglematrixmixin#volatile-rpcdata)


## Getters

| Member | Description |
| --- | --- |
| **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> |  |
| **prefersOffset**<br><code>boolean</code> |  |
| **lineZoneHeight**<br><code>number</code> |  |
| **colorField**<br><code>LDMetric</code> | `color.field`, the statistic the fetch asks the file for. |
| **maxVariantSeparation**<br><code>number</code> |  |
| **showVerticalGuides**<br><code>boolean</code> |  |
| **showLabels**<br><code>boolean</code> |  |
| **tickHeight**<br><code>number</code> |  |
| **variantLayout**<br><code>"columns" &#124; "genomic"</code> |  |
| **snps**<br><code>LDSnp[]</code> | The loaded SNPs in screen order along the column axis. |
| **cellWidth**<br><code>number</code> | The column width the payload was laid out at. |
| **viewSignature**<br><code>string &#124; undefined</code> | The dynamic blocks: the SNP set is the viewport's, so a pan refetches while the stale triangle draws under the live transform. |
| **effectiveLdMetric**<br><code>LDMetric</code> | The metric the loaded values are: a file with one column serves it whichever is asked for. |
| **effectiveUseGenomicPositions**<br><code>boolean</code> | Whether the loaded matrix is at genomic positions: a multi-region view falls back to uniform columns. |
| **r2Available**<br><code>boolean</code> |  |
| **dprimeAvailable**<br><code>boolean</code> |  |
| **loadedLDWindow**<br><code>number &#124; undefined</code> | The pair window the loaded matrix was computed at, or undefined for the whole triangle. The status bar names it, since a pair past it is not drawn and reads as no linkage. |
| **focalSnpIndex**<br><code>number</code> | Index of the focal SNP in `snps`, or -1. |
| **colorEncoding**<br><code>ContinuousRef &amp; { scheme: "blues" &#124; "blueyellowred" &#124; "cividis" &#124; "fall" &#124; "inferno" &#124; "juicebox" &#124; "magma" &#124; "purpleorange" &#124; "redblue" &#124; "redgreyblue" &#124; "reds" &#124; "viridis"; }</code> | The `color` object under the preset of the loaded metric, so a stale triangle during a metric switch keeps its hue. Both presets name a scheme, so the encoding always carries one. |
| **notices**<br><code>string[]</code> | What the corner notice lists. |
| **colorScheme**<br><code>"blues" &#124; "blueyellowred" &#124; "cividis" &#124; "fall" &#124; "inferno" &#124; "juicebox" &#124; "magma" &#124; "purpleorange" &#124; "redblue" &#124; "redgreyblue" &#124; "reds" &#124; "viridis"</code> |  |
| **colorReverse**<br><code>boolean</code> | `color.reverse`, or where unset whether the scheme runs dark at its low end. |
| **colorDomain**<br><code>[number, number]</code> | The domain the statistic is colored over: each pinned end holds, and an open one is the statistic's own 0 or 1. |
| **colorRamp**<br><code>Uint8Array&lt;ArrayBufferLike&gt;</code> | The ramp's 256 entries, read by the GPU texture, the Canvas2D fill and the legend. Reads `colorScheme` and `colorReverse` rather than the encoding, so a domain edit re-uploads no texture. |
| **colorScales**<br><code>ColorScale[]</code> | The ramp the cells paint through, titled by the loaded metric. An end pinned inside the statistic's 0 to 1 reads `≤` or `≥`. |
| **renderState**<br><code>LDRenderState</code> |  |
| **matrixTop**<br><code>number</code> | The band above the matrix: the connector lines in columns, the labels at genomic positions when they are on, else nothing. |
| **connectorLineCoords**<br><code>ConnectorCoord[]</code> | Each column tied to its SNP's genomic x, for the connector lines. |

75 inherited getters from 9 models:

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

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

From [GlobalFetchMixin](../globalfetchmixin): [`host`](../globalfetchmixin#getter-host), [`staticBlockSignature`](../globalfetchmixin#getter-staticblocksignature), [`dynamicBlockSignature`](../globalfetchmixin#getter-dynamicblocksignature), [`viewportEmpty`](../globalfetchmixin#getter-viewportempty), [`canRender`](../globalfetchmixin#getter-canrender), [`rendersCanvas`](../globalfetchmixin#getter-renderscanvas), [`paintInert`](../globalfetchmixin#getter-paintinert), [`svgReady`](../globalfetchmixin#getter-svgready), [`displayPhase`](../globalfetchmixin#getter-displayphase)

From [RegionTooLargeMixin](../regiontoolargemixin): [`gateEnabled`](../regiontoolargemixin#getter-gateenabled), [`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): [`paintSuperseded`](../renderlifecyclemixin#getter-paintsuperseded), [`painted`](../renderlifecyclemixin#getter-painted)

From [KeyedFetchMixin](../keyedfetchmixin): [`dataSuperseded`](../keyedfetchmixin#getter-datasuperseded), [`currentFetchKey`](../keyedfetchmixin#getter-currentfetchkey), [`dataCurrent`](../keyedfetchmixin#getter-datacurrent)

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 [LegendMixin](../legendmixin): [`showLegend`](../legendmixin#getter-showlegend), [`legendTop`](../legendmixin#getter-legendtop), [`legendRight`](../legendmixin#getter-legendright), [`legendSpec`](../legendmixin#getter-legendspec), [`hasLegendKey`](../legendmixin#getter-haslegendkey)

From [TriangleMatrixMixin](../trianglematrixmixin): [`squashToHeight`](../trianglematrixmixin#getter-squashtoheight), [`canvasWidth`](../trianglematrixmixin#getter-canvaswidth), [`viewTransform`](../trianglematrixmixin#getter-viewtransform), [`matrixRegions`](../trianglematrixmixin#getter-matrixregions), [`matrixHeight`](../trianglematrixmixin#getter-matrixheight), [`matrixBlocks`](../trianglematrixmixin#getter-matrixblocks), [`yScalar`](../trianglematrixmixin#getter-yscalar), [`triangleTransform`](../trianglematrixmixin#getter-triangletransform), [`triangleFrame`](../trianglematrixmixin#getter-triangleframe)


## Methods

| Member | Description |
| --- | --- |
| **rpcProps**<br><code>() =&gt; LDRpcProps</code> |  |
| **columnX**<br><code>(column: number) =&gt; number</code> | Viewport x of a fractional column index: `i + 0.5` is column i's apex. Uses the payload's own column width, so it follows the live transform through a zoom's refetch. |
| **locusViewportX**<br><code>(refName: string, coord: number) =&gt; number &#124; undefined</code> | Viewport x of a locus, or undefined when it has none. |
| **hitTest**<br><code>(mouseX: number, mouseY: number) =&gt; LDCellHit &#124; undefined</code> | The computed cell under a display-px point: a pair outside the band, or one no estimator filled, is not drawn and not hit. |
| **trackMenuItems**<br><code>() =&gt; MenuItem[]</code> |  |
| **renderSvg**<br><code>(opts: ExportSvgDisplayOptions) =&gt; Promise&lt;ReactNode&gt;</code> |  |

11 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 [RegionTooLargeMixin](../regiontoolargemixin): [`resolvedByteLimit`](../regiontoolargemixin#method-resolvedbytelimit), [`gateFetchState`](../regiontoolargemixin#method-gatefetchstate)

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

From [TriangleMatrixMixin](../trianglematrixmixin): [`cellToScreen`](../trianglematrixmixin#method-celltoscreen), [`screenToCell`](../trianglematrixmixin#method-screentocell)


## Actions

| Member | Description |
| --- | --- |
| **setFocalSnp**<br><code>(snp: LDSnp &#124; undefined) =&gt; void</code> |  |
| **setLineZoneHeight**<br><code>(n: number) =&gt; void</code> |  |
| **setLDMetric**<br><code>(metric: LDMetric) =&gt; void</code> | `color.field`, the statistic the cells are, which refetches. |
| **setShowVerticalGuides**<br><code>(show: boolean) =&gt; void</code> |  |
| **setShowLabels**<br><code>(show: boolean) =&gt; void</code> |  |
| **setVariantLayout**<br><code>(value: "columns" &#124; "genomic") =&gt; void</code> |  |
| **setColorScheme**<br><code>(scheme: "blues" &#124; "blueyellowred" &#124; "cividis" &#124; "fall" &#124; "inferno" &#124; "juicebox" &#124; "magma" &#124; "purpleorange" &#124; "redblue" &#124; "redgreyblue" &#124; "reds" &#124; "viridis") =&gt; void</code> | The scheme, with `reverse` back to unset so it follows the scheme. The painted metric's own preset writes `scheme` unset, so it keeps following the metric. |
| **startRenderingBackend**<br><code>(backend: LDRenderingBackend) =&gt; void</code> |  |

36 inherited actions from 8 models:

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

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

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 [KeyedFetchMixin](../keyedfetchmixin): [`commitFetchResult`](../keyedfetchmixin#action-commitfetchresult)

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 [LegendMixin](../legendmixin): [`setShowLegend`](../legendmixin#action-setshowlegend), [`dismissLegendSection`](../legendmixin#action-dismisslegendsection)

From [TriangleMatrixMixin](../trianglematrixmixin): [`setRpcData`](../trianglematrixmixin#action-setrpcdata), [`setSquashToHeight`](../trianglematrixmixin#action-setsquashtoheight)


