LinearCanvasBaseDisplay
Auto-generated from the config schema in the source — see the config guide for concepts. Provided by the canvas plugin. View source.
Holds the slots shared by the canvas-drawn linear feature displays, which stack overlapping features in rows (pileup-style glyphs).
Related links
- Extended by: LinearBasicDisplay
- Extended by: LinearVariantDisplay
- State model: runtime API
- Base config: BaseLinearDisplay
- Config guide: Tracks
- Docs: Cookbook
Config slots
LinearCanvasBaseDisplay is a shared base schema, not a type you name in a config. Set these slots on one of the configs under Extended by above, each of which lists them as inherited and shows the shape in an example. 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 |
|---|---|
| filter FieldPredicate | The features the display draws, a list of FieldPredicate entries a feature must all pass: a field of the feature's own ({ field: "score", gte: 100 }), a jexl: expression that must hold ("jexl:feature.type == 'gene'"), or geneLike, true for every gene, transcript and RNA type, the transcriptTypes and containerTypes, and a top-level CDS. |
mouseoverstring = | text to display when the cursor hovers over a feature; left at the default, the tooltip adds the description line (labels.description) as a second rowcallback args: feature |
maxFeatureScreenDensitynumber = 1 | maximum features per pixel before showing a "too many features" message advanced |
| legend Legend | The display's color key, when it has one: the key an encoding.color field derives, or a variant track's consequence-impact / SV-type presets. |
showLabelsstringEnum (auto, nameAndDescription, name, description, none) = 'auto' | Label text drawn beside each feature: "auto" adapts to zoom, dropping descriptions at maxDescriptionFeatureDensity and names at maxLabelFeatureDensity; "nameAndDescription", "name", "description", and "none" pin a choice at every zoom. Defaults to auto. Replaces the former showLabels on/off enum + showDescriptions boolean pair |
maxLabelFeatureDensitynumber = 0.2 | In "auto" showLabels mode, hide labels when visible feature density (features/pixel) exceeds this value advanced |
maxDescriptionFeatureDensitynumber = 0.1 | In "auto" showLabels mode, hide descriptions when visible feature density (features/pixel) exceeds this value. Lower than maxLabelFeatureDensity so descriptions drop before names advanced |
| encoding FeatureEncoding | The channels the features paint through: encoding.color, each feature's main fill. |
showOutlineboolean = false | draw an outline around each feature |
outlineColormaybeColor | the outline's color while showOutline draws one; unset takes the theme's |
featureHeightnumber = 10 | height in pixels of the main body of each feature in the normal display mode; compact draws it at 0.6 of this and superCompact at 0.3 callback args: feature |
displayModestringEnum (normal, compact, superCompact, collapsed) = 'normal' | Feature height preset, normal by default; compact and superCompact shrink the rows, and collapsed packs every feature onto a single row with all labels hidden |
| facet SectionFacet | One labelled section of the track per value of a field: "strand", or { field, sort } with the order its sections stack in. |
| labels CanvasFeatureLabels sub-schema | The fields a feature's name label and description line read. |
labels.namefeatureField = 'jexl:get(feature,'name') || get(feature,'id')' | the field each feature's name label reads, such as gene_name, or a jexl: expression over feature; the default reads the name, else the ID, and an empty value draws no name |
labels.descriptionfeatureField = | the field each feature's description line reads, such as note, or a jexl: expression over feature; the default reads note, else description, else function, and an empty value draws no description |
heightModestringEnum (fixed, grow, fit) = 'fit' | Track-sizing strategy — how the track responds when there are more features than fit (shared vocabulary with the alignments display, exposed in the "Track sizing" menu). fit (the default) keeps the track height and gives up descriptions, then isoforms, then names, then squeezes boxes down to 2px, and scrolls only what still overflows; fixed keeps a scrollable fixed height; grow expands the track to show all features. Orthogonal to the per-feature size set by displayMode, which fit never enlarges. |
growMaxHeightnumber = 800 | Ceiling in pixels for the "autogrow track height" sizing mode; a track with more content than this grows to the ceiling and scrolls the rest. Does not apply to the fixed or fit modes advanced |
| Inherited from BaseLinearDisplay | 3 slots |
heightnumber = 100 | default height for the track |
fetchSizeLimitnumber = 1000000 | bytes a region may fetch before the display asks first; an adapter that sets its own limit overrides this 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 |