diff --git a/src/core/utils/theme.ts b/src/core/utils/theme.ts index c30a1ed74..29005c3f4 100644 --- a/src/core/utils/theme.ts +++ b/src/core/utils/theme.ts @@ -1,13 +1,12 @@ -import * as gt from '@gosling-lang/gosling-theme'; +import { type Themes, isThereTheme, getTheme as _getTheme } from '@gosling-lang/gosling-theme'; import { CHANNEL_DEFAULTS } from '../channel'; /* ----------------------------- THEME ----------------------------- */ export type Theme = ThemeType | ThemeDeep; -export type ThemeType = keyof typeof gt.Themes; -export enum Themes { - light = 'light', - dark = 'dark' -} +export type ThemeType = "light" | "dark" | "warm" | "ggplot" | "igv" | "ensembl" | "jbrowse" | "ucsc" | "washu" | "excel" | "google"; +// export type ThemType = keyof typeof Themes; +// Above line leads to `TypeError: Invalid value used as weak map key` error, due to cyclic dependency, I think. +// Refer to https://github.com/vega/ts-json-schema-generator/issues/1727 export interface ThemeDeep { base: ThemeType; @@ -143,8 +142,8 @@ export interface MarkStyle { // TODO: Instead of calling this function everytime, create a JSON object and use it throughout the project. export function getTheme(theme: Theme = 'light'): Required { if (typeof theme === 'string') { - if (gt.isThereTheme(theme)) { - return gt.getTheme(theme); + if (isThereTheme(theme)) { + return _getTheme(theme); } else if (theme === 'dark' || theme === 'light') { return THEMES[theme]; } else { @@ -153,8 +152,8 @@ export function getTheme(theme: Theme = 'light'): Required { } else { // Iterate all keys to override from base let baseSpec = JSON.parse(JSON.stringify(THEMES['light'])); - if (gt.isThereTheme(theme.base)) { - baseSpec = gt.getTheme(theme.base); + if (isThereTheme(theme.base)) { + baseSpec = _getTheme(theme.base); } else if (theme.base === 'light' || theme.base === 'dark') { baseSpec = JSON.parse(JSON.stringify(THEMES[theme.base])); } @@ -184,7 +183,7 @@ const LightThemeMarkCommonStyle: Required = { const DarkThemeMarkCommonStyle: Required = { ...LightThemeMarkCommonStyle, stroke: 'white' }; /* ----------------------------- THEME PRESETS ----------------------------- */ -export const THEMES: { [key in Themes]: Required } = { +export const THEMES: { [k in 'light' | 'dark']: Required } = { light: { base: 'light', diff --git a/src/gosling-schema/gosling.schema.json b/src/gosling-schema/gosling.schema.json index e69de29bb..e1bbed905 100644 --- a/src/gosling-schema/gosling.schema.json +++ b/src/gosling-schema/gosling.schema.json @@ -0,0 +1,9308 @@ +{ + "$ref": "#/definitions/GoslingSpec", + "$schema": "http://json-schema.org/draft-07/schema#", + "definitions": { + "Aggregate": { + "enum": [ + "max", + "min", + "mean", + "bin", + "count" + ], + "type": "string" + }, + "Assembly": { + "anyOf": [ + { + "const": "hg38", + "type": "string" + }, + { + "const": "hg19", + "type": "string" + }, + { + "const": "hg18", + "type": "string" + }, + { + "const": "hg17", + "type": "string" + }, + { + "const": "hg16", + "type": "string" + }, + { + "const": "mm10", + "type": "string" + }, + { + "const": "mm9", + "type": "string" + }, + { + "const": "unknown", + "type": "string" + }, + { + "$ref": "#/definitions/ChromSizes" + } + ] + }, + "AxisPosition": { + "enum": [ + "none", + "top", + "bottom", + "left", + "right" + ], + "type": "string" + }, + "BamData": { + "additionalProperties": false, + "description": "Binary Alignment Map (BAM) is the comprehensive raw data of genome sequencing; it consists of the lossless, compressed binary representation of the Sequence Alignment Map-files.", + "properties": { + "extractJunction": { + "description": "Determine whether to extract exon-to-exon junctions. __Default__: `false`", + "type": "boolean" + }, + "indexUrl": { + "description": "URL link to the index file of the BAM file", + "type": "string" + }, + "junctionMinCoverage": { + "description": "Determine the threshold of coverage when extracting exon-to-exon junctions. __Default__: `1`", + "type": "number" + }, + "loadMates": { + "description": "Load mates that are located in the same chromosome. __Default__: `false`", + "type": "boolean" + }, + "maxInsertSize": { + "description": "Determines the threshold of insert sizes for determining the structural variants. __Default__: `5000`", + "type": "number" + }, + "type": { + "const": "bam", + "type": "string" + }, + "url": { + "description": "URL link to the BAM data file", + "type": "string" + } + }, + "required": [ + "type", + "url", + "indexUrl" + ], + "type": "object" + }, + "BedData": { + "additionalProperties": false, + "description": "BED file format", + "properties": { + "customFields": { + "description": "An array of strings, where each string is the name of a non-standard field in the BED file. If there are `n` custom fields, we assume that the last `n` columns of the BED file correspond to the custom fields.", + "items": { + "type": "string" + }, + "type": "array" + }, + "indexUrl": { + "description": "Specify the URL address of the data file index.", + "type": "string" + }, + "sampleLength": { + "description": "Specify the number of rows loaded from the URL.\n\n__Default:__ `1000`", + "type": "number" + }, + "type": { + "const": "bed", + "type": "string" + }, + "url": { + "description": "Specify the URL address of the data file.", + "type": "string" + } + }, + "required": [ + "type", + "url", + "indexUrl" + ], + "type": "object" + }, + "BeddbData": { + "additionalProperties": false, + "description": "Regular BED or similar files can be pre-aggregated for the scalable data exploration. Find our more about this format at [HiGlass Docs](https://docs.higlass.io/data_preparation.html#bed-files).", + "properties": { + "exonIntervalFields": { + "description": "experimental", + "items": [ + { + "additionalProperties": false, + "properties": { + "index": { + "type": "number" + }, + "name": { + "type": "string" + } + }, + "required": [ + "index", + "name" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "index": { + "type": "number" + }, + "name": { + "type": "string" + } + }, + "required": [ + "index", + "name" + ], + "type": "object" + } + ], + "maxItems": 2, + "minItems": 2, + "type": "array" + }, + "genomicFields": { + "description": "Specify the name of genomic data fields.", + "items": { + "additionalProperties": false, + "properties": { + "index": { + "type": "number" + }, + "name": { + "type": "string" + } + }, + "required": [ + "index", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "const": "beddb", + "type": "string" + }, + "url": { + "description": "Specify the URL address of the data file.", + "type": "string" + }, + "valueFields": { + "description": "Specify the column indexes, field names, and field types.", + "items": { + "additionalProperties": false, + "properties": { + "index": { + "type": "number" + }, + "name": { + "type": "string" + }, + "type": { + "enum": [ + "nominal", + "quantitative" + ], + "type": "string" + } + }, + "required": [ + "index", + "name", + "type" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "type", + "url", + "genomicFields" + ], + "type": "object" + }, + "BigWigData": { + "additionalProperties": false, + "properties": { + "aggregation": { + "$ref": "#/definitions/BinAggregate", + "description": "Determine aggregation function to apply within bins. __Default__: `\"mean\"`" + }, + "binSize": { + "description": "Binning the genomic interval in tiles (unit size: 256).", + "type": "number" + }, + "column": { + "description": "Assign a field name of the middle position of genomic intervals. __Default__: `\"position\"`", + "type": "string" + }, + "end": { + "description": "Assign a field name of the end position of genomic intervals. __Default__: `\"end\"`", + "type": "string" + }, + "start": { + "description": "Assign a field name of the start position of genomic intervals. __Default__: `\"start\"`", + "type": "string" + }, + "type": { + "const": "bigwig", + "type": "string" + }, + "url": { + "description": "Specify the URL address of the data file.", + "type": "string" + }, + "value": { + "description": "Assign a field name of quantitative values. __Default__: `\"value\"`", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "type": "object" + }, + "BinAggregate": { + "enum": [ + "mean", + "sum" + ], + "type": "string" + }, + "Channel": { + "anyOf": [ + { + "$ref": "#/definitions/ChannelDeep" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "ChannelDeep": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/Text" + } + ] + }, + "ChannelValue": { + "additionalProperties": false, + "properties": { + "value": { + "description": "Assign a constant value for a visual channel.", + "type": [ + "number", + "string" + ] + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "ChromSizes": { + "description": "Custom chromosome sizes, e.g., [[\"foo\", 1000], [\"bar\", 300], [\"baz\", 240]]", + "items": { + "items": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "maxItems": 2, + "minItems": 2, + "type": "array" + }, + "type": "array" + }, + "Color": { + "additionalProperties": false, + "properties": { + "domain": { + "$ref": "#/definitions/ValueExtent", + "description": "Values of the data" + }, + "field": { + "description": "Name of the data field", + "type": "string" + }, + "legend": { + "description": "Whether to display legend. __Default__: `false`", + "type": "boolean" + }, + "range": { + "$ref": "#/definitions/Range", + "description": "Determine the colors that should be bound to data value. Default properties are determined considering the field type." + }, + "scale": { + "enum": [ + "linear", + "log" + ], + "type": "string" + }, + "scaleOffset": { + "description": "Whether to use offset of the domain proportionally. This is bound to brushes on the color legend. __Default__: `[0, 1]`", + "items": { + "type": "number" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + }, + "title": { + "description": "Title of the legend. __Default__: `undefined`", + "type": "string" + }, + "type": { + "description": "Specify the data type", + "enum": [ + "quantitative", + "nominal" + ], + "type": "string" + } + }, + "type": "object" + }, + "CoverageTransform": { + "additionalProperties": false, + "description": "Aggregate rows and calculate coverage", + "properties": { + "endField": { + "type": "string" + }, + "groupField": { + "description": "The name of a nominal field to group rows by in prior to piling-up", + "type": "string" + }, + "newField": { + "type": "string" + }, + "startField": { + "type": "string" + }, + "type": { + "const": "coverage", + "type": "string" + } + }, + "required": [ + "type", + "startField", + "endField" + ], + "type": "object" + }, + "CsvData": { + "additionalProperties": false, + "description": "Any small enough tabular data files, such as tsv, csv, BED, BEDPE, and GFF, can be loaded using \"csv\" data specification.", + "properties": { + "chromosomeField": { + "description": "Specify the name of chromosome data fields.", + "type": "string" + }, + "chromosomePrefix": { + "description": "Specify the chromosome prefix if chromosomes are denoted using a prefix besides \"chr\" or a number", + "type": "string" + }, + "genomicFields": { + "description": "Specify the name of genomic data fields.", + "items": { + "type": "string" + }, + "type": "array" + }, + "genomicFieldsToConvert": { + "description": "experimental", + "items": { + "additionalProperties": false, + "properties": { + "chromosomeField": { + "type": "string" + }, + "genomicFields": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "chromosomeField", + "genomicFields" + ], + "type": "object" + }, + "type": "array" + }, + "headerNames": { + "description": "Specify the names of data fields if a CSV file does not contain a header.", + "items": { + "type": "string" + }, + "type": "array" + }, + "longToWideId": { + "description": "experimental", + "type": "string" + }, + "sampleLength": { + "description": "Specify the number of rows loaded from the URL.\n\n__Default:__ `1000`", + "type": "number" + }, + "separator": { + "description": "Specify file separator, __Default:__ ','", + "type": "string" + }, + "type": { + "const": "csv", + "type": "string" + }, + "url": { + "description": "Specify the URL address of the data file.", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "type": "object" + }, + "DataDeep": { + "anyOf": [ + { + "$ref": "#/definitions/JsonData" + }, + { + "$ref": "#/definitions/CsvData" + }, + { + "$ref": "#/definitions/BedData" + }, + { + "$ref": "#/definitions/BigWigData" + }, + { + "$ref": "#/definitions/MultivecData" + }, + { + "$ref": "#/definitions/BeddbData" + }, + { + "$ref": "#/definitions/VectorData" + }, + { + "$ref": "#/definitions/MatrixData" + }, + { + "$ref": "#/definitions/BamData" + }, + { + "$ref": "#/definitions/VcfData" + }, + { + "$ref": "#/definitions/GffData" + } + ] + }, + "DataTrack": { + "additionalProperties": false, + "description": "Partial specification of `BasicSingleTrack` to use default visual encoding predefined by data type.", + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "Assigned to `uid` in a HiGlass view config, used for API and caching.", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "DataTransform": { + "anyOf": [ + { + "$ref": "#/definitions/FilterTransform" + }, + { + "$ref": "#/definitions/StrConcatTransform" + }, + { + "$ref": "#/definitions/StrReplaceTransform" + }, + { + "$ref": "#/definitions/LogTransform" + }, + { + "$ref": "#/definitions/DisplaceTransform" + }, + { + "$ref": "#/definitions/ExonSplitTransform" + }, + { + "$ref": "#/definitions/GenomicLengthTransform" + }, + { + "$ref": "#/definitions/SvTypeTransform" + }, + { + "$ref": "#/definitions/CoverageTransform" + }, + { + "$ref": "#/definitions/JsonParseTransform" + } + ] + }, + "Datum": { + "additionalProperties": { + "type": [ + "number", + "string" + ] + }, + "description": "Values in the form of JSON.", + "type": "object" + }, + "DisplaceTransform": { + "additionalProperties": false, + "properties": { + "boundingBox": { + "additionalProperties": false, + "properties": { + "endField": { + "description": "The name of a quantitative field that represents the end position.", + "type": "string" + }, + "groupField": { + "description": "The name of a nominal field to group rows by in prior to piling-up.", + "type": "string" + }, + "isPaddingBP": { + "description": "Whether to consider `padding` as the bp length.", + "type": "boolean" + }, + "padding": { + "description": "The padding around visual lements. Either px or bp", + "type": "number" + }, + "startField": { + "description": "The name of a quantitative field that represents the start position.", + "type": "string" + } + }, + "required": [ + "startField", + "endField" + ], + "type": "object" + }, + "maxRows": { + "description": "Specify maximum rows to be generated (default has no limit).", + "type": "number" + }, + "method": { + "$ref": "#/definitions/DisplacementType", + "description": "A string that specifies the type of displacement." + }, + "newField": { + "type": "string" + }, + "type": { + "const": "displace", + "type": "string" + } + }, + "required": [ + "type", + "boundingBox", + "method", + "newField" + ], + "type": "object" + }, + "Displacement": { + "additionalProperties": false, + "properties": { + "padding": { + "type": "number" + }, + "type": { + "$ref": "#/definitions/DisplacementType" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "DisplacementType": { + "enum": [ + "pile", + "spread" + ], + "type": "string" + }, + "DomainChr": { + "additionalProperties": false, + "properties": { + "chromosome": { + "type": "string" + } + }, + "required": [ + "chromosome" + ], + "type": "object" + }, + "DomainChrInterval": { + "additionalProperties": false, + "properties": { + "chromosome": { + "description": "If specified, only showing a certain interval in a chromosome.", + "type": "string" + }, + "interval": { + "items": { + "type": "number" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + } + }, + "required": [ + "chromosome", + "interval" + ], + "type": "object" + }, + "DomainInterval": { + "additionalProperties": false, + "properties": { + "interval": { + "description": "Show a certain interval within entire chromosome", + "items": { + "type": "number" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + } + }, + "required": [ + "interval" + ], + "type": "object" + }, + "DummyTrack": { + "additionalProperties": false, + "description": "A placeholder track. In contrast to other tracks, this track does not display any data. Instead it provides empty space for third party tools to display their data on top of.", + "properties": { + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "assembly": { + "const": "unknown", + "description": "No assemblies can be associated with a dummy track", + "type": "string" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "Assigned to `uid` in a HiGlass view config, used for API and caching.", + "type": "string" + }, + "layout": { + "const": "linear", + "description": "Only linear layout are supported at this time", + "type": "string" + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "static": { + "const": true, + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "style": { + "$ref": "#/definitions/DummyTrackStyle", + "description": "Defines how the track is styled" + }, + "title": { + "description": "Text that gets shown on the DummyTrack", + "type": "string" + }, + "type": { + "const": "dummy-track", + "description": "Used to specify the dummy track", + "type": "string" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "zoomLimits": { + "description": "Unused property for DummyTrack", + "items": { + "type": "null" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "DummyTrackStyle": { + "additionalProperties": false, + "properties": { + "background": { + "description": "Background color of the track", + "type": "string" + }, + "outline": { + "description": "Color of the outline of the track", + "type": "string" + }, + "textFontSize": { + "description": "Specify the font size of the title", + "type": "number" + }, + "textFontWeight": { + "description": "Specify the font weight of the title.", + "enum": [ + "bold", + "normal" + ], + "type": "string" + }, + "textStroke": { + "description": "Specify the stroke color of title.", + "type": "string" + }, + "textStrokeWidth": { + "description": "Specify the stroke width of the title.", + "type": "number" + } + }, + "type": "object" + }, + "EventStyle": { + "additionalProperties": false, + "description": "The styles defined here will be applied to the target marks of mouse events, such as a point mark after the user clicks on it.", + "properties": { + "arrange": { + "description": "Show event effects behind or in front of marks.", + "enum": [ + "behind", + "front" + ], + "type": "string" + }, + "color": { + "description": "color of the marks when mouse events are triggered", + "type": "string" + }, + "opacity": { + "description": "opacity of the marks when mouse events are triggered", + "type": "number" + }, + "stroke": { + "description": "stroke color of the marks when mouse events are triggered", + "type": "string" + }, + "strokeOpacity": { + "type": "number" + }, + "strokeWidth": { + "description": "stroke width of the marks when mouse events are triggered", + "type": "number" + } + }, + "type": "object" + }, + "ExonSplitTransform": { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "additionalProperties": false, + "properties": { + "chrField": { + "type": "string" + }, + "field": { + "type": "string" + }, + "newField": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/FieldType" + } + }, + "required": [ + "field", + "type", + "newField", + "chrField" + ], + "type": "object" + }, + "type": "array" + }, + "flag": { + "additionalProperties": false, + "properties": { + "field": { + "type": "string" + }, + "value": { + "type": [ + "number", + "string" + ] + } + }, + "required": [ + "field", + "value" + ], + "type": "object" + }, + "separator": { + "type": "string" + }, + "type": { + "const": "exonSplit", + "type": "string" + } + }, + "required": [ + "type", + "separator", + "flag", + "fields" + ], + "type": "object" + }, + "FieldType": { + "enum": [ + "genomic", + "nominal", + "quantitative" + ], + "type": "string" + }, + "FilterTransform": { + "anyOf": [ + { + "$ref": "#/definitions/OneOfFilter" + }, + { + "$ref": "#/definitions/RangeFilter" + }, + { + "$ref": "#/definitions/IncludeFilter" + } + ] + }, + "GenomicDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ] + }, + "GenomicLengthTransform": { + "additionalProperties": false, + "description": "Calculate genomic length using two genomic fields", + "properties": { + "endField": { + "type": "string" + }, + "newField": { + "type": "string" + }, + "startField": { + "type": "string" + }, + "type": { + "const": "genomicLength", + "type": "string" + } + }, + "required": [ + "type", + "startField", + "endField", + "newField" + ], + "type": "object" + }, + "GffData": { + "additionalProperties": false, + "description": "Generic Feature Format Version 3 (GFF3) format data. It parses files that follow the [GFF3 specification](https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md).", + "properties": { + "attributesToFields": { + "description": "Specifies which attributes to include as a fields. GFF files have an \"attributes\" column which contains a list of attributes which are each tag-value pairs (`tag=value`). This option allows for specific attributes to be accessible as a field. For example, if you have an attribute called \"gene_name\" and you want label features on your track using those values, you can use this option so that you can use `\"field\": \"gene_name\"` in the schema.\n\nIf there is a single `value` corresponding to the `tag`, Gosling will parse that value as a string. If there are multiple `value`s corresponding to a `tag`, Gosling will parse it as a comma-separated list string. If a feature does not have a particular attribute, then the attribute value will be set to the `defaultValue`.", + "items": { + "additionalProperties": false, + "properties": { + "attribute": { + "type": "string" + }, + "defaultValue": { + "type": "string" + } + }, + "required": [ + "attribute", + "defaultValue" + ], + "type": "object" + }, + "type": "array" + }, + "indexUrl": { + "description": "URL link to the tabix index file", + "type": "string" + }, + "sampleLength": { + "description": "The maximum number of samples to be shown on the track. Samples are uniformly randomly selected so that this threshold is not exceeded. __Default:__ `1000`", + "type": "number" + }, + "type": { + "const": "gff", + "type": "string" + }, + "url": { + "description": "URL link to the GFF file", + "type": "string" + } + }, + "required": [ + "type", + "url", + "indexUrl" + ], + "type": "object" + }, + "GoslingSpec": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "alignment": { + "const": "overlay", + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "description": { + "type": "string" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "responsiveSize": { + "$ref": "#/definitions/ResponsiveSize", + "description": "Determine whether to make the size of `GoslingComponent` bound to its parent element. __Default__: `false`" + }, + "responsiveSpec": { + "items": { + "additionalProperties": false, + "properties": { + "selectivity": { + "items": { + "$ref": "#/definitions/SelectivityCondition" + }, + "type": "array" + }, + "spec": { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "alignment": { + "enum": [ + "overlay", + "stack" + ], + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "tracks": { + "anyOf": [ + { + "items": { + "$ref": "#/definitions/PartialTrack" + }, + "type": "array" + }, + { + "items": { + "anyOf": [ + { + "$ref": "#/definitions/PartialTrack" + }, + { + "$ref": "#/definitions/OverlaidTracks" + } + ] + }, + "type": "array" + } + ] + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "type": "object" + } + }, + "required": [ + "spec", + "selectivity" + ], + "type": "object" + }, + "type": "array" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "tracks": { + "items": { + "$ref": "#/definitions/PartialTrack" + }, + "type": "array" + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "required": [ + "alignment", + "tracks" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "alignment": { + "const": "stack", + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "description": { + "type": "string" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "responsiveSize": { + "$ref": "#/definitions/ResponsiveSize", + "description": "Determine whether to make the size of `GoslingComponent` bound to its parent element. __Default__: `false`" + }, + "responsiveSpec": { + "items": { + "additionalProperties": false, + "properties": { + "selectivity": { + "items": { + "$ref": "#/definitions/SelectivityCondition" + }, + "type": "array" + }, + "spec": { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "alignment": { + "enum": [ + "overlay", + "stack" + ], + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "tracks": { + "anyOf": [ + { + "items": { + "$ref": "#/definitions/PartialTrack" + }, + "type": "array" + }, + { + "items": { + "anyOf": [ + { + "$ref": "#/definitions/PartialTrack" + }, + { + "$ref": "#/definitions/OverlaidTracks" + } + ] + }, + "type": "array" + } + ] + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "type": "object" + } + }, + "required": [ + "spec", + "selectivity" + ], + "type": "object" + }, + "type": "array" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "tracks": { + "items": { + "anyOf": [ + { + "$ref": "#/definitions/PartialTrack" + }, + { + "$ref": "#/definitions/OverlaidTracks" + } + ] + }, + "type": "array" + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "required": [ + "tracks" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "description": { + "type": "string" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "responsiveSize": { + "$ref": "#/definitions/ResponsiveSize", + "description": "Determine whether to make the size of `GoslingComponent` bound to its parent element. __Default__: `false`" + }, + "responsiveSpec": { + "items": { + "additionalProperties": false, + "properties": { + "selectivity": { + "items": { + "$ref": "#/definitions/SelectivityCondition" + }, + "type": "array" + }, + "spec": { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "alignment": { + "enum": [ + "overlay", + "stack" + ], + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "tracks": { + "anyOf": [ + { + "items": { + "$ref": "#/definitions/PartialTrack" + }, + "type": "array" + }, + { + "items": { + "anyOf": [ + { + "$ref": "#/definitions/PartialTrack" + }, + { + "$ref": "#/definitions/OverlaidTracks" + } + ] + }, + "type": "array" + } + ] + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "type": "object" + } + }, + "required": [ + "spec", + "selectivity" + ], + "type": "object" + }, + "type": "array" + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + }, + "tracks": { + "items": { + "$ref": "#/definitions/Track" + }, + "type": "array" + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "required": [ + "tracks" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "arrangement": { + "description": "Specify how multiple views are arranged.", + "enum": [ + "parallel", + "serial", + "horizontal", + "vertical" + ], + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "description": { + "type": "string" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "responsiveSize": { + "$ref": "#/definitions/ResponsiveSize", + "description": "Determine whether to make the size of `GoslingComponent` bound to its parent element. __Default__: `false`" + }, + "responsiveSpec": { + "items": { + "additionalProperties": false, + "properties": { + "selectivity": { + "items": { + "$ref": "#/definitions/SelectivityCondition" + }, + "type": "array" + }, + "spec": { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "arrangement": { + "description": "Specify how multiple views are arranged.", + "enum": [ + "parallel", + "serial", + "horizontal", + "vertical" + ], + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "views": { + "description": "An array of view specifications", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/SingleView" + }, + { + "$ref": "#/definitions/MultipleViews" + } + ] + }, + "type": "array" + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "type": "object" + } + }, + "required": [ + "spec", + "selectivity" + ], + "type": "object" + }, + "type": "array" + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + }, + "views": { + "description": "An array of view specifications", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/SingleView" + }, + { + "$ref": "#/definitions/MultipleViews" + } + ] + }, + "type": "array" + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "required": [ + "views" + ], + "type": "object" + } + ] + }, + "IncludeFilter": { + "additionalProperties": false, + "properties": { + "field": { + "description": "A filter is applied based on the values of the specified data field", + "type": "string" + }, + "include": { + "description": "Check whether the value includes a substring.", + "type": "string" + }, + "not": { + "description": "when `{\"not\": true}`, apply a NOT logical operation to the filter.\n\n__Default:__ `false`", + "type": "boolean" + }, + "type": { + "const": "filter", + "type": "string" + } + }, + "required": [ + "field", + "include", + "type" + ], + "type": "object" + }, + "JsonData": { + "additionalProperties": false, + "description": "The JSON data format allows users to include data directly in the Gosling's JSON specification.", + "properties": { + "chromosomeField": { + "description": "Specify the name of chromosome data fields.", + "type": "string" + }, + "genomicFields": { + "description": "Specify the name of genomic data fields.", + "items": { + "type": "string" + }, + "type": "array" + }, + "genomicFieldsToConvert": { + "description": "experimental", + "items": { + "additionalProperties": false, + "properties": { + "chromosomeField": { + "type": "string" + }, + "genomicFields": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "chromosomeField", + "genomicFields" + ], + "type": "object" + }, + "type": "array" + }, + "sampleLength": { + "description": "Specify the number of rows loaded from the URL.\n\n__Default:__ `1000`", + "type": "number" + }, + "type": { + "const": "json", + "description": "Define data type.", + "type": "string" + }, + "values": { + "description": "Values in the form of JSON.", + "items": { + "$ref": "#/definitions/Datum" + }, + "type": "array" + } + }, + "required": [ + "type", + "values" + ], + "type": "object" + }, + "JsonParseTransform": { + "additionalProperties": false, + "description": "Parse JSON Object Array and append vertically", + "properties": { + "baseGenomicField": { + "description": "Base genomic position when parsing relative position.", + "type": "string" + }, + "field": { + "description": "The field that contains the JSON object array.", + "type": "string" + }, + "genomicField": { + "description": "Relative genomic position to parse.", + "type": "string" + }, + "genomicLengthField": { + "description": "Length of genomic interval.", + "type": "string" + }, + "type": { + "const": "subjson", + "type": "string" + } + }, + "required": [ + "type", + "field", + "baseGenomicField", + "genomicField", + "genomicLengthField" + ], + "type": "object" + }, + "Layout": { + "enum": [ + "linear", + "circular" + ], + "type": "string" + }, + "LogBase": { + "anyOf": [ + { + "type": "number" + }, + { + "const": "e", + "type": "string" + } + ] + }, + "LogTransform": { + "additionalProperties": false, + "properties": { + "base": { + "$ref": "#/definitions/LogBase", + "description": "If not specified, 10 is used." + }, + "field": { + "type": "string" + }, + "newField": { + "description": "If specified, store transformed values in a new field.", + "type": "string" + }, + "type": { + "const": "log", + "type": "string" + } + }, + "required": [ + "type", + "field" + ], + "type": "object" + }, + "LogicalOperation": { + "enum": [ + "less-than", + "lt", + "LT", + "greater-than", + "gt", + "GT", + "less-than-or-equal-to", + "ltet", + "LTET", + "greater-than-or-equal-to", + "gtet", + "GTET" + ], + "type": "string" + }, + "Mark": { + "enum": [ + "point", + "line", + "area", + "bar", + "rect", + "text", + "withinLink", + "betweenLink", + "rule", + "triangleLeft", + "triangleRight", + "triangleBottom", + "brush", + "header" + ], + "type": "string" + }, + "MatrixData": { + "additionalProperties": false, + "properties": { + "binSize": { + "description": "Determine the number of nearby cells to aggregate. __Default__: `1`", + "type": "number" + }, + "column": { + "description": "The name of the first genomic field. __Default__: `x`", + "type": "string" + }, + "row": { + "description": "The name of the first genomic field. __Default__: `y`", + "type": "string" + }, + "type": { + "const": "matrix", + "type": "string" + }, + "url": { + "description": "URL link to the matrix data file", + "type": "string" + }, + "value": { + "description": "The name of the value field. __Default__: `value`", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "type": "object" + }, + "MouseEventsDeep": { + "additionalProperties": false, + "description": "Options for determining mouse events in detail, e.g., turning on specific events only", + "properties": { + "click": { + "description": "Whether to enable click events.", + "type": "boolean" + }, + "enableMouseOverOnMultipleMarks": { + "description": "Determine whether all marks underneath the mouse point should be affected by mouse over. __Default__: `false`", + "type": "boolean" + }, + "groupMarksByField": { + "description": "Group marks using keys in a data field. This affects how a set of marks are highlighted/selected by interaction. __Default__: `undefined`", + "type": "string" + }, + "mouseOver": { + "description": "Whether to enable mouseover events.", + "type": "boolean" + }, + "rangeSelect": { + "description": "Whether to send range selection events.", + "type": "boolean" + } + }, + "type": "object" + }, + "MultipleViews": { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "arrangement": { + "description": "Specify how multiple views are arranged.", + "enum": [ + "parallel", + "serial", + "horizontal", + "vertical" + ], + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "views": { + "description": "An array of view specifications", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/SingleView" + }, + { + "$ref": "#/definitions/MultipleViews" + } + ] + }, + "type": "array" + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "required": [ + "views" + ], + "type": "object" + }, + "MultivecData": { + "additionalProperties": false, + "description": "Two-dimensional quantitative values, one axis for genomic coordinate and the other for different samples, can be converted into HiGlass' `\"multivec\"` data. For example, multiple BigWig files can be converted into a single multivec file. You can also convert sequence data (FASTA) into this format where rows will be different nucleotide bases (e.g., A, T, G, C) and quantitative values represent the frequency. Find out more about this format at [HiGlass Docs](https://docs.higlass.io/data_preparation.html#multivec-files).", + "properties": { + "aggregation": { + "$ref": "#/definitions/BinAggregate", + "description": "Determine aggregation function to apply within bins. __Default__: `\"mean\"`" + }, + "binSize": { + "description": "Binning the genomic interval in tiles (unit size: 256).", + "type": "number" + }, + "categories": { + "description": "assign names of individual samples.", + "items": { + "type": "string" + }, + "type": "array" + }, + "column": { + "description": "Assign a field name of the middle position of genomic intervals. __Default__: `\"position\"`", + "type": "string" + }, + "end": { + "description": "Assign a field name of the end position of genomic intervals. __Default__: `\"end\"`", + "type": "string" + }, + "row": { + "description": "Assign a field name of samples. __Default__: `\"category\"`", + "type": "string" + }, + "start": { + "description": "Assign a field name of the start position of genomic intervals. __Default__: `\"start\"`", + "type": "string" + }, + "type": { + "const": "multivec", + "type": "string" + }, + "url": { + "description": "Specify the URL address of the data file.", + "type": "string" + }, + "value": { + "description": "Assign a field name of quantitative values. __Default__: `\"value\"`", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "type": "object" + }, + "OneOfFilter": { + "additionalProperties": false, + "properties": { + "field": { + "description": "A filter is applied based on the values of the specified data field", + "type": "string" + }, + "not": { + "description": "when `{\"not\": true}`, apply a NOT logical operation to the filter.\n\n__Default:__ `false`", + "type": "boolean" + }, + "oneOf": { + "description": "Check whether the value is an element in the provided list.", + "items": { + "type": [ + "string", + "number", + "null" + ] + }, + "type": "array" + }, + "type": { + "const": "filter", + "type": "string" + } + }, + "required": [ + "field", + "oneOf", + "type" + ], + "type": "object" + }, + "Opacity": { + "additionalProperties": false, + "properties": { + "domain": { + "$ref": "#/definitions/ValueExtent", + "description": "Values of the data" + }, + "field": { + "description": "Name of the data field", + "type": "string" + }, + "range": { + "$ref": "#/definitions/ValueExtent", + "description": "Ranges of visual channel values" + }, + "type": { + "description": "Specify the data type", + "enum": [ + "quantitative", + "nominal" + ], + "type": "string" + } + }, + "type": "object" + }, + "Orientation": { + "enum": [ + "horizontal", + "vertical" + ], + "type": "string" + }, + "OverlaidTrack": { + "additionalProperties": false, + "description": "Superposing multiple tracks.", + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_overlay": { + "items": { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "id": { + "description": "Assigned to `uid` in a HiGlass view config, used for API and caching.", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "type": "object" + }, + "type": "array" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "Assigned to `uid` in a HiGlass view config, used for API and caching.", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "required": [ + "_overlay" + ], + "type": "object" + }, + "OverlaidTracks": { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "alignment": { + "const": "overlay", + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "tracks": { + "items": { + "$ref": "#/definitions/PartialTrack" + }, + "type": "array" + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "required": [ + "alignment", + "tracks" + ], + "type": "object" + }, + "PartialTrack": { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_overlay": { + "items": { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "id": { + "description": "Assigned to `uid` in a HiGlass view config, used for API and caching.", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "type": "object" + }, + "type": "array" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "assembly": { + "anyOf": [ + { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + { + "const": "unknown", + "description": "No assemblies can be associated with a dummy track", + "type": "string" + } + ], + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "encoding": { + "additionalProperties": { + "$ref": "#/definitions/Channel" + }, + "type": "object" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "Assigned to `uid` in a HiGlass view config, used for API and caching.", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "anyOf": [ + { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + { + "const": "linear", + "description": "Only linear layout are supported at this time", + "type": "string" + } + ], + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "anyOf": [ + { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + { + "const": true, + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + } + ], + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`." + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "anyOf": [ + { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + { + "$ref": "#/definitions/DummyTrackStyle", + "description": "Defines how the track is styled" + } + ], + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "template": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "type": { + "const": "dummy-track", + "description": "Used to specify the dummy track", + "type": "string" + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "anyOf": [ + { + "$ref": "#/definitions/ZoomLimits" + }, + { + "description": "Unused property for DummyTrack", + "items": { + "type": "null" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + } + ] + } + }, + "type": "object" + }, + "PredefinedColors": { + "enum": [ + "viridis", + "grey", + "spectral", + "warm", + "cividis", + "bupu", + "rdbu", + "hot", + "pink" + ], + "type": "string" + }, + "Range": { + "anyOf": [ + { + "$ref": "#/definitions/ValueExtent" + }, + { + "$ref": "#/definitions/PredefinedColors" + } + ] + }, + "RangeFilter": { + "additionalProperties": false, + "properties": { + "field": { + "description": "A filter is applied based on the values of the specified data field", + "type": "string" + }, + "inRange": { + "description": "Check whether the value is in a number range.", + "items": { + "type": "number" + }, + "type": "array" + }, + "not": { + "description": "when `{\"not\": true}`, apply a NOT logical operation to the filter.\n\n__Default:__ `false`", + "type": "boolean" + }, + "type": { + "const": "filter", + "type": "string" + } + }, + "required": [ + "field", + "inRange", + "type" + ], + "type": "object" + }, + "ResponsiveSize": { + "anyOf": [ + { + "type": "boolean" + }, + { + "additionalProperties": false, + "properties": { + "height": { + "type": "boolean" + }, + "width": { + "type": "boolean" + } + }, + "type": "object" + } + ] + }, + "Row": { + "additionalProperties": false, + "properties": { + "clip": { + "description": "Clip row when the actual y value exceeds the max value of the y scale. Used only for bar marks at the moment. __Default__: `true`", + "type": "boolean" + }, + "domain": { + "$ref": "#/definitions/ValueExtent", + "description": "Values of the data" + }, + "field": { + "description": "Name of the data field", + "type": "string" + }, + "grid": { + "description": "Whether to display grid. __Default__: `false`", + "type": "boolean" + }, + "legend": { + "description": "Whether to display legend. __Default__: `false`", + "type": "boolean" + }, + "padding": { + "description": "Determines the size of inner white spaces on the top and bottom of individiual rows. __Default__: `0`", + "type": "number" + }, + "range": { + "$ref": "#/definitions/ValueExtent", + "description": "Determine the start and end position of rendering area of this track along vertical axis. __Default__: `[0, height]`" + }, + "type": { + "const": "nominal", + "description": "Specify the data type", + "type": "string" + } + }, + "type": "object" + }, + "SelectivityCondition": { + "additionalProperties": false, + "properties": { + "measure": { + "enum": [ + "width", + "height", + "aspectRatio" + ], + "type": "string" + }, + "operation": { + "$ref": "#/definitions/LogicalOperation" + }, + "target": { + "description": "Does the condition applied to the visualization itself or its container? __Default__: `'self'`", + "enum": [ + "self", + "container" + ], + "type": "string" + }, + "threshold": { + "description": "Threshold in the unit of pixels.", + "type": "number" + } + }, + "required": [ + "operation", + "measure", + "threshold" + ], + "type": "object" + }, + "SingleTrack": { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "Assigned to `uid` in a HiGlass view config, used for API and caching.", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "required": [ + "data", + "mark" + ], + "type": "object" + }, + "SingleView": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "alignment": { + "const": "overlay", + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "responsiveSpec": { + "items": { + "additionalProperties": false, + "properties": { + "selectivity": { + "items": { + "$ref": "#/definitions/SelectivityCondition" + }, + "type": "array" + }, + "spec": { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "alignment": { + "enum": [ + "overlay", + "stack" + ], + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "tracks": { + "anyOf": [ + { + "items": { + "$ref": "#/definitions/PartialTrack" + }, + "type": "array" + }, + { + "items": { + "anyOf": [ + { + "$ref": "#/definitions/PartialTrack" + }, + { + "$ref": "#/definitions/OverlaidTracks" + } + ] + }, + "type": "array" + } + ] + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "type": "object" + } + }, + "required": [ + "spec", + "selectivity" + ], + "type": "object" + }, + "type": "array" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "tracks": { + "items": { + "$ref": "#/definitions/PartialTrack" + }, + "type": "array" + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "required": [ + "alignment", + "tracks" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "alignment": { + "const": "stack", + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "responsiveSpec": { + "items": { + "additionalProperties": false, + "properties": { + "selectivity": { + "items": { + "$ref": "#/definitions/SelectivityCondition" + }, + "type": "array" + }, + "spec": { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "alignment": { + "enum": [ + "overlay", + "stack" + ], + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "tracks": { + "anyOf": [ + { + "items": { + "$ref": "#/definitions/PartialTrack" + }, + "type": "array" + }, + { + "items": { + "anyOf": [ + { + "$ref": "#/definitions/PartialTrack" + }, + { + "$ref": "#/definitions/OverlaidTracks" + } + ] + }, + "type": "array" + } + ] + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "type": "object" + } + }, + "required": [ + "spec", + "selectivity" + ], + "type": "object" + }, + "type": "array" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "tracks": { + "items": { + "anyOf": [ + { + "$ref": "#/definitions/PartialTrack" + }, + { + "$ref": "#/definitions/OverlaidTracks" + } + ] + }, + "type": "array" + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "required": [ + "tracks" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "responsiveSpec": { + "items": { + "additionalProperties": false, + "properties": { + "selectivity": { + "items": { + "$ref": "#/definitions/SelectivityCondition" + }, + "type": "array" + }, + "spec": { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "alignment": { + "enum": [ + "overlay", + "stack" + ], + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "baselineY": { + "type": "number" + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" + }, + "displacement": { + "$ref": "#/definitions/Displacement" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "experimental": { + "additionalProperties": false, + "properties": { + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + } + }, + "type": "object" + }, + "flipY": { + "type": "boolean" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "The ID of a view that is maintained for the use of JS API functions, e.g., positions of a view", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "overrideTemplate": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "stretch": { + "type": "boolean" + }, + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "tooltip": { + "items": { + "$ref": "#/definitions/Tooltip" + }, + "type": "array" + }, + "tracks": { + "anyOf": [ + { + "items": { + "$ref": "#/definitions/PartialTrack" + }, + "type": "array" + }, + { + "items": { + "anyOf": [ + { + "$ref": "#/definitions/PartialTrack" + }, + { + "$ref": "#/definitions/OverlaidTracks" + } + ] + }, + "type": "array" + } + ] + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" + }, + "type": "array" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "type": "object" + } + }, + "required": [ + "spec", + "selectivity" + ], + "type": "object" + }, + "type": "array" + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "tracks": { + "items": { + "$ref": "#/definitions/Track" + }, + "type": "array" + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "required": [ + "tracks" + ], + "type": "object" + } + ] + }, + "Size": { + "additionalProperties": false, + "properties": { + "domain": { + "$ref": "#/definitions/ValueExtent", + "description": "Values of the data" + }, + "field": { + "description": "Name of the data field", + "type": "string" + }, + "legend": { + "description": "not supported: Whether to display legend. __Default__: `false`", + "type": "boolean" + }, + "range": { + "$ref": "#/definitions/ValueExtent", + "description": "Ranges of visual channel values" + }, + "type": { + "description": "Specify the data type", + "enum": [ + "quantitative", + "nominal" + ], + "type": "string" + } + }, + "type": "object" + }, + "SizeVisibilityCondition": { + "additionalProperties": false, + "properties": { + "conditionPadding": { + "description": "Specify the buffer size (in pixel) of width or height when calculating the visibility.\n\n__Default__: `0`", + "type": "number" + }, + "measure": { + "description": "Specify which aspect of the `target` will be compared to the `threshold`.", + "enum": [ + "width", + "height" + ], + "type": "string" + }, + "operation": { + "$ref": "#/definitions/LogicalOperation", + "description": "A string that specifies the logical operation to conduct between `threshold` and the `measure` of `target`. Support\n\n- greater than : \"greater-than\", \"gt\", \"GT\"\n\n- less than : \"less-than\", \"lt\", \"LT\"\n\n- greater than or equal to : \"greater-than-or-equal-to\", \"gtet\", \"GTET\"\n\n- less than or equal to : \"less-than-or-equal-to\", \"ltet\", \"LTET\"" + }, + "target": { + "description": "Target specifies the object that you want to compare with the threshold.", + "enum": [ + "track", + "mark" + ], + "type": "string" + }, + "threshold": { + "anyOf": [ + { + "type": "number" + }, + { + "const": "|xe-x|", + "type": "string" + } + ], + "description": "Specify the threshold as one of:\n\n- A number representing a fixed threshold in the unit of pixels;\n\n- `\"|xe-x|\"`, using the distance between `xe` and `x` as threshold" + }, + "transitionPadding": { + "description": "Specify the buffer size (in pixel) of width or height for smooth transition.\n\n__Default__: `0`", + "type": "number" + } + }, + "required": [ + "measure", + "operation", + "target", + "threshold" + ], + "type": "object" + }, + "StrConcatTransform": { + "additionalProperties": false, + "properties": { + "fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "newField": { + "type": "string" + }, + "separator": { + "type": "string" + }, + "type": { + "const": "concat", + "type": "string" + } + }, + "required": [ + "type", + "fields", + "newField", + "separator" + ], + "type": "object" + }, + "StrReplaceTransform": { + "additionalProperties": false, + "properties": { + "field": { + "type": "string" + }, + "newField": { + "type": "string" + }, + "replace": { + "items": { + "additionalProperties": false, + "properties": { + "from": { + "type": "string" + }, + "to": { + "type": "string" + } + }, + "required": [ + "from", + "to" + ], + "type": "object" + }, + "type": "array" + }, + "type": { + "const": "replace", + "type": "string" + } + }, + "required": [ + "type", + "field", + "newField", + "replace" + ], + "type": "object" + }, + "Stroke": { + "additionalProperties": false, + "properties": { + "domain": { + "$ref": "#/definitions/ValueExtent", + "description": "Values of the data" + }, + "field": { + "description": "Name of the data field", + "type": "string" + }, + "legend": { + "description": "Whether to display legend. __Default__: `false`", + "type": "boolean" + }, + "range": { + "$ref": "#/definitions/Range", + "description": "Ranges of visual channel values" + }, + "scaleOffset": { + "description": "Whether to use offset of the domain proportionally. This is bound to brushes on the color legend. __Default__: `[0, 1]`", + "items": { + "type": "number" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + }, + "title": { + "description": "Title of the legend. __Default__: `undefined`", + "type": "string" + }, + "type": { + "description": "Specify the data type", + "enum": [ + "quantitative", + "nominal" + ], + "type": "string" + } + }, + "type": "object" + }, + "StrokeWidth": { + "additionalProperties": false, + "properties": { + "domain": { + "$ref": "#/definitions/ValueExtent", + "description": "Values of the data" + }, + "field": { + "description": "Name of the data field", + "type": "string" + }, + "range": { + "$ref": "#/definitions/ValueExtent", + "description": "Ranges of visual channel values" + }, + "type": { + "description": "Specify the data type", + "enum": [ + "quantitative", + "nominal" + ], + "type": "string" + } + }, + "type": "object" + }, + "Style": { + "additionalProperties": false, + "properties": { + "align": { + "description": "Specify the alignment of marks. This property is currently only supported for `triangle` marks.", + "enum": [ + "left", + "right" + ], + "type": "string" + }, + "background": { + "type": "string" + }, + "backgroundOpacity": { + "type": "number" + }, + "brush": { + "additionalProperties": false, + "description": "Customize the style of the brush mark in the `rangeSelect` mouse event.", + "properties": { + "color": { + "description": "color of the marks when mouse events are triggered", + "type": "string" + }, + "opacity": { + "description": "opacity of the marks when mouse events are triggered", + "type": "number" + }, + "stroke": { + "description": "stroke color of the marks when mouse events are triggered", + "type": "string" + }, + "strokeOpacity": { + "type": "number" + }, + "strokeWidth": { + "description": "stroke width of the marks when mouse events are triggered", + "type": "number" + } + }, + "type": "object" + }, + "curve": { + "description": "Specify the curve of `rule` marks.", + "enum": [ + "top", + "bottom", + "left", + "right" + ], + "type": "string" + }, + "dashed": { + "description": "Specify the pattern of dashes and gaps for `rule` marks.", + "items": { + "type": "number" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + }, + "dx": { + "description": "Offset the position of marks in x direction. This property is currently only supported for `text` marks", + "type": "number" + }, + "dy": { + "description": "Offset the position of marks in y direction. This property is currently only supported for `text` marks.", + "type": "number" + }, + "enableSmoothPath": { + "description": "Whether to enable smooth paths when drawing curves.\n\n__Default__: `false`", + "type": "boolean" + }, + "inlineLegend": { + "description": "Specify whether to show legend in a single horizontal line?", + "type": "boolean" + }, + "legendTitle": { + "description": "If defined, show legend title on the top or left", + "type": "string" + }, + "linePattern": { + "additionalProperties": false, + "description": "Specify the pattern of dashes and gaps for `rule` marks.", + "properties": { + "size": { + "type": "number" + }, + "type": { + "enum": [ + "triangleLeft", + "triangleRight" + ], + "type": "string" + } + }, + "required": [ + "type", + "size" + ], + "type": "object" + }, + "linkConnectionType": { + "description": "Specify the connetion type of `betweenLink` marks.\n\n__Default__: `\"corner\"`", + "enum": [ + "straight", + "curve", + "corner" + ], + "type": "string" + }, + "linkMinHeight": { + "description": "The minimum height of `withinLink` and `betweenLink` marks. Unit is a percentagle. __Default__: `0.5`", + "type": "number" + }, + "linkStyle": { + "description": "The style of `withinLink` and `betweenLink` marks. __Default__: `'circular'` `'elliptical'` will be used as a default option.", + "enum": [ + "elliptical", + "circular", + "straight" + ], + "type": "string" + }, + "matrixExtent": { + "description": "Determine to show only one side of the diagonal in a HiGlass matrix. __Default__: `\"full\"`", + "enum": [ + "full", + "upper-right", + "lower-left" + ], + "type": "string" + }, + "mouseOver": { + "$ref": "#/definitions/EventStyle", + "description": "Customize visual effects of `mouseOver` events on marks." + }, + "outline": { + "type": "string" + }, + "outlineWidth": { + "type": "number" + }, + "select": { + "$ref": "#/definitions/EventStyle", + "description": "Customize visual effects of `rangeSelect` events on marks ." + }, + "textAnchor": { + "description": "Specify the alignment of `text` marks to a given point.", + "enum": [ + "start", + "middle", + "end" + ], + "type": "string" + }, + "textFontSize": { + "description": "Specify the font size of `text` marks. Can also be specified using the `size` channel option of `text` marks.", + "type": "number" + }, + "textFontWeight": { + "description": "Specify the font weight of `text` marks.", + "enum": [ + "bold", + "normal" + ], + "type": "string" + }, + "textStroke": { + "description": "Specify the stroke of `text` marks. Can also be specified using the `stroke` channel option of `text` marks.", + "type": "string" + }, + "textStrokeWidth": { + "description": "Specify the stroke width of `text` marks. Can also be specified using the `strokeWidth` channel option of `text` marks.", + "type": "number" + }, + "withinLinkVerticalLines": { + "description": "Whether to show vertical lines that connect to the baseline (axis) when `y` and `ye` are both used. __Default__: `false`", + "type": "boolean" + } + }, + "type": "object" + }, + "SvTypeTransform": { + "additionalProperties": false, + "properties": { + "firstBp": { + "additionalProperties": false, + "description": "Based on the BEDPE, infer SV types. SV types are specified as one of the following strings: DUP, TRA, DEL, t2tINV, h2hINV.", + "properties": { + "chrField": { + "type": "string" + }, + "posField": { + "type": "string" + }, + "strandField": { + "type": "string" + } + }, + "required": [ + "chrField", + "posField", + "strandField" + ], + "type": "object" + }, + "newField": { + "type": "string" + }, + "secondBp": { + "additionalProperties": false, + "description": "Based on the BEDPE, infer SV types. SV types are specified as one of the following strings: DUP, TRA, DEL, t2tINV, h2hINV.", + "properties": { + "chrField": { + "type": "string" + }, + "posField": { + "type": "string" + }, + "strandField": { + "type": "string" + } + }, + "required": [ + "chrField", + "posField", + "strandField" + ], + "type": "object" + }, + "type": { + "const": "svType", + "type": "string" + } + }, + "required": [ + "type", + "firstBp", + "secondBp", + "newField" + ], + "type": "object" + }, + "TemplateTrack": { + "additionalProperties": false, + "description": "Template specification that will be internally converted into `SingleTrack` for rendering.", + "properties": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { + "description": "internal", + "type": "boolean" + }, + "_renderingId": { + "description": "internal", + "type": "string" + }, + "assembly": { + "$ref": "#/definitions/Assembly", + "description": "A string that specifies the genome builds to use. Currently support `\"hg38\"`, `\"hg19\"`, `\"hg18\"`, `\"hg17\"`, `\"hg16\"`, `\"mm10\"`, `\"mm9\"`, and `\"unknown\"`.\n\n__Note:__: with `\"unknown\"` assembly, genomic axes do not show chrN: in labels." + }, + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" + }, + "data": { + "$ref": "#/definitions/DataDeep" + }, + "encoding": { + "additionalProperties": { + "$ref": "#/definitions/Channel" + }, + "type": "object" + }, + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "height": { + "description": "Specify the track height in pixels.", + "type": "number" + }, + "id": { + "description": "Assigned to `uid` in a HiGlass view config, used for API and caching.", + "type": "string" + }, + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." + }, + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." + }, + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", + "type": "number" + }, + "overlayOnPreviousTrack": { + "type": "boolean" + }, + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" + }, + "spacing": { + "description": "The size of the gap (1) between tracks, (2) between views, and (3) of the origin of circular tracks. The effect of this property depends on where on the spec you specify the `spacing`.\n\nIn a linear layout, this value is used in pixels, while in a circular layout, this value is used relative to the height of the tracks or views.", + "type": "number" + }, + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" + }, + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" + }, + "style": { + "$ref": "#/definitions/Style", + "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overwritten by the style of children elements (e.g., view, track)." + }, + "subtitle": { + "type": "string" + }, + "template": { + "type": "string" + }, + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" + }, + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" + }, + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" + }, + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" + } + }, + "required": [ + "template", + "data" + ], + "type": "object" + }, + "Text": { + "additionalProperties": false, + "properties": { + "domain": { + "description": "Values of the data", + "items": { + "type": "string" + }, + "type": "array" + }, + "field": { + "description": "Name of the data field", + "type": "string" + }, + "range": { + "description": "Ranges of visual channel values", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "Specify the data type", + "enum": [ + "quantitative", + "nominal" + ], + "type": "string" + } + }, + "type": "object" + }, + "Tooltip": { + "additionalProperties": false, + "properties": { + "alt": { + "description": "Name of the data field for showing in the tooltip. Will use the field name if not specified.", + "type": "string" + }, + "field": { + "description": "Specifiy a data field whose value will show in the tooltip.", + "type": "string" + }, + "format": { + "description": "format of the data value.", + "type": "string" + }, + "type": { + "$ref": "#/definitions/FieldType", + "description": "Type of the data field." + } + }, + "required": [ + "field", + "type" + ], + "type": "object" + }, + "Track": { + "anyOf": [ + { + "$ref": "#/definitions/SingleTrack" + }, + { + "$ref": "#/definitions/OverlaidTrack" + }, + { + "$ref": "#/definitions/DataTrack" + }, + { + "$ref": "#/definitions/TemplateTrack" + }, + { + "$ref": "#/definitions/DummyTrack" + } + ] + }, + "ValueExtent": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "items": { + "type": "number" + }, + "type": "array" + } + ] + }, + "VcfData": { + "additionalProperties": false, + "description": "The Variant Call Format (VCF).", + "properties": { + "indexUrl": { + "description": "URL link to the tabix index file", + "type": "string" + }, + "sampleLength": { + "description": "The maximum number of rows to be loaded from the URL. __Default:__ `1000`", + "type": "number" + }, + "type": { + "const": "vcf", + "type": "string" + }, + "url": { + "description": "URL link to the VCF file", + "type": "string" + } + }, + "required": [ + "type", + "url", + "indexUrl" + ], + "type": "object" + }, + "VectorData": { + "additionalProperties": false, + "description": "One-dimensional quantitative values along genomic position (e.g., bigwig) can be converted into HiGlass' `\"vector\"` format data. Find out more about this format at [HiGlass Docs](https://docs.higlass.io/data_preparation.html#bigwig-files).", + "properties": { + "aggregation": { + "$ref": "#/definitions/BinAggregate", + "description": "Determine aggregation function to apply within bins. __Default__: `\"mean\"`" + }, + "binSize": { + "description": "Binning the genomic interval in tiles (unit size: 256).", + "type": "number" + }, + "column": { + "description": "Assign a field name of the middle position of genomic intervals. __Default__: `\"position\"`", + "type": "string" + }, + "end": { + "description": "Assign a field name of the end position of genomic intervals. __Default__: `\"end\"`", + "type": "string" + }, + "start": { + "description": "Assign a field name of the start position of genomic intervals. __Default__: `\"start\"`", + "type": "string" + }, + "type": { + "const": "vector", + "type": "string" + }, + "url": { + "description": "Specify the URL address of the data file.", + "type": "string" + }, + "value": { + "description": "Assign a field name of quantitative values. __Default__: `\"value\"`", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "type": "object" + }, + "VisibilityCondition": { + "anyOf": [ + { + "$ref": "#/definitions/SizeVisibilityCondition" + }, + { + "$ref": "#/definitions/ZoomLevelVisibilityCondition" + } + ] + }, + "X": { + "additionalProperties": false, + "properties": { + "aggregate": { + "$ref": "#/definitions/Aggregate", + "description": "Specify how to aggregate data. __Default__: `undefined`" + }, + "axis": { + "$ref": "#/definitions/AxisPosition", + "description": "Specify where should the axis be put" + }, + "domain": { + "$ref": "#/definitions/GenomicDomain", + "description": "Values of the data" + }, + "field": { + "description": "Name of the data field.", + "type": "string" + }, + "grid": { + "description": "Whether to display grid. __Default__: `false`", + "type": "boolean" + }, + "legend": { + "description": "Whether to display legend. __Default__: `false`", + "type": "boolean" + }, + "linkingId": { + "description": "Users need to assign a unique linkingId for [linking views](/docs/user-interaction#linking-views) and [Brushing and Linking](/docs/user-interaction#brushing-and-linking)", + "type": "string" + }, + "range": { + "$ref": "#/definitions/ValueExtent", + "description": "Values of the visual channel." + }, + "type": { + "const": "genomic", + "description": "Specify the data type.", + "type": "string" + } + }, + "type": "object" + }, + "Y": { + "additionalProperties": false, + "properties": { + "aggregate": { + "$ref": "#/definitions/Aggregate", + "description": "Specify how to aggregate data. __Default__: `undefined`" + }, + "axis": { + "$ref": "#/definitions/AxisPosition", + "description": "Specify where should the axis be put" + }, + "baseline": { + "description": "Custom baseline of the y-axis. __Default__: `0`", + "type": [ + "string", + "number" + ] + }, + "domain": { + "anyOf": [ + { + "$ref": "#/definitions/ValueExtent" + }, + { + "$ref": "#/definitions/GenomicDomain" + } + ], + "description": "Values of the data" + }, + "field": { + "description": "Name of the data field.", + "type": "string" + }, + "flip": { + "description": "Whether to flip the y-axis. This is done by inverting the `range` property. __Default__: `false`", + "type": "boolean" + }, + "grid": { + "description": "Whether to display grid. __Default__: `false`", + "type": "boolean" + }, + "legend": { + "description": "Whether to display legend. __Default__: `false`", + "type": "boolean" + }, + "linkingId": { + "description": "Users need to assign a unique linkingId for [linking views](/docs/user-interaction#linking-views) and [Brushing and Linking](/docs/user-interaction#brushing-and-linking)", + "type": "string" + }, + "range": { + "$ref": "#/definitions/ValueExtent", + "description": "Values of the visual channel." + }, + "type": { + "description": "Specify the data type.", + "enum": [ + "quantitative", + "nominal", + "genomic" + ], + "type": "string" + }, + "zeroBaseline": { + "description": "Specify whether to use zero baseline. __Default__: `true`", + "type": "boolean" + } + }, + "type": "object" + }, + "ZoomLevelVisibilityCondition": { + "additionalProperties": false, + "properties": { + "conditionPadding": { + "description": "Specify the buffer size (in pixel) of width or height when calculating the visibility.\n\n__Default__: `0`", + "type": "number" + }, + "measure": { + "const": "zoomLevel", + "description": "Specify which aspect of the `target` will be compared to the `threshold`.", + "type": "string" + }, + "operation": { + "$ref": "#/definitions/LogicalOperation", + "description": "A string that specifies the logical operation to conduct between `threshold` and the `measure` of `target`. Support\n\n- greater than : \"greater-than\", \"gt\", \"GT\"\n\n- less than : \"less-than\", \"lt\", \"LT\"\n\n- greater than or equal to : \"greater-than-or-equal-to\", \"gtet\", \"GTET\"\n\n- less than or equal to : \"less-than-or-equal-to\", \"ltet\", \"LTET\"" + }, + "target": { + "description": "Target specifies the object that you want to compare with the threshold.", + "enum": [ + "track", + "mark" + ], + "type": "string" + }, + "threshold": { + "description": "Set a threshold in the unit of base pairs (bp)", + "type": "number" + }, + "transitionPadding": { + "description": "Specify the buffer size (in pixel) of width or height for smooth transition.\n\n__Default__: `0`", + "type": "number" + } + }, + "required": [ + "measure", + "operation", + "target", + "threshold" + ], + "type": "object" + }, + "ZoomLimits": { + "items": { + "type": [ + "number", + "null" + ] + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + } + } +} diff --git a/src/gosling-schema/theme.schema.json b/src/gosling-schema/theme.schema.json index 47d366462..fdc9821ef 100644 --- a/src/gosling-schema/theme.schema.json +++ b/src/gosling-schema/theme.schema.json @@ -32,6 +32,10 @@ "labelColor": { "type": "string" }, + "labelExcludeChrPrefix": { + "description": "If `true`, labels of genomics axes excludes the chromosome prefix (e.g., `chr1` -> `1`).", + "type": "boolean" + }, "labelFontFamily": { "type": "string" }, @@ -46,6 +50,10 @@ ], "type": "string" }, + "labelMargin": { + "description": "The margin around labels for calculating visual overlaps between labels. This is mainly used for determining the visibility of axis labels. `0` if no margin to use. Negative values (`-1`) for showing all labels even if they overlap.", + "type": "number" + }, "tickColor": { "type": "string" } diff --git a/src/higlass-schema/higlass.schema.json b/src/higlass-schema/higlass.schema.json index e69de29bb..adef2f22e 100644 --- a/src/higlass-schema/higlass.schema.json +++ b/src/higlass-schema/higlass.schema.json @@ -0,0 +1,796 @@ +{ + "$ref": "#/definitions/HiGlassSpec", + "$schema": "http://json-schema.org/draft-07/schema#", + "definitions": { + "Assembly": { + "anyOf": [ + { + "const": "hg38", + "type": "string" + }, + { + "const": "hg19", + "type": "string" + }, + { + "const": "hg18", + "type": "string" + }, + { + "const": "hg17", + "type": "string" + }, + { + "const": "hg16", + "type": "string" + }, + { + "const": "mm10", + "type": "string" + }, + { + "const": "mm9", + "type": "string" + }, + { + "const": "unknown", + "type": "string" + }, + { + "$ref": "#/definitions/ChromSizes" + } + ] + }, + "ChromSizes": { + "description": "Custom chromosome sizes, e.g., [[\"foo\", 1000], [\"bar\", 300], [\"baz\", 240]]", + "items": { + "items": [ + { + "type": "string" + }, + { + "type": "number" + } + ], + "maxItems": 2, + "minItems": 2, + "type": "array" + }, + "type": "array" + }, + "CombinedTrack": { + "additionalProperties": false, + "properties": { + "contents": { + "items": { + "$ref": "#/definitions/Track" + }, + "type": "array" + }, + "height": { + "type": "number" + }, + "options": {}, + "position": { + "type": "string" + }, + "type": { + "const": "combined", + "type": "string" + }, + "uid": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "type", + "contents" + ], + "type": "object" + }, + "Data": { + "additionalProperties": false, + "properties": { + "assembly": { + "$ref": "#/definitions/Assembly" + }, + "children": { + "items": {}, + "type": "array" + }, + "filter": { + "items": { + "$ref": "#/definitions/FilterTransform" + }, + "type": "array" + }, + "indexUrl": { + "type": "string" + }, + "indexUrlFetchOptions": { + "$ref": "#/definitions/RequestInit" + }, + "tiles": {}, + "tilesetInfo": {}, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "urlFetchOptions": { + "$ref": "#/definitions/RequestInit" + } + }, + "type": "object" + }, + "EnumTrack": { + "additionalProperties": false, + "properties": { + "chromInfoPath": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/Data" + }, + "fromViewUid": { + "type": [ + "null", + "string" + ] + }, + "height": { + "type": "number" + }, + "options": {}, + "server": { + "type": "string" + }, + "tilesetUid": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/EnumTrackType" + }, + "uid": { + "type": "string" + }, + "width": { + "type": "number" + }, + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "EnumTrackType": { + "enum": [ + "heatmap", + "2d-annotations", + "2d-chromosome-annotations", + "2d-chromosome-grid", + "2d-chromosome-labels", + "2d-rectangle-domains", + "2d-tiles", + "arrowhead-domains", + "bedlike", + "cross-rule", + "dummy", + "horizontal-1d-annotations", + "horizontal-1d-heatmap", + "horizontal-1d-tiles", + "horizontal-1d-value-interval", + "horizontal-2d-rectangle-domains", + "horizontal-bar", + "horizontal-chromosome-grid", + "horizontal-chromosome-labels", + "horizontal-divergent-bar", + "horizontal-gene-annotations", + "horizontal-heatmap", + "horizontal-line", + "horizontal-multivec", + "horizontal-point", + "horizontal-rule", + "horizontal-vector-heatmap", + "image-tiles", + "left-axis", + "left-stacked-interval", + "mapbox-tiles", + "osm-2d-tile-ids", + "osm-tiles", + "raster-tiles", + "simple-svg", + "square-markers", + "top-axis", + "top-stacked-interval", + "vertical-1d-annotations", + "vertical-1d-heatmap", + "vertical-1d-tiles", + "vertical-1d-value-interval", + "vertical-2d-rectangle-domains", + "vertical-bar", + "vertical-bedlike", + "vertical-chromosome-grid", + "vertical-chromosome-labels", + "vertical-gene-annotations", + "vertical-heatmap", + "vertical-line", + "vertical-multivec", + "vertical-point", + "vertical-rule", + "vertical-vector-heatmap", + "viewport-projection-center", + "viewport-projection-horizontal", + "viewport-projection-vertical", + "gosling-track", + "gosling-2d-track", + "axis-track", + "text", + "dummy-track" + ], + "type": "string" + }, + "FilterTransform": { + "anyOf": [ + { + "$ref": "#/definitions/OneOfFilter" + }, + { + "$ref": "#/definitions/RangeFilter" + }, + { + "$ref": "#/definitions/IncludeFilter" + } + ] + }, + "GenericLocks": { + "additionalProperties": false, + "properties": { + "locksByViewUid": { + "$ref": "#/definitions/LocksByViewUid" + }, + "locksDict": {} + }, + "required": [ + "locksByViewUid", + "locksDict" + ], + "type": "object" + }, + "GenomePositionSearchBox": { + "additionalProperties": false, + "properties": { + "autocompleteId": { + "type": "string" + }, + "autocompleteServer": { + "type": "string" + }, + "chromInfoId": { + "type": "string" + }, + "chromInfoServer": { + "type": "string" + }, + "visible": { + "type": "boolean" + } + }, + "required": [ + "chromInfoId", + "chromInfoServer" + ], + "type": "object" + }, + "HeatmapTrack": { + "additionalProperties": false, + "properties": { + "data": { + "$ref": "#/definitions/Data" + }, + "height": { + "type": "number" + }, + "options": {}, + "position": { + "type": "string" + }, + "server": { + "type": "string" + }, + "tilesetUid": { + "type": "string" + }, + "type": { + "const": "heatmap", + "type": "string" + }, + "uid": { + "type": "string" + }, + "width": { + "type": "number" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "HiGlassSpec": { + "additionalProperties": false, + "properties": { + "chromInfoPath": { + "type": "string" + }, + "compactLayout": { + "type": "boolean" + }, + "editable": { + "type": "boolean" + }, + "exportViewUrl": { + "type": "string" + }, + "locationLocks": { + "$ref": "#/definitions/GenericLocks" + }, + "trackSourceServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tracksEditable": { + "type": "boolean" + }, + "valueScaleLocks": { + "$ref": "#/definitions/ValueScaleLocks" + }, + "viewEditable": { + "type": "boolean" + }, + "views": { + "items": { + "$ref": "#/definitions/View" + }, + "type": "array" + }, + "zoomFixed": { + "type": "boolean" + }, + "zoomLocks": { + "$ref": "#/definitions/GenericLocks" + } + }, + "required": [ + "views", + "zoomLocks", + "locationLocks" + ], + "type": "object" + }, + "IncludeFilter": { + "additionalProperties": false, + "properties": { + "field": { + "description": "A filter is applied based on the values of the specified data field", + "type": "string" + }, + "include": { + "description": "Check whether the value includes a substring.", + "type": "string" + }, + "not": { + "description": "when `{\"not\": true}`, apply a NOT logical operation to the filter.\n\n__Default:__ `false`", + "type": "boolean" + }, + "type": { + "const": "filter", + "type": "string" + } + }, + "required": [ + "field", + "include", + "type" + ], + "type": "object" + }, + "IndependentViewportProjectionTrack": { + "additionalProperties": false, + "properties": { + "fromViewUid": { + "type": "null" + }, + "options": {}, + "projectionXDomain": { + "items": { + "type": "number" + }, + "type": "array" + }, + "projectionYDomain": { + "items": { + "type": "number" + }, + "type": "array" + }, + "transforms": { + "items": {}, + "type": "array" + }, + "type": { + "enum": [ + "viewport-projection-horizontal", + "viewport-projection-vertical", + "viewport-projection-center" + ], + "type": "string" + }, + "uid": { + "type": "string" + }, + "width": { + "type": "number" + }, + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "Layout": { + "additionalProperties": false, + "properties": { + "h": { + "type": "number" + }, + "w": { + "type": "number" + }, + "x": { + "type": "number" + }, + "y": { + "type": "number" + } + }, + "required": [ + "h", + "w", + "x", + "y" + ], + "type": "object" + }, + "LocksByViewUid": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "OneOfFilter": { + "additionalProperties": false, + "properties": { + "field": { + "description": "A filter is applied based on the values of the specified data field", + "type": "string" + }, + "not": { + "description": "when `{\"not\": true}`, apply a NOT logical operation to the filter.\n\n__Default:__ `false`", + "type": "boolean" + }, + "oneOf": { + "description": "Check whether the value is an element in the provided list.", + "items": { + "type": [ + "string", + "number", + "null" + ] + }, + "type": "array" + }, + "type": { + "const": "filter", + "type": "string" + } + }, + "required": [ + "field", + "oneOf", + "type" + ], + "type": "object" + }, + "Overlay": { + "additionalProperties": false, + "properties": { + "chromInfoPath": { + "type": "string" + }, + "includes": { + "items": {}, + "type": "array" + }, + "options": { + "$ref": "#/definitions/OverlayOptions" + }, + "type": { + "type": "string" + }, + "uid": { + "type": "string" + } + }, + "type": "object" + }, + "OverlayOptions": { + "additionalProperties": false, + "properties": { + "extent": { + "items": {}, + "type": "array" + }, + "fill": { + "type": "string" + }, + "fillOpacity": { + "type": "number" + }, + "minWidth": { + "type": "number" + }, + "outline": { + "type": "string" + }, + "outlineOpacity": { + "type": "number" + }, + "outlinePos": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "string" + } + ] + }, + "outlineWidth": { + "type": "number" + }, + "stroke": { + "type": "string" + }, + "strokeOpacity": { + "type": "number" + }, + "strokePos": { + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "string" + } + ] + }, + "strokeWidth": { + "type": "number" + } + }, + "type": "object" + }, + "RangeFilter": { + "additionalProperties": false, + "properties": { + "field": { + "description": "A filter is applied based on the values of the specified data field", + "type": "string" + }, + "inRange": { + "description": "Check whether the value is in a number range.", + "items": { + "type": "number" + }, + "type": "array" + }, + "not": { + "description": "when `{\"not\": true}`, apply a NOT logical operation to the filter.\n\n__Default:__ `false`", + "type": "boolean" + }, + "type": { + "const": "filter", + "type": "string" + } + }, + "required": [ + "field", + "inRange", + "type" + ], + "type": "object" + }, + "RequestInit": { + "additionalProperties": false, + "properties": { + "headers": { + "type": "object" + } + }, + "type": "object" + }, + "Track": { + "anyOf": [ + { + "$ref": "#/definitions/HeatmapTrack" + }, + { + "$ref": "#/definitions/CombinedTrack" + }, + { + "$ref": "#/definitions/IndependentViewportProjectionTrack" + }, + { + "$ref": "#/definitions/EnumTrack" + } + ] + }, + "Tracks": { + "additionalProperties": false, + "properties": { + "bottom": { + "items": { + "$ref": "#/definitions/Track" + }, + "type": "array" + }, + "center": { + "items": { + "$ref": "#/definitions/Track" + }, + "type": "array" + }, + "gallery": { + "items": { + "$ref": "#/definitions/Track" + }, + "type": "array" + }, + "left": { + "items": { + "$ref": "#/definitions/Track" + }, + "type": "array" + }, + "right": { + "items": { + "$ref": "#/definitions/Track" + }, + "type": "array" + }, + "top": { + "items": { + "$ref": "#/definitions/Track" + }, + "type": "array" + }, + "whole": { + "items": { + "$ref": "#/definitions/Track" + }, + "type": "array" + } + }, + "required": [ + "top", + "left", + "center", + "right", + "bottom", + "gallery", + "whole" + ], + "type": "object" + }, + "ValueScaleLocks": { + "additionalProperties": false, + "properties": { + "locksByViewUid": { + "$ref": "#/definitions/LocksByViewUid" + }, + "locksDict": {} + }, + "required": [ + "locksByViewUid" + ], + "type": "object" + }, + "View": { + "additionalProperties": false, + "properties": { + "autocompleteSource": { + "type": "string" + }, + "chromInfoPath": { + "type": "string" + }, + "genomePositionSearchBox": { + "$ref": "#/definitions/GenomePositionSearchBox" + }, + "genomePositionSearchBoxVisible": { + "type": "boolean" + }, + "initialXDomain": { + "items": { + "type": "number" + }, + "type": "array" + }, + "initialYDomain": { + "items": { + "type": "number" + }, + "type": "array" + }, + "layout": { + "$ref": "#/definitions/Layout" + }, + "overlays": { + "items": { + "$ref": "#/definitions/Overlay" + }, + "type": "array" + }, + "selectionView": { + "type": "boolean" + }, + "tracks": { + "$ref": "#/definitions/Tracks" + }, + "uid": { + "type": "string" + }, + "zoomFixed": { + "type": "boolean" + }, + "zoomLimits": { + "items": { + "type": [ + "number", + "null" + ] + }, + "maxItems": 2, + "minItems": 2, + "type": "array" + } + }, + "required": [ + "tracks", + "layout" + ], + "type": "object" + } + } +}