LinearHicDisplay
Auto-generated from the @jbrowse/mobx-state-tree model in the source — see the developer guide for concepts. Provided by the hic plugin. View source.
The Hi-C contact matrix as a triangle over the view.
Example usage
A HicTrack whose display pins the color scale's top, so two tracks set
alike share one scale, and runs one binsize coarser than the zoom picks:
{
type: 'HicTrack',
trackId: 'hic',
name: 'Hi-C',
assemblyNames: ['hg38'],
adapter: { type: 'HicAdapter', uri: 'https://example.com/contacts.hic' },
displays: [
{
type: 'LinearHicDisplay',
displayId: 'hic-LinearHicDisplay',
encoding: {
color: { scale: { type: 'symlog', domainMax: 500 } },
},
data: { resolution: -1 },
},
],
}The configuration slots for this model are documented on its config schema page.
Each section ends with the members a composed model contributes, linked to the page that documents them.
Properties
| Member | Description |
|---|---|
typetype: types.literal('LinearHicDisplay') | |
configurationconfiguration: ConfigurationReference(configSchema) |
Volatiles
| Member | Description |
|---|---|
fileInfoAdapterRead<HicHeader> | undefined | The file's normalizations and binsizes, stamped with the adapter config they answer. |
25 inherited volatiles from 8 models
From PointerHoverMixin: pointer
From TriangleMatrixMixin: rpcData
From LegendMixin: dismissedLegendSections
From KeyedFetchMixin: loadedFetchKey
From FetchMixin: activeSignal, fetchGeneration, reloadCounter, statusWindow, error, statusMessage, statusProgress, fetchCanceled, fetchRotation
From RenderLifecycleMixin: canvasDrawn, paintCount, currentRenderingBackend, renderTick, autorunsInstalled, renderError, offScreen
From RegionTooLargeMixin: forceLoadTrack, byteEstimate, gateMeasuredViewportKey
From TrackHeightMixin: scrollTop, hostHeight
Getters
| Member | Description |
|---|---|
availableNormalizationsstring[] | undefined | |
availableBinSizesnumber[] | undefined | Smallest first, so a positive data.resolution is always finer. |
hasControlboolean | Whether the adapter names a control, which observed/control needs. |
resolutionnumber | data.resolution: binsizes finer than the zoom's pick. |
colorDomainQuantilenumber | encoding.color.scale.domainQuantile: the quantile of the loaded values an unset domainMax follows, their maximum at 1. |
clipColorDomainQuantilenumber | The quantile "Emphasize faint contacts" clips the domain at: colorDomainQuantile while it clips, else the one ticking it writes. Each fetch asks the worker for this one whichever is drawn, so the toggle reselects nothing. |
normalizationstring | data.normalization, the one asked for. |
colorField"observed" | "observed/control" | "observed/expected" | encoding.color.field, what the fetch asks the worker to put in each cell. |
countFloorsHicCountFloors | The filter list's floors on a cell's counts, which the worker applies before the ratio. |
paintedColorField"observed" | "observed/control" | "observed/expected" | The field the loaded cells are: observed/expected falls back to the counts where the file has no expected values at the binsize. |
hasBinSizesboolean | Whether the binsize list has arrived; every resolution control gates on it. |
activeNormalizationstring | The normalization to request: the selection where the file has it, else the next best it does. A getter, so a file lacking the selection never marks the track edited. |
loadedQuantileScorenumber | The loaded values' score at clipColorDomainQuantile: the worker's answer, or after an edit a selection over the loaded matrix, so a new percentile refetches nothing. The next fetch asks the worker for the new one. |
colorExtentreadonly [number, number] | What an open end of the color domain follows: the loaded values from 0, which is where a count's extent starts, to their colorDomainQuantile below 1, else their maximum. |
awaitingPrerequisiteboolean | Retry is two-stage: the contact fetch declines until the header it needs lands, and the header's arrival wakes it. infoFetchFailure.test.ts pins it. |
appliedNormalizationsstring[] | The normalizations the loaded matrix has, the requested one first. Each region pair falls back on its own, per binsize (KR at 5 kb, nothing at 2.5 Mb is typical) and per chromosome (chrY often lacks SCALE), so a view across chromosomes can hold more than one. The key names them all and the menu ticks from them. Fetch-derived, so it stays out of rpcProps(). |
paintedFieldName{ name: string; isCount: boolean; } | The painted field's name for the key and the tooltip. |
autoBinSizeIdxnumber | The binsize index auto mode picks: the largest at most 2 bp/px, about half a bin per pixel, else the finest. |
colorScalesColorScale[] | The value ramp. A top below the largest loaded value reads ≥. The title names the loaded binsize, so a figure carries it, unless encoding.color.legend.title replaces it. |
binSizeIdxnumber | The index in effect after resolution's steps, clamped so steps set at another zoom cannot index out of range. |
valueLabelstring | What the tooltip calls a bin's value. |
binSizenumber | undefined | |
canStepResolutionFinerboolean | |
canStepResolutionCoarserboolean | |
renderStateHicRenderState | |
viewSignaturestring | undefined | The static blocks plus the binsize, so a pan inside them redraws and only a block entering or a binsize step refetches. Undefined until the header lands. |
91 inherited getters from 13 models
From PointerHoverMixin: hoveredFeature
From TriangleMatrixMixin: heightMode, matrixTop, canvasWidth, viewTransform, matrixRegions, matrixHeight, matrixBlocks, yScalar, triangleTransform, triangleFrame
From ColorWritesMixin: writtenColor
From ParkedColorMixin: parkedColor
From MatrixRampMixin: colorEncoding, colorScaleType, colorScheme, colorReverse, colorRamp, colorScale, colorDomain, colorMidNorm, matrixColor, colorFieldTitle
From LegendMixin: showLegend, legendRight, legendTop, legendSpec, hasLegendKey
From GlobalFetchMixin: host, canvasWidthPx, staticBlockSignature, dynamicBlockSignature, viewportEmpty, canRender, rendersCanvas, paintInert, svgReady, displayPhase
From KeyedFetchMixin: dataSuperseded, currentFetchKey, dataCurrent
From FetchMixin: isLoading, isLoadingOrCanceled, fetchInert, awaitingDependentData, settingsFetchInputs
From RenderLifecycleMixin: paintSuperseded, painted
From RegionTooLargeMixin: gateEnabled, byteGateAdapterConfig, configuredFetchSizeLimit, densityTooLarge, byteGateAdapterPath, adapterFetchSizeLimit, configForceLoad, gateViewportSpanBp, gateViewport, aboveForceLoadFloor, gateExempt, estimatedFetchBytes, gateMeasurementStale, gateByteLimit, gateActive, densityGateActive, tooLargeStatus, regionTooLarge, regionTooLargeReason, zoomCanReleaseGate, gateSkipsMeasuredViewport
From TrackHeightMixin: configuredHeight, allottedHeight, height, resizing, scrollContentHeight, scrollViewportHeight, scrollableHeight
From BaseDisplay: parentTrack, RenderingComponent, DisplayBlurb, adapterConfig, isMinimized, featureNoun, featureWidgetType, liveNotices, plotKeys, plot, configNotices, notices, cornerNotices, plotExamples, configDocsUrl
Methods
| Member | Description |
|---|---|
| rpcProps | The settings that refetch. The binsize is zoom-derived and the quantile reselects on the main thread, so both ride as call arguments. |
hitTest(mouseX: number, mouseY: number) => HicContactItem | undefined | The contact under a display-px point, through the inverse of the transform the matrix was drawn with. |
hoverHitAt(mouseX: number, mouseY: number) => HicContactItem | undefined | No contact while the matrix loads: a global display replaces its whole frame, so the cells it holds are on their way out. |
configProblemsOf(conf: AnyConfigurationModel) => string[] | The schema's rules, then the filter entries the worker cannot apply. |
() => MenuItem[] | |
renderSvg(opts: ExportSvgDisplayOptions) => Promise<ReactNode> |
12 inherited methods from 6 models
From TriangleMatrixMixin: cellToScreen, screenToCell
From ParkedColorMixin: parkedColorOf
From MatrixRampMixin: rampColorScales
From LegendMixin: colorScalesIn, legendSpecIn
From RegionTooLargeMixin: resolvedByteLimit, gateFetchState
From BaseDisplay: renderingProps, liftPlot, plotProblems, plotWrites
Actions
| Member | Description |
|---|---|
startRenderingBackend(backend: HicRenderingBackend) => void | |
setLogScale(log: boolean) => void | The Log scale toggle: encoding.color.scale.type symlog, which keeps every nonzero count visible, or unset for observed's linear preset. |
setColorDomainQuantile(quantile: number) => void | |
setNormalization(normalization: string) => void | |
setFileInfo(read: AdapterRead<HicHeader>) => void | |
setResolution(steps: number) => void | data.resolution, binsizes finer than the zoom's pick. |
setBinSizeIdx(idx: number) => void | Lock to availableBinSizes[idx], clamped, stored as an offset from the auto pick so the choice keeps its meaning across zoom. |
setBinSize(binSize: number) => void | Lock to a binsize the file offers; any other is ignored. |
stepResolution(delta: number) => void | delta binsizes finer, clamped to the file's. |
43 inherited actions from 12 models
From PointerHoverMixin: setPointer
From TriangleMatrixMixin: setRpcData, setHeightMode
From ColorWritesMixin: colorByField, setColorValue, pickDefaultColor, pickSolidColor
From ParkedColorMixin: parkColor
From MatrixRampMixin: setColorScheme
From LegendMixin: setShowLegend, dismissLegendSection
From KeyedFetchMixin: commitFetchResult, reload
From FetchMixin: setError, setStatusMessage, stopActiveFetch, openStatusStream, cancelFetch, cancelFetchByUser, beforeDestroy, beginFetch, endFetch, runFetch
From RenderLifecycleMixin: markCanvasDrawn, resetCanvasDrawn, stopRenderingBackend, renderNow, setOffScreen, setRenderError, attachRenderingBackend
From RegionTooLargeMixin: clearByteEstimate, clearGateMeasurements, setForceLoadTrack, commitFetchBytes, forceLoad
From TrackHeightMixin: setScrollTop, setHostHeight, setHeight, resizeHeight, expandToContentHeight
From BaseDisplay: clearHoveredFeature, applyDisplaySettings, applyPlot