MultiWaySyntenyDisplay
Auto-generated from the config schema in the source — see the config guide for concepts. Provided by the linear-comparative-view plugin. View source.
Example usage
Selected on a multi-genome SyntenyTrack (an MCScanBlocksAdapter listing
several assemblies) shown in a plain linear genome view. Draws one lane per
assembly in that assembly's own local coordinate frame — non-anchored, like
the multi-sample variant matrix — with ribbons connecting each gene's
placements between adjacent lanes:
{
type: 'SyntenyTrack',
trackId: 'grape_peach_cacao',
name: 'grape/peach/cacao orthologs',
assemblyNames: ['grape', 'peach', 'cacao'],
adapter: {
type: 'MCScanBlocksAdapter',
uri: 'grape.blocks',
blockAssemblies: ['grape', 'peach', 'cacao'],
bedLocations: [
{ uri: 'grape.bed' },
{ uri: 'peach.bed' },
{ uri: 'cacao.bed' },
],
},
displays: [
{
type: 'MultiWaySyntenyDisplay',
displayId: 'grape_peach_cacao-MultiWaySyntenyDisplay',
},
],
}The same display with a curated lane order, genes colored by ortholog cluster, and ribbons colored by percent identity:
{
type: 'SyntenyTrack',
trackId: 'primate_synteny',
name: 'Primate synteny',
assemblyNames: ['hg38', 'panTro6', 'gorGor6', 'ponAbe3'],
adapter: {
type: 'MCScanBlocksAdapter',
uri: 'hg38.blocks',
blockAssemblies: ['hg38', 'panTro6', 'gorGor6', 'ponAbe3'],
bedLocations: [
{ uri: 'hg38.bed' },
{ uri: 'panTro6.bed' },
{ uri: 'gorGor6.bed' },
{ uri: 'ponAbe3.bed' },
],
},
displays: [
{
type: 'MultiWaySyntenyDisplay',
displayId: 'primate_synteny-MultiWaySyntenyDisplay',
rows: { domain: ['panTro6', 'gorGor6', 'ponAbe3'] },
color: { field: 'cluster' },
ribbonColor: { field: 'identity' },
},
],
}Draws a multi-genome SyntenyTrack in a linear genome view as one lane per
assembly, with ribbons joining each gene's placements in adjacent lanes.
Related links
- Adapter: BlastTabularAdapter
- Adapter: ChainAdapter
- Adapter: DeltaAdapter
- Adapter: MashMapAdapter
- Adapter: MCScanAnchorsAdapter
- Adapter: MCScanBlocksAdapter
- Adapter: MCScanSimpleAnchorsAdapter
- Adapter: MultiGenomeIndexedPAFAdapter
- Adapter: MultiGenomePAFAdapter
- Adapter: MultiPairwiseSyntenyAdapter
- Adapter: PAFAdapter
- Adapter: PairwiseIndexedPAFAdapter
- State model: runtime API
- Base config: BaseLinearDisplay
- Tutorial: Synteny from an ortholog table (grape, peach, cacao)
- Config guide: Grouping and lane order
- Config guide: Tracks
- Developer guide: Custom track and display types
Config slots
These slots go on a display entry: "displays": [{ "type": "MultiWaySyntenyDisplay", ... }], 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 |
|---|---|
| color MultiWayGeneColor | The gene glyphs' fill: a CSS color or jexl: callback, goldenrod unset, or { field } to paint each value its own palette color with a key. |
utrColorcolor = '#357089' | the fill color of the untranslated parts of a gene glyph, matching the canvas gene track default callback args: feature |
| rows LaneRows | The lane order and the lanes drawn, which the Lanes menu, a header drag and the lane picker write. |
| ribbonColor RibbonColor | "rgba(130,130,130,0.3)" paints every ribbon; { field: "strand" } the record's strand, { field: "identity" } a preset ramp and { field: "group" } a declared column. |
hideUnlabelledboolean = false | under a text column, draw only the ribbons whose pair carries a label |
drawCurvesboolean = false | draw the ribbons as bezier curves rather than straight chords. A plain per-track slot: this display does not share the linear synteny view's view-level drawCurves override. Straight is the default in both places: a chord's slant reads directly as the offset between two lanes drawn in different coordinate frames, which is exactly what a curve hides |
laneGeneTracksstringArray = [] | the trackId of the gene track each lane draws, one per genome, or an entry spelling {assembly}, such as {assembly}-ncbiRefSeq, naming in each lane the track whose id has that lane's genome, or any of its aliases, written there. Plain ids outrank {assembly} entries, and an earlier entry outranks a later one. A lane whose genome no entry names draws the session's best-ranked annotation track for it, which on a config holding several gene sets per genome is whichever is declared first |
bridgeSkippedLanesboolean = true | join a group across a lane that places nothing for it, to the next lane down that does. A ribbon otherwise joins adjacent lanes only, so a sparse lane mid-stack cuts every chain running through it |
showLegendboolean = true | show the color key: the anchor lane's drawn gene colors, and what ribbonColor paints — the strand colors, the identity ramp, or a column's labels. Derived from what is on screen, so a color slot resolving to one color and a ribbon scale painting nothing key nothing. Defaults to on |
showLaneTicksboolean = true | draw each lane's own coordinate ticks, at one interval shared by every lane. Equal spacing between two lanes means equal bp-per-pixel; a lane whose ticks crowd together is zoomed out. Turning this off leaves the header's span and multiple as the only scale statement |
textfeatureField = '' | The feature field, or jexl expression over feature, each lane's gene labels print; unset, the gene's name, else its ID. |
inlineLaneNamesboolean = false | print each lane's genome name over the left end of its gene row, without its coordinates, instead of on a line above the genes. The stack then fits 12 px less per lane |
showGeneLabelsboolean = true | print gene names in a row under each lane's genes, dropping a name where its neighbours leave it no room |
| laneLayers MultiWayLaneLayer | Rows of data every lane draws above its genes, each from that genome's own track: a GC or conservation bigWig per genome as bars, say |
splitStrandsboolean = true | draw each lane's genes in two rows either side of its line: the ones reading rightwards on screen above, leftwards below, so a flipped lane's genes turn over with it and a collinear block keeps one row down the stack. A lane too short for two rows draws one |
heightnumber = 240 | default height for the track |
lodModestringEnum (auto, fine, coarse) = 'auto' | stored tier of a tiered file to fetch: 'auto' switches on the adapter's bpPerPx threshold, 'fine' pins the per-row CIGAR tier, and 'coarse' the tier whose CIGAR is folded to its large indels |
| Inherited from BaseLinearDisplay | 2 slots |
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 |
Retired keys
An older config may still write these. Each loads without an error, and jbrowse validate reports it as stale.
| Key | On load |
|---|---|
maxFeatureScreenDensity | ignored |
maxDisplayedBpPerPx | ignored |
mouseover | ignored |
jexlFilters | moved into a current slot |