LinearMafDisplay
Auto-generated config schema for the current JBrowse release — see the
config guide for concepts. Provided by the maf plugin.
View source.
Example usage
Set through the track's displayDefaults, which is what makes a track open in
this state rather than requiring every viewer to set it from the menu. A
whole-genome alignment with many species is the case worth tuning: a shorter
rowHeight fits more rows on screen, and the conservation band is what most
readers scan first.
{
type: 'MafTrack',
trackId: 'multiz_example',
name: 'Multiz alignment',
assemblyNames: ['hg38'],
adapter: {
type: 'BigMafAdapter',
bigBedLocation: { uri: 'https://example.com/multiz.bb' },
samples: ['hg38', 'panTro6', 'rheMac10', 'mm39'],
},
displayDefaults: {
rowHeight: 12,
showConservation: true,
conservationHeight: 40,
showRowLabels: true,
},
}
See the Config slots section below for all available configuration fields.
the display for a MafTrack: one row per aligned species, with a conservation
summary above them. The conservation band, per-row identity,
color-by-source-chromosome, and inversion overlays are all derived from the
alignment itself and toggled from the track menu, so the slots here are
show/hide defaults and band sizes.
Related links
- Adapter: BgzipMafAdapter
- Adapter: BgzipTaffyAdapter
- Adapter: BigMafAdapter
- Adapter: MafTabixAdapter
- State model: runtime API
- Base config: BaseLinearDisplay
- Guide: Custom track and display types
- Guide: Tracks
Config slots
These slots go on a display entry:
"displays": [{ "type": "LinearMafDisplay", ... }], 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 |
|---|---|
fetchSizeLimitnumber = 5_000_000 | No MAF adapter declares a fetchSizeLimit, so this display's value is the whole budget the byte gate measures against — and MAF has no second axis behind it, since densityTooLarge is canvas's override and false here. It inherited the base 1 Mb until 2026-08-14, which nobody chose: MAF_LARGE_BLOCKS.md § "Fetch dominates at 470-way" measures a 40 kb buffered window (a 20 kb view) at 5.3 MB uncompressed for 100 rows, and real MAF-BED compresses 2.9–4.0x, so an hg38 100-way — an ordinary multiz, well inside the row count the same doc measures at 38–55fps — came to ~1.3–1.8 MB and bannered a gene-scale view it renders fine.5 Mb for the same reason LinearBasicDisplay uses it: the index estimate is block-granular, so a tighter gate banners a view that isn't large. A 470-way is ~6–8 MB over that window and so still asks above the force-load floor — which is where asking helps, since that is the zoom range summaryAdapter covers and the same doc's answer for that row count is the summary tier rather than a raised budget. Below the floor SUB_FLOOR_BYTE_BUDGET_FACTOR lets it through, deliberately: at a locus the user navigated to, a 470-way is the same category as any other deep data, and comparable in size to the ultradeep BAM the tier was sized against.advanced |
heightmaybeNumber = undefined | Override the base height slot as a maybeNumber: unset means fit rows to their content height, an explicit value is a drag-resized track height. See the model's fitTargetHeight getter. |
rowProportionnumber = DEFAULTS.rowProportion | fraction of the row height each glyph fills |
showAllLettersboolean = DEFAULTS.showAllLetters | draw every base letter instead of only mismatches |
mismatchRenderingboolean = DEFAULTS.mismatchRendering | color bases by mismatch to the reference |
showAsUpperCaseboolean = DEFAULTS.showAsUpperCase | uppercase all base letters |
showCoverageboolean = DEFAULTS.showCoverage | show the coverage band |
showAlignmentsboolean = DEFAULTS.showAlignments | Show the per-sample alignment rows. When off, only the coverage band renders (independent of showCoverage). |
coverageHeightnumber = DEFAULTS.coverageHeight | height of the coverage band in px |
showConservationboolean = DEFAULTS.showConservation | Show the conservation band (per-bp percent identity to the reference). Independent of showCoverage/showAlignments. |
conservationHeightnumber = DEFAULTS.conservationHeight | height of the conservation band in px |
conservationModestringEnum = DEFAULTS.conservationMode | Conservation band resolution: base (per-bp percent identity) or codon (per-codon amino-acid identity; needs an annotationAdapter). |
rowIdentityModestringEnum (none, heatmap, xyplot) = DEFAULTS.rowIdentityMode | Per-row identity rendering shown once zoomed out past base level: heatmap shades the row band, xyplot draws a per-species identity wiggle, none keeps the base coloring at every zoom. |
rowIdentityAutoZoomboolean = DEFAULTS.rowIdentityAutoZoom | When true (the default) the rowIdentityMode plot draws only while zoomed out, and zooming in to base level swaps it back for the base/SNP coloring — where individual bases are legible, the letters say more than a per-pixel mean of them. This is UCSC wigMaf behavior. When false the plot is pinned on at every zoom and the bases are never shown.The slot name is the mechanism ("auto by zoom"); what a user picks is which of the two renderings they get zoomed in, which is how the menu row is worded. |
showAnnotationsboolean = DEFAULTS.showAnnotations | Show the per-species CDS reading-frame overlay from the configured annotationAdapter (UCSC mafFrames). No effect without one. |
showTranslationboolean = DEFAULTS.showTranslation | Translate each species in the reference reading frame and draw the amino acid on each codon in place of nucleotides (UCSC wigMaf "show translation"). Needs an annotationAdapter. |
colorByChromosomeboolean = DEFAULTS.colorByChromosome | Color each species' blocks by their source chromosome instead of the per-base SNP coloring, surfacing translocations/rearrangements. |
showInversionsboolean = DEFAULTS.showInversions | Overlay a strand-flip (inversion) indicator: inverted blocks get a diagonal hatch. |
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 species tree sidebar |
showBranchLengthboolean = true | position tree nodes by branch length (dendrogram) rather than evenly by topology (cladogram) |
showRowLabelsboolean = true | draw the species name over the left of each row |
| Inherited from BaseLinearDisplay | 4 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 |
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 |