LinearMultiSampleVariantMatrixDisplay
Auto-generated config schema for the current JBrowse release — see the
config guide for concepts. Provided by the variants
plugin.
View source.
Example usage
Minimal VariantTrack config selecting the matrix display. The displays array
form is required here (rather than the object shorthand) because this is a
non-default display type — see
configuring displays:
{
type: 'VariantTrack',
trackId: 'cohort',
name: 'Cohort variants',
assemblyNames: ['hg38'],
adapter: {
type: 'VcfTabixAdapter',
uri: 'https://example.com/cohort.vcf.gz',
},
displays: [
{
type: 'LinearMultiSampleVariantMatrixDisplay',
},
],
}
Preloading sample metadata: point the adapter's samplesTsvLocation at a TSV
whose first column is the sample name and whose other columns are per-sample
attributes (e.g. population), then colorBy one of those attributes to color
the matrix rows on load (same metadata mechanism as the regular
LinearMultiSampleVariantDisplay):
{
type: 'VariantTrack',
trackId: 'cohort',
name: 'Cohort variants',
assemblyNames: ['hg38'],
adapter: {
type: 'VcfTabixAdapter',
uri: 'https://example.com/cohort.vcf.gz',
samplesTsvLocation: { uri: 'https://example.com/samples.tsv' },
},
displays: [
{
type: 'LinearMultiSampleVariantMatrixDisplay',
height: 400,
colorBy: 'population',
},
],
}
Taller matrix filtering rare variants (MAF < 5 %). Row order, per-row color and
group labels come from the adapter's samplesTsvLocation above — the display's
own layout holds the arrangement the user then drags into place, so it is
session state rather than a config slot:
{
type: 'VariantTrack',
trackId: 'cohort',
name: 'Cohort variants',
assemblyNames: ['hg38'],
adapter: {
type: 'VcfTabixAdapter',
uri: 'https://example.com/cohort.vcf.gz',
},
displays: [
{
type: 'LinearMultiSampleVariantMatrixDisplay',
height: 400,
minorAlleleFrequencyFilter: 0.05,
},
],
}
See the Config slots section below for all available configuration fields.
Related links
- Adapter: BedpeAdapter
- Adapter: SplitVcfTabixAdapter
- Adapter: StarFusionAdapter
- Adapter: VcfAdapter
- Adapter: VcfTabixAdapter
- State model: runtime API
- Base config: SharedVariantDisplay
- Guide: Custom track and display types
- Guide: Defaults for all tracks
- Guide: LD at a selective sweep (human)
- Guide: Multi-sample variant display
- Guide: Mutation cohort (TCGA)
- Guide: Tracks
- Guide: Variant track
Config slots
These slots go on a display entry:
"displays": [{ "type": "LinearMultiSampleVariantMatrixDisplay", ... }], or in
the track's displayDefaults
when this is its default display. Slot types (fileLocation, frozen, ...) are
explained in the config slot types reference.
Slots a base configuration contributes are listed here too, so this table is the
whole surface.
| Slot | Description |
|---|---|
heightnumber = 250 | Starting height in pixels for the whole display, including the lineZoneHeight band above the rows; drag-resizable, and the rows divide what is left over while row height is on auto-fit |
lineZoneHeightnumber = 20 | Raises the shared slot's 0 default: this display lays columns out by feature index, so it needs the zone for the lines tying each column back to its genomic position. Drag-resizable, like height.advanced |
| Inherited from SharedVariantDisplay | 15 slots |
showReferenceAllelesboolean = false | Starting value for drawing reference alleles. When false, the row background is filled solid grey and only ALT alleles are painted on top (makes overlapping variants easier to see); when true, reference alleles are drawn normally. Seeds referenceDrawingMode the first time a config is loaded. |
showRowSeparatorsboolean = false | Draw a hairline between adjacent sample rows. Off by default, and only drawn once rows are at least 4px tall — below that the line is as thick as the row it borders. |
showTooltipsboolean = true | Show the hover tooltip naming the genotype, the sample and the record under the pointer. On by default; turning it off leaves every other hover affordance — the crosshairs, the highlighted cell, the cross-display session.hovered channel — alone, so the pointer still says where it is while the panel stops covering the rows beside it.A config slot rather than a display property, so a track config can ship with it off and a figure capture keeps it off across a reload. Both multi-sample displays honor it: they draw the same tooltip off the same hoveredGenotype slot. |
renderingModestringEnum (alleleCount, phased) = 'alleleCount' | 'alleleCount' draws one row per sample colored by allele dosage; 'phased' draws one row per haplotype |
featureColorstring = '' | Optional per-feature color for the genotype cells: a jexl expression (or plain CSS color) evaluated once per variant in the worker, painting every alt-carrying cell with that color while ref/no-call cells keep their normal coloring so "who carries it" still reads. Empty means the default genotype-based coloring (allele dosage / phasing). The "Color by..." menu offers presets like consequence impact (jexl:impactColor(feature)), but any feature jexl works, same as the standard color slot. |
minorAlleleFrequencyFilternumber = 0 | Hide variants whose minor allele frequency is below this threshold advanced |
maxMissingnessFilternumber = 1 | Hide variants whose fraction of no-call (missing) genotypes is above this threshold; 1 keeps every variant advanced |
showLegendmaybeBoolean = true promotable | Whether to draw the floating legend over the display. It is clipped to the display's own bounds, so while it is on it sets a floor under the lane height: turn it off to size a short lane to its rows rather than to its key, which is what a one-record SV call genotyped across a handful of carriers wants. |
colorBystring = '' | Name of a sample-metadata attribute (a column in the adapter's samplesTsvLocation, e.g. 'population') to color the sidebar rows by; empty means no grouping |
groupBystring = '' | Name of a sample-metadata attribute (a column in the adapter's samplesTsvLocation, e.g. 'population') to order the sample rows by, so each group's rows are contiguous and a group-restricted genotype pattern reads as one band; empty means the rows keep their existing order |
referenceDrawingModestringEnum (draw, skip) = 'skip' | A 'draw'/'skip' toggle for reference alleles, settable independent of showReferenceAlleles (the admin-config-only starting default). No fallback derivation at read time — preProcessSnapshot below seeds this from showReferenceAlleles once, the first time a config lacking it is hydrated, so from then on this slot alone is the single source of truth. |
rowHeightnumber = 0 | per-row height in px, scrolling the rows that do not fit; 0 (the default) fits the rows to the display height instead, dividing it between them |
showTreeboolean = true | Show the sample clustering tree in the sidebar |
showBranchLengthboolean = true | position tree nodes by branch length (dendrogram) rather than evenly by topology (cladogram) |
showRowLabelsboolean = true | Show the per-sample row labels in the sidebar |
| Inherited from BaseLinearDisplay | 5 slots |
maxFeatureScreenDensitynumber = 1 | maximum features per pixel before showing a "too many features" message advanced |
mouseoverstring = | text to display when the cursor hovers over a feature callback args: feature |
jexlFiltersstringArray = [] | config jexlFilters are deferred evaluated so they are prepended with jexl at runtime rather than being stored with jexl in the config |
fetchSizeLimitnumber = 1_000_000 | maximum data to attempt to download for a given track, used if adapter doesn't specify one advanced |
forceLoadboolean = false | Declarative equivalent of the "Force load" button on the "too much data" banner: when true the display always renders, however large the region or dense the features. Off by default (the gate guards against huge downloads). Set it on a view no one can interact with — an embedded / notebook view, or a screenshot — where the region is known and you want it drawn without a click. advanced |