diff --git a/assets/gosling.schema.json b/assets/gosling.schema.json index 07f180f..791ad3c 100644 --- a/assets/gosling.schema.json +++ b/assets/gosling.schema.json @@ -13,17 +13,43 @@ "type": "string" }, "Assembly": { - "enum": [ - "hg38", - "hg19", - "hg18", - "hg17", - "hg16", - "mm10", - "mm9", - "unknown" - ], - "type": "string" + "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": [ @@ -35,18 +61,28 @@ ], "type": "string" }, - "BAMData": { + "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": { @@ -65,7 +101,42 @@ ], "type": "object" }, - "BEDDBData": { + "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": { @@ -173,23 +244,27 @@ ], "type": "object" }, - "BIGWIGData": { + "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.", + "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.", + "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.", + "description": "Assign a field name of the start position of genomic intervals. __Default__: `\"start\"`", "type": "string" }, "type": { @@ -201,100 +276,22 @@ "type": "string" }, "value": { - "description": "Assign a field name of quantitative values.", + "description": "Assign a field name of quantitative values. __Default__: `\"value\"`", "type": "string" } }, "required": [ "type", - "url", - "column", - "value" + "url" ], "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": "experimental", - "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 is headerless.", - "items": { - "type": "string" - }, - "type": "array" - }, - "longToWideId": { - "description": "experimental", - "type": "string" - }, - "quantitativeFields": { - "description": "Specify the name of quantitative data fields.", - "items": { - "type": "string" - }, - "type": "array" - }, - "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" + "BinAggregate": { + "enum": [ + "mean", + "sum" ], - "type": "object" + "type": "string" }, "Channel": { "anyOf": [ @@ -353,60 +350,22 @@ ], "type": "object" }, - "Chromosome": { - "enum": [ - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10", - "11", - "12", - "13", - "14", - "15", - "16", - "17", - "18", - "19", - "20", - "21", - "22", - "X", - "Y", - "M", - "chr1", - "chr2", - "chr3", - "chr4", - "chr5", - "chr6", - "chr7", - "chr8", - "chr9", - "chr10", - "chr11", - "chr12", - "chr13", - "chr14", - "chr15", - "chr16", - "chr17", - "chr18", - "chr19", - "chr20", - "chr21", - "chr22", - "chrX", - "chrY", - "chrM" - ], - "type": "string" + "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, @@ -427,6 +386,26 @@ "$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": [ @@ -438,78 +417,130 @@ }, "type": "object" }, - "CombineMatesTransform": { + "CoverageTransform": { "additionalProperties": false, - "description": "By looking up ids, combine mates (a pair of reads) into a single row, performing long-to-wide operation. Result data have `{field}` and `{field}_2` names.", + "description": "Aggregate rows and calculate coverage", "properties": { - "idField": { + "endField": { "type": "string" }, - "isLongField": { + "groupField": { + "description": "The name of a nominal field to group rows by in prior to piling-up", "type": "string" }, - "maintainDuplicates": { - "type": "boolean" + "newField": { + "type": "string" }, - "maxInsertSize": { - "type": "number" + "startField": { + "type": "string" }, "type": { - "const": "combineMates", + "const": "coverage", "type": "string" } }, "required": [ "type", - "idField" + "startField", + "endField" ], "type": "object" }, - "CoverageTransform": { + "CsvData": { "additionalProperties": false, - "description": "Aggregate rows and calculate coverage", + "description": "Any small enough tabular data files, such as tsv, csv, BED, BEDPE, and GFF, can be loaded using \"csv\" data specification.", "properties": { - "endField": { + "chromosomeField": { + "description": "Specify the name of chromosome data fields.", "type": "string" }, - "groupField": { - "description": "The name of a nominal field to group rows by in prior to piling-up", + "chromosomePrefix": { + "description": "Specify the chromosome prefix if chromosomes are denoted using a prefix besides \"chr\" or a number", "type": "string" }, - "newField": { + "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" }, - "startField": { + "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": "coverage", + "const": "csv", + "type": "string" + }, + "url": { + "description": "Specify the URL address of the data file.", "type": "string" } }, "required": [ "type", - "startField", - "endField" + "url" ], "type": "object" }, "DataDeep": { "anyOf": [ { - "$ref": "#/definitions/JSONData" + "$ref": "#/definitions/JsonData" + }, + { + "$ref": "#/definitions/CsvData" }, { - "$ref": "#/definitions/CSVData" + "$ref": "#/definitions/BedData" }, { - "$ref": "#/definitions/BIGWIGData" + "$ref": "#/definitions/BigWigData" }, { "$ref": "#/definitions/MultivecData" }, { - "$ref": "#/definitions/BEDDBData" + "$ref": "#/definitions/BeddbData" }, { "$ref": "#/definitions/VectorData" @@ -518,7 +549,13 @@ "$ref": "#/definitions/MatrixData" }, { - "$ref": "#/definitions/BAMData" + "$ref": "#/definitions/BamData" + }, + { + "$ref": "#/definitions/VcfData" + }, + { + "$ref": "#/definitions/GffData" } ] }, @@ -526,7 +563,14 @@ "additionalProperties": false, "description": "Partial specification of `BasicSingleTrack` to use default visual encoding predefined by data type.", "properties": { - "_invalidTrack": { + "_assignedHeight": { + "type": "number" + }, + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" + }, + "_invalidTrack": { "description": "internal", "type": "boolean" }, @@ -554,6 +598,7 @@ "type": "number" }, "id": { + "description": "Assigned to `uid` in a HiGlass view config, used for API and caching.", "type": "string" }, "innerRadius": { @@ -585,7 +630,7 @@ "type": "object" }, "spacing": { - "description": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", + "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": { @@ -598,7 +643,7 @@ }, "style": { "$ref": "#/definitions/Style", - "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overriden by the style of children elements (e.g., view, track)." + "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" @@ -626,12 +671,27 @@ { "$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" @@ -641,9 +701,7 @@ } }, "required": [ - "data", - "height", - "width" + "data" ], "type": "object" }, @@ -671,13 +729,13 @@ "$ref": "#/definitions/GenomicLengthTransform" }, { - "$ref": "#/definitions/CoverageTransform" + "$ref": "#/definitions/SvTypeTransform" }, { - "$ref": "#/definitions/CombineMatesTransform" + "$ref": "#/definitions/CoverageTransform" }, { - "$ref": "#/definitions/JSONParseTransform" + "$ref": "#/definitions/JsonParseTransform" } ] }, @@ -730,7 +788,7 @@ }, "method": { "$ref": "#/definitions/DisplacementType", - "description": "A string that specifies the type of diseplancement." + "description": "A string that specifies the type of displacement." }, "newField": { "type": "string" @@ -774,7 +832,7 @@ "additionalProperties": false, "properties": { "chromosome": { - "$ref": "#/definitions/Chromosome" + "type": "string" } }, "required": [ @@ -786,18 +844,13 @@ "additionalProperties": false, "properties": { "chromosome": { - "$ref": "#/definitions/Chromosome", - "description": "If specified, only showing a certain interval in a chromosome." + "description": "If specified, only showing a certain interval in a chromosome.", + "type": "string" }, "interval": { - "items": [ - { - "type": "number" - }, - { - "type": "number" - } - ], + "items": { + "type": "number" + }, "maxItems": 2, "minItems": 2, "type": "array" @@ -809,57 +862,162 @@ ], "type": "object" }, - "DomainGene": { + "DomainInterval": { "additionalProperties": false, "properties": { - "gene": { - "anyOf": [ - { - "type": "string" - }, - { - "items": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "maxItems": 2, - "minItems": 2, - "type": "array" - } - ] + "interval": { + "description": "Show a certain interval within entire chromosome", + "items": { + "type": "number" + }, + "maxItems": 2, + "minItems": 2, + "type": "array" } }, "required": [ - "gene" + "interval" ], "type": "object" }, - "DomainInterval": { + "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": { - "interval": { - "items": [ - { - "type": "number" - }, - { - "type": "number" - } - ], + "_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": [ - "interval" + "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": { @@ -946,81 +1104,6 @@ } ] }, - "FlatTracks": { - "additionalProperties": false, - "properties": { - "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" - }, - "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": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", - "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 overriden 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" - } - ] - }, - "xOffset": { - "description": "Specify the x offset of views in the unit of pixels", - "type": "number" - }, - "yOffset": { - "description": "Specify the y offset of views in the unit of pixels", - "type": "number" - }, - "zoomLimits": { - "$ref": "#/definitions/ZoomLimits" - } - }, - "required": [ - "tracks" - ], - "type": "object" - }, "GenomicDomain": { "anyOf": [ { @@ -1031,9 +1114,6 @@ }, { "$ref": "#/definitions/DomainChr" - }, - { - "$ref": "#/definitions/DomainGene" } ] }, @@ -1063,2004 +1143,2434 @@ ], "type": "object" }, - "GoslingSpec": { - "anyOf": [ - { - "$ref": "#/definitions/RootSpecWithSingleView" - }, - { - "$ref": "#/definitions/RootSpecWithMultipleViews" - } - ] - }, - "IncludeFilter": { + "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": { - "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", + "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": { - "chromosomeField": { + "attribute": { "type": "string" }, - "genomicFields": { - "items": { - "type": "string" - }, - "type": "array" + "defaultValue": { + "type": "string" } }, "required": [ - "chromosomeField", - "genomicFields" + "attribute", + "defaultValue" ], "type": "object" }, "type": "array" }, - "quantitativeFields": { - "description": "Specify the name of quantitative data fields.", - "items": { - "type": "string" - }, - "type": "array" + "indexUrl": { + "description": "URL link to the tabix index file", + "type": "string" }, "sampleLength": { - "description": "Specify the number of rows loaded from the URL.\n\n__Default:__ `1000`", + "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": "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.", + "const": "gff", "type": "string" }, - "type": { - "const": "subjson", + "url": { + "description": "URL link to the GFF file", "type": "string" } }, "required": [ "type", - "field", - "baseGenomicField", - "genomicField", - "genomicLengthField" + "url", + "indexUrl" ], "type": "object" }, - "Layout": { - "enum": [ - "linear", - "circular" - ], - "type": "string" - }, - "LogBase": { + "GoslingSpec": { "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": { - "type": { - "const": "matrix", - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "type", - "url" - ], - "type": "object" - }, - "MultipleViews": { - "additionalProperties": false, - "properties": { - "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" - }, - "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": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", - "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 overriden 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" + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" }, - { - "$ref": "#/definitions/DomainChrInterval" + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" }, - { - "$ref": "#/definitions/DomainChr" - } - ] - }, - "xOffset": { - "description": "Specify the x offset of views in the unit of pixels", - "type": "number" - }, - "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": { - "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.", - "type": "string" - }, - "end": { - "description": "Assign a field name of the end position of genomic intervals.", - "type": "string" - }, - "row": { - "description": "Assign a field name of samples.", - "type": "string" - }, - "start": { - "description": "Assign a field name of the start position of genomic intervals.", - "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.", - "type": "string" - } - }, - "required": [ - "type", - "url", - "column", - "row", - "value" - ], - "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": { - "anyOf": [ - { + "_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": { - "type": "string" + "$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": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "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" + }, + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "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": { - "type": "number" + "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": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "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" + }, + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "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" - } - ], - "description": "Check whether the value is an element in the provided list." - }, - "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": { - "_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" - }, - "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" - }, - "flipY": { - "type": "boolean" - }, - "height": { - "description": "Specify the track height in pixels.", - "type": "number" - }, - "id": { - "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" + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "orientation": { - "$ref": "#/definitions/Orientation", - "description": "Specify the orientation." - }, - "outerRadius": { - "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", - "type": "number" - }, - "overlay": { - "items": { - "additionalProperties": false, - "properties": { - "_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" - }, - "color": { - "anyOf": [ - { - "$ref": "#/definitions/Color" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "data": { - "$ref": "#/definitions/DataDeep" - }, - "dataTransform": { - "items": { - "$ref": "#/definitions/DataTransform" + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" }, - "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" - }, - "flipY": { - "type": "boolean" - }, - "id": { - "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." + { + "$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" }, - "outerRadius": { - "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", - "type": "number" + "type": "array" + }, + "tracks": { + "items": { + "$ref": "#/definitions/PartialTrack" }, - "overlayOnPreviousTrack": { - "type": "boolean" + "type": "array" + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" }, - "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": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", - "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 overriden 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" + }, + "width": { + "description": "Specify the track width in pixels.", + "type": "number" + }, + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" }, - "type": "array" - }, - "visibility": { - "items": { - "$ref": "#/definitions/VisibilityCondition" + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" }, - "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" - } - ] - }, - "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" - } - ] - }, - "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" - } + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - "type": "object" - }, - "type": "array" - }, - "overlayOnPreviousTrack": { - "type": "boolean" - }, - "overrideTemplate": { - "type": "boolean" - }, - "prerelease": { - "additionalProperties": false, - "description": "internal", - "type": "object" - }, - "row": { - "anyOf": [ - { - "$ref": "#/definitions/Row" + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "size": { - "anyOf": [ - { - "$ref": "#/definitions/Size" + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "spacing": { - "description": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", - "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" + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "strokeWidth": { - "anyOf": [ - { - "$ref": "#/definitions/StrokeWidth" + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" }, - { - "$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 overriden by the style of children elements (e.g., view, track)." - }, - "subtitle": { - "type": "string" - }, - "text": { - "anyOf": [ - { - "$ref": "#/definitions/Text" + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$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" + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "x1": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "x1e": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "xAxis": { - "$ref": "#/definitions/AxisPosition", - "description": "not supported" - }, - "xDomain": { - "anyOf": [ - { - "$ref": "#/definitions/DomainInterval" + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" }, - { - "$ref": "#/definitions/DomainChrInterval" + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" }, - { - "$ref": "#/definitions/DomainChr" - } - ] - }, - "xOffset": { - "description": "Specify the x offset of views in the unit of pixels", - "type": "number" - }, - "xe": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" } - ] + }, + "required": [ + "alignment", + "tracks" + ], + "type": "object" }, - "y": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "y1": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "y1e": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "_invalidTrack": { + "description": "internal", + "type": "boolean" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "yOffset": { - "description": "Specify the y offset of views in the unit of pixels", - "type": "number" - }, - "ye": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "_renderingId": { + "description": "internal", + "type": "string" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "zoomLimits": { - "$ref": "#/definitions/ZoomLimits" - } - }, - "required": [ - "height", - "overlay", - "width" - ], - "type": "object" - }, - "OverlaidTracks": { - "additionalProperties": false, - "properties": { - "_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." - }, - "centerRadius": { - "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", - "type": "number" - }, - "color": { - "anyOf": [ - { - "$ref": "#/definitions/Color" + "alignment": { + "const": "stack", + "type": "string" }, - { - "$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" - }, - "flipY": { - "type": "boolean" - }, - "height": { - "description": "Specify the track height in pixels.", - "type": "number" - }, - "id": { - "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" + "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." }, - { - "$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" + "baselineY": { + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "size": { - "anyOf": [ - { - "$ref": "#/definitions/Size" + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "spacing": { - "description": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", - "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" + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "strokeWidth": { - "anyOf": [ - { - "$ref": "#/definitions/StrokeWidth" + "data": { + "$ref": "#/definitions/DataDeep" }, - { - "$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 overriden by the style of children elements (e.g., view, track)." - }, - "subtitle": { - "type": "string" - }, - "text": { - "anyOf": [ - { - "$ref": "#/definitions/Text" + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" }, - { - "$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" + "description": { + "type": "string" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "x1": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "displacement": { + "$ref": "#/definitions/Displacement" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "x1e": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "endAngle": { + "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "xAxis": { - "$ref": "#/definitions/AxisPosition", - "description": "not supported" - }, - "xDomain": { - "anyOf": [ - { - "$ref": "#/definitions/DomainInterval" + "experimental": { + "additionalProperties": false, + "properties": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "type": "object" }, - { - "$ref": "#/definitions/DomainChrInterval" + "flipY": { + "type": "boolean" }, - { - "$ref": "#/definitions/DomainChr" - } - ] - }, - "xOffset": { - "description": "Specify the x offset of views in the unit of pixels", - "type": "number" - }, - "xe": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "height": { + "description": "Specify the track height in pixels.", + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "y": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "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" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "y1": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "y1e": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "yOffset": { - "description": "Specify the y offset of views in the unit of pixels", - "type": "number" - }, - "ye": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "zoomLimits": { - "$ref": "#/definitions/ZoomLimits" - } - }, - "required": [ - "alignment", - "tracks", - "width", - "height" - ], - "type": "object" - }, - "PREDEFINED_COLORS": { - "enum": [ - "viridis", - "grey", - "spectral", - "warm", - "cividis", - "bupu", - "rdbu" - ], - "type": "string" - }, - "PartialTrack": { - "additionalProperties": false, - "properties": { - "_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" - }, - "color": { - "anyOf": [ - { - "$ref": "#/definitions/Color" + "mark": { + "$ref": "#/definitions/Mark" }, - { - "$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" - }, - "flipY": { - "type": "boolean" - }, - "height": { - "description": "Specify the track height in pixels.", - "type": "number" - }, - "id": { - "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" + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "orientation": { - "$ref": "#/definitions/Orientation", - "description": "Specify the orientation." - }, - "outerRadius": { - "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", - "type": "number" - }, - "overlay": { - "items": { - "additionalProperties": false, - "properties": { - "_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" - }, - "color": { - "anyOf": [ - { - "$ref": "#/definitions/Color" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "data": { - "$ref": "#/definitions/DataDeep" - }, - "dataTransform": { - "items": { - "$ref": "#/definitions/DataTransform" + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" }, - "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" - }, - "flipY": { - "type": "boolean" - }, - "id": { - "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": { + { + "$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, - "description": "internal", - "type": "object" - }, - "row": { - "anyOf": [ - { - "$ref": "#/definitions/Row" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "size": { - "anyOf": [ - { - "$ref": "#/definitions/Size" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "spacing": { - "description": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", - "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 overriden by the style of children elements (e.g., view, track)." - }, - "text": { - "anyOf": [ - { - "$ref": "#/definitions/Text" + "properties": { + "selectivity": { + "items": { + "$ref": "#/definitions/SelectivityCondition" + }, + "type": "array" }, - { - "$ref": "#/definitions/ChannelValue" + "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": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "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" + }, + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "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" } - ] - }, - "tooltip": { - "items": { - "$ref": "#/definitions/Tooltip" }, - "type": "array" + "required": [ + "spec", + "selectivity" + ], + "type": "object" }, - "visibility": { - "items": { - "$ref": "#/definitions/VisibilityCondition" + "type": "array" + }, + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" }, - "type": "array" + { + "$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" }, - "x": { + "type": "array" + }, + "tracks": { + "items": { "anyOf": [ { - "$ref": "#/definitions/X" + "$ref": "#/definitions/PartialTrack" }, { - "$ref": "#/definitions/ChannelValue" + "$ref": "#/definitions/OverlaidTracks" } ] }, - "x1": { - "anyOf": [ - { - "$ref": "#/definitions/X" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + "type": "array" + }, + "visibility": { + "items": { + "$ref": "#/definitions/VisibilityCondition" }, - "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" - } - ] - }, - "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" - } - ] - }, - "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": "array" }, - "type": "object" - }, - "type": "array" - }, - "overlayOnPreviousTrack": { - "type": "boolean" - }, - "overrideTemplate": { - "type": "boolean" - }, - "prerelease": { - "additionalProperties": false, - "description": "internal", - "type": "object" - }, - "row": { - "anyOf": [ - { - "$ref": "#/definitions/Row" + "width": { + "description": "Specify the track width in pixels.", + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "size": { - "anyOf": [ - { - "$ref": "#/definitions/Size" + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "spacing": { - "description": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", - "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" + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "strokeWidth": { - "anyOf": [ - { - "$ref": "#/definitions/StrokeWidth" + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$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 overriden by the style of children elements (e.g., view, track)." - }, - "subtitle": { - "type": "string" - }, - "template": { - "type": "string" - }, - "text": { - "anyOf": [ - { - "$ref": "#/definitions/Text" + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" }, - { - "$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" + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic x-axis" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "x1": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "xOffset": { + "description": "Specify the x offset of views in the unit of pixels", + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "x1e": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "xe": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "xAxis": { - "$ref": "#/definitions/AxisPosition", - "description": "not supported" - }, - "xDomain": { - "anyOf": [ - { - "$ref": "#/definitions/DomainInterval" + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/DomainChrInterval" + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/DomainChr" - } - ] - }, - "xOffset": { - "description": "Specify the x offset of views in the unit of pixels", - "type": "number" - }, - "xe": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "y": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" + }, + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" + } + ], + "description": "Specify the visible region of genomic y-axis" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "y1": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "yOffset": { + "description": "Specify the y offset of views in the unit of pixels", + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "y1e": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "ye": { + "anyOf": [ + { + "$ref": "#/definitions/Y" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" } - ] - }, - "yOffset": { - "description": "Specify the y offset of views in the unit of pixels", - "type": "number" + }, + "required": [ + "tracks" + ], + "type": "object" }, - "ye": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" + "_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": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "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" + }, + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "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" }, - "zoomLimits": { - "$ref": "#/definitions/ZoomLimits" - } - }, - "type": "object" - }, - "Range": { - "anyOf": [ { - "$ref": "#/definitions/ValueExtent" - }, - { - "$ref": "#/definitions/PREDEFINED_COLORS" + "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" } ] }, - "RangeFilter": { + "IncludeFilter": { "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" + "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`", @@ -3073,439 +3583,2848 @@ }, "required": [ "field", - "inRange", + "include", "type" ], "type": "object" }, - "RootSpecWithMultipleViews": { + "JsonData": { "additionalProperties": false, + "description": "The JSON data format allows users to include data directly in the Gosling's JSON specification.", "properties": { - "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" - }, - "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": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", - "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 overriden by the style of children elements (e.g., view, track)." - }, - "subtitle": { + "chromosomeField": { + "description": "Specify the name of chromosome data fields.", "type": "string" }, - "title": { - "type": "string" + "genomicFields": { + "description": "Specify the name of genomic data fields.", + "items": { + "type": "string" + }, + "type": "array" }, - "views": { - "description": "An array of view specifications", + "genomicFieldsToConvert": { + "description": "experimental", "items": { - "anyOf": [ - { - "$ref": "#/definitions/SingleView" + "additionalProperties": false, + "properties": { + "chromosomeField": { + "type": "string" }, - { - "$ref": "#/definitions/MultipleViews" + "genomicFields": { + "items": { + "type": "string" + }, + "type": "array" } - ] + }, + "required": [ + "chromosomeField", + "genomicFields" + ], + "type": "object" }, "type": "array" }, - "xAxis": { - "$ref": "#/definitions/AxisPosition", - "description": "not supported" - }, - "xDomain": { - "anyOf": [ - { - "$ref": "#/definitions/DomainInterval" - }, - { - "$ref": "#/definitions/DomainChrInterval" - }, - { - "$ref": "#/definitions/DomainChr" - } - ] - }, - "xOffset": { - "description": "Specify the x offset of views in the unit of pixels", + "sampleLength": { + "description": "Specify the number of rows loaded from the URL.\n\n__Default:__ `1000`", "type": "number" }, - "yOffset": { - "description": "Specify the y offset of views in the unit of pixels", - "type": "number" + "type": { + "const": "json", + "description": "Define data type.", + "type": "string" }, - "zoomLimits": { - "$ref": "#/definitions/ZoomLimits" + "values": { + "description": "Values in the form of JSON.", + "items": { + "$ref": "#/definitions/Datum" + }, + "type": "array" } }, "required": [ - "views" + "type", + "values" ], "type": "object" }, - "RootSpecWithSingleView": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "_invalidTrack": { - "description": "internal", + "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": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "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" + }, + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "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": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "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" + }, + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "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": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "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" + }, + "mouseEvents": { + "anyOf": [ + { "type": "boolean" }, - "_renderingId": { - "description": "internal", - "type": "string" + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "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": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "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" + }, + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "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." }, - "alignment": { - "const": "overlay", + { + "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" }, - "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." + { + "$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": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" }, - "centerRadius": { - "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", "type": "number" + } + }, + "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." }, - "color": { - "anyOf": [ - { - "$ref": "#/definitions/Color" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + { + "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" + }, + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "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" }, - "data": { - "$ref": "#/definitions/DataDeep" + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" }, - "dataTransform": { - "items": { - "$ref": "#/definitions/DataTransform" - }, - "type": "array" + { + "$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)." }, - "description": { - "type": "string" + { + "$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" }, - "displacement": { - "$ref": "#/definitions/Displacement" + { + "$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" }, - "endAngle": { - "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", - "type": "number" + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" }, - "flipY": { - "type": "boolean" + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" }, - "height": { - "description": "Specify the track height in pixels.", - "type": "number" + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" }, - "id": { - "type": "string" + { + "$ref": "#/definitions/DomainChrInterval" }, - "innerRadius": { - "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", - "type": "number" + { + "$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" }, - "layout": { - "$ref": "#/definitions/Layout", - "description": "Specify the layout type of all tracks." + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" }, - "linkingId": { - "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", - "type": "string" + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" }, - "mark": { - "$ref": "#/definitions/Mark" + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" }, - "opacity": { - "anyOf": [ - { - "$ref": "#/definitions/Opacity" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" }, - "orientation": { - "$ref": "#/definitions/Orientation", - "description": "Specify the orientation." + { + "$ref": "#/definitions/DomainChrInterval" }, - "outerRadius": { - "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", - "type": "number" + { + "$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" }, - "overlayOnPreviousTrack": { + { + "$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" }, - "overrideTemplate": { + "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" }, - "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": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", - "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`.", + { + "$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": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", "type": "boolean" }, - "stretch": { + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", "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 overriden 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" + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "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" + }, + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" }, - "tooltip": { - "items": { - "$ref": "#/definitions/Tooltip" - }, - "type": "array" + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" }, - "tracks": { - "items": { - "$ref": "#/definitions/PartialTrack" - }, - "type": "array" + { + "$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" }, - "visibility": { - "items": { - "$ref": "#/definitions/VisibilityCondition" - }, - "type": "array" + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" }, - "width": { - "description": "Specify the track width in pixels.", - "type": "number" + { + "$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" }, - "x": { - "anyOf": [ - { - "$ref": "#/definitions/X" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" }, - "x1": { - "anyOf": [ - { - "$ref": "#/definitions/X" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + { + "$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" }, - "x1e": { - "anyOf": [ - { - "$ref": "#/definitions/X" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + { + "$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" }, - "xAxis": { - "$ref": "#/definitions/AxisPosition", - "description": "not supported" + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" }, - "xDomain": { - "anyOf": [ - { - "$ref": "#/definitions/DomainInterval" - }, - { - "$ref": "#/definitions/DomainChrInterval" - }, - { - "$ref": "#/definitions/DomainChr" - } - ] + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "x1e": { + "anyOf": [ + { + "$ref": "#/definitions/X" }, - "xOffset": { - "description": "Specify the x offset of views in the unit of pixels", - "type": "number" + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "xAxis": { + "$ref": "#/definitions/AxisPosition", + "description": "not supported" + }, + "xDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" }, - "xe": { - "anyOf": [ - { - "$ref": "#/definitions/X" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + { + "$ref": "#/definitions/DomainChrInterval" }, - "y": { - "anyOf": [ - { - "$ref": "#/definitions/Y" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + { + "$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" }, - "y1": { - "anyOf": [ - { - "$ref": "#/definitions/Y" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y": { + "anyOf": [ + { + "$ref": "#/definitions/Y" }, - "y1e": { - "anyOf": [ - { - "$ref": "#/definitions/Y" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1": { + "anyOf": [ + { + "$ref": "#/definitions/Y" }, - "yOffset": { - "description": "Specify the y offset of views in the unit of pixels", - "type": "number" + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "y1e": { + "anyOf": [ + { + "$ref": "#/definitions/Y" }, - "ye": { - "anyOf": [ - { - "$ref": "#/definitions/Y" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + { + "$ref": "#/definitions/ChannelValue" + } + ] + }, + "yDomain": { + "anyOf": [ + { + "$ref": "#/definitions/DomainInterval" }, - "zoomLimits": { - "$ref": "#/definitions/ZoomLimits" + { + "$ref": "#/definitions/DomainChrInterval" + }, + { + "$ref": "#/definitions/DomainChr" } - }, - "required": [ - "alignment", - "height", - "tracks", - "width" ], - "type": "object" + "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" @@ -3515,13 +6434,16 @@ "type": "string" }, "alignment": { - "const": "stack", + "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" @@ -3545,9 +6467,6 @@ }, "type": "array" }, - "description": { - "type": "string" - }, "displacement": { "$ref": "#/definitions/Displacement" }, @@ -3555,6 +6474,26 @@ "description": "Specify the end angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", "type": "number" }, + "experimental": { + "additionalProperties": false, + "properties": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "type": "object" + }, "flipY": { "type": "boolean" }, @@ -3563,6 +6502,7 @@ "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": { @@ -3580,6 +6520,16 @@ "mark": { "$ref": "#/definitions/Mark" }, + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, "opacity": { "anyOf": [ { @@ -3609,6 +6559,413 @@ "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": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "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" + }, + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "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": [ { @@ -3630,7 +6987,7 @@ ] }, "spacing": { - "description": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", + "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": { @@ -3666,7 +7023,7 @@ }, "style": { "$ref": "#/definitions/Style", - "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overriden by the style of children elements (e.g., view, track)." + "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" @@ -3693,14 +7050,7 @@ }, "tracks": { "items": { - "anyOf": [ - { - "$ref": "#/definitions/PartialTrack" - }, - { - "$ref": "#/definitions/OverlaidTracks" - } - ] + "$ref": "#/definitions/PartialTrack" }, "type": "array" }, @@ -3759,7 +7109,8 @@ { "$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", @@ -3805,6 +7156,20 @@ } ] }, + "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" @@ -3824,6 +7189,7 @@ } }, "required": [ + "alignment", "tracks" ], "type": "object" @@ -3831,846 +7197,1377 @@ { "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" }, - "description": { - "type": "string" + "color": { + "anyOf": [ + { + "$ref": "#/definitions/Color" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - "layout": { - "$ref": "#/definitions/Layout", - "description": "Specify the layout type of all tracks." + "data": { + "$ref": "#/definitions/DataDeep" }, - "linkingId": { - "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", - "type": "string" + "dataTransform": { + "items": { + "$ref": "#/definitions/DataTransform" + }, + "type": "array" }, - "orientation": { - "$ref": "#/definitions/Orientation", - "description": "Specify the orientation." + "displacement": { + "$ref": "#/definitions/Displacement" }, - "spacing": { - "description": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", + "endAngle": { + "description": "Specify the end 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`.", + "experimental": { + "additionalProperties": false, + "properties": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "type": "object" + }, + "flipY": { "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 overriden by the style of children elements (e.g., view, track)." + "height": { + "description": "Specify the track height in pixels.", + "type": "number" }, - "subtitle": { + "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" }, - "title": { - "type": "string" + "innerRadius": { + "description": "Specify the inner radius of tracks when (`{\"layout\": \"circular\"}`).", + "type": "number" }, - "tracks": { - "items": { - "$ref": "#/definitions/Track" - }, - "type": "array" + "layout": { + "$ref": "#/definitions/Layout", + "description": "Specify the layout type of all tracks." }, - "xAxis": { - "$ref": "#/definitions/AxisPosition", - "description": "not supported" + "linkingId": { + "description": "Specify an ID for [linking multiple views](http://gosling-lang.org/docs/user-interaction#linking-views)", + "type": "string" + }, + "mark": { + "$ref": "#/definitions/Mark" }, - "xDomain": { + "mouseEvents": { "anyOf": [ { - "$ref": "#/definitions/DomainInterval" + "type": "boolean" }, { - "$ref": "#/definitions/DomainChrInterval" + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "opacity": { + "anyOf": [ + { + "$ref": "#/definitions/Opacity" }, { - "$ref": "#/definitions/DomainChr" + "$ref": "#/definitions/ChannelValue" } ] }, - "xOffset": { - "description": "Specify the x offset of views in the unit of pixels", - "type": "number" + "orientation": { + "$ref": "#/definitions/Orientation", + "description": "Specify the orientation." }, - "yOffset": { - "description": "Specify the y offset of views in the unit of pixels", + "outerRadius": { + "description": "Specify the outer radius of tracks when `{\"layout\": \"circular\"}`.", "type": "number" }, - "zoomLimits": { - "$ref": "#/definitions/ZoomLimits" - } - }, - "required": [ - "tracks" - ], - "type": "object" - } - ] - }, - "Row": { - "additionalProperties": false, - "properties": { - "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" - }, - "SingleTrack": { - "additionalProperties": false, - "properties": { - "_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" - }, - "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" - }, - "flipY": { - "type": "boolean" - }, - "height": { - "description": "Specify the track height in pixels.", - "type": "number" - }, - "id": { - "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" + "overlayOnPreviousTrack": { + "type": "boolean" }, - { - "$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" + "overrideTemplate": { + "type": "boolean" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "size": { - "anyOf": [ - { - "$ref": "#/definitions/Size" + "prerelease": { + "additionalProperties": false, + "description": "internal", + "type": "object" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "spacing": { - "description": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", - "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" + "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": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "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" + }, + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "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" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "strokeWidth": { - "anyOf": [ - { - "$ref": "#/definitions/StrokeWidth" + "row": { + "anyOf": [ + { + "$ref": "#/definitions/Row" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$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 overriden by the style of children elements (e.g., view, track)." - }, - "subtitle": { - "type": "string" - }, - "text": { - "anyOf": [ - { - "$ref": "#/definitions/Text" + "size": { + "anyOf": [ + { + "$ref": "#/definitions/Size" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$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" + "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" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "x1": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "startAngle": { + "description": "Specify the start angle (in the range of [0, 360]) of circular tracks (`{\"layout\": \"circular\"}`).", + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "x1e": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "xAxis": { - "$ref": "#/definitions/AxisPosition", - "description": "not supported" - }, - "xDomain": { - "anyOf": [ - { - "$ref": "#/definitions/DomainInterval" + "stretch": { + "type": "boolean" }, - { - "$ref": "#/definitions/DomainChrInterval" + "stroke": { + "anyOf": [ + { + "$ref": "#/definitions/Stroke" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/DomainChr" - } - ] - }, - "xOffset": { - "description": "Specify the x offset of views in the unit of pixels", - "type": "number" - }, - "xe": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "strokeWidth": { + "anyOf": [ + { + "$ref": "#/definitions/StrokeWidth" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "y": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "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)." }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "y1": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "subtitle": { + "type": "string" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "y1e": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "text": { + "anyOf": [ + { + "$ref": "#/definitions/Text" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "yOffset": { - "description": "Specify the y offset of views in the unit of pixels", - "type": "number" - }, - "ye": { - "anyOf": [ - { - "$ref": "#/definitions/Y" + "title": { + "description": "If defined, will show the textual label on the left-top corner of a track.", + "type": "string" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "zoomLimits": { - "$ref": "#/definitions/ZoomLimits" - } - }, - "required": [ - "data", - "height", - "mark", - "width" - ], - "type": "object" - }, - "SingleView": { - "anyOf": [ - { - "$ref": "#/definitions/OverlaidTracks" - }, - { - "$ref": "#/definitions/StackedTracks" - }, - { - "$ref": "#/definitions/FlatTracks" - } - ] - }, - "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 pecifies 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": [ - { + "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" }, - { - "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" - }, - "StackedTracks": { - "additionalProperties": false, - "properties": { - "_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." - }, - "centerRadius": { - "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", - "type": "number" - }, - "color": { - "anyOf": [ - { - "$ref": "#/definitions/Color" + "x": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$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" - }, - "flipY": { - "type": "boolean" - }, - "height": { - "description": "Specify the track height in pixels.", - "type": "number" - }, - "id": { - "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" + "x1": { + "anyOf": [ + { + "$ref": "#/definitions/X" + }, + { + "$ref": "#/definitions/ChannelValue" + } + ] }, - { - "$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" + "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" + } + ] }, - { - "$ref": "#/definitions/ChannelValue" + "zoomLimits": { + "$ref": "#/definitions/ZoomLimits" } - ] + }, + "required": [ + "tracks" + ], + "type": "object" }, - "size": { - "anyOf": [ - { - "$ref": "#/definitions/Size" + { + "additionalProperties": false, + "properties": { + "_assignedHeight": { + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "spacing": { - "description": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", - "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" + "_assignedWidth": { + "description": "Internal: Used for responsive spec", + "type": "number" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "strokeWidth": { - "anyOf": [ - { - "$ref": "#/definitions/StrokeWidth" + "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." }, - { - "$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 overriden by the style of children elements (e.g., view, track)." - }, - "subtitle": { - "type": "string" - }, - "text": { - "anyOf": [ - { - "$ref": "#/definitions/Text" + "centerRadius": { + "description": "Proportion of the radius of the center white space.\n\n__Default:__ `0.3`", + "type": "number" }, - { - "$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" + "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": { + "performanceMode": { + "default": false, + "description": "Render visual marks with less smooth curves to increase rendering performance. Only supported for `elliptical` `linkStyle` `withinLink` currently.", + "type": "boolean" + }, + "stretchGraphics": { + "description": "Performance rendering option. By default, certain marks ('bar', 'line', 'rect', 'area') are stretched when zooming in/out to improve rendering performance. No marks will be stretched in circular layouts.\n\nWhen this option is set to true, all marks will be stretched when zooming in/out. When this option is set to false, all marks will be rerendered when zooming in/out.", + "type": "boolean" + }, + "stretchGraphicsThreshold": { + "default": 1.5, + "description": "Threshold for stretching graphics. If the graphics are scaled larger than the threshold, then the graphic will be rerendered. If the graphics are scaled smaller than 1/threshold (e.g., 1/2), then the graphic will be rerendered. This is to prevent the graphics from being stretched too much.", + "type": "number" + } + }, + "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" + }, + "mouseEvents": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/MouseEventsDeep" + } + ] + }, + "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" }, - { - "$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" + "type": "array" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "x1": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "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" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "x1e": { - "anyOf": [ - { - "$ref": "#/definitions/X" + "static": { + "description": "Whether to disable [Zooming and Panning](http://gosling-lang.org/docs/user-interaction#zooming-and-panning), __Default:__ `false`.", + "type": "boolean" }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "xAxis": { - "$ref": "#/definitions/AxisPosition", - "description": "not supported" - }, - "xDomain": { - "anyOf": [ - { - "$ref": "#/definitions/DomainInterval" + "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)." }, - { - "$ref": "#/definitions/DomainChrInterval" + "tracks": { + "items": { + "$ref": "#/definitions/Track" + }, + "type": "array" }, - { - "$ref": "#/definitions/DomainChr" + "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" }, - "xOffset": { - "description": "Specify the x offset of views in the unit of pixels", + "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" }, - "xe": { - "anyOf": [ - { - "$ref": "#/definitions/X" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + "measure": { + "description": "Specify which aspect of the `target` will be compared to the `threshold`.", + "enum": [ + "width", + "height" + ], + "type": "string" }, - "y": { - "anyOf": [ - { - "$ref": "#/definitions/Y" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + "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\"" }, - "y1": { - "anyOf": [ - { - "$ref": "#/definitions/Y" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] + "target": { + "description": "Target specifies the object that you want to compare with the threshold.", + "enum": [ + "track", + "mark" + ], + "type": "string" }, - "y1e": { + "threshold": { "anyOf": [ { - "$ref": "#/definitions/Y" + "type": "number" }, { - "$ref": "#/definitions/ChannelValue" + "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" }, - "yOffset": { - "description": "Specify the y offset of views in the unit of pixels", + "transitionPadding": { + "description": "Specify the buffer size (in pixel) of width or height for smooth transition.\n\n__Default__: `0`", "type": "number" - }, - "ye": { - "anyOf": [ - { - "$ref": "#/definitions/Y" - }, - { - "$ref": "#/definitions/ChannelValue" - } - ] - }, - "zoomLimits": { - "$ref": "#/definitions/ZoomLimits" } }, "required": [ - "tracks" + "measure", + "operation", + "target", + "threshold" ], "type": "object" }, @@ -4754,10 +8651,27 @@ "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": [ @@ -4812,13 +8726,31 @@ "backgroundOpacity": { "type": "number" }, - "bazierLink": { - "description": "Specify whether to use bazier curves for the `link` marks.", - "type": "boolean" - }, - "circularLink": { - "description": "Deprecated: draw arc instead of bazier curve?", - "type": "boolean" + "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.", @@ -4832,14 +8764,9 @@ }, "dashed": { "description": "Specify the pattern of dashes and gaps for `rule` marks.", - "items": [ - { - "type": "number" - }, - { - "type": "number" - } - ], + "items": { + "type": "number" + }, "maxItems": 2, "minItems": 2, "type": "array" @@ -4894,12 +8821,42 @@ ], "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": [ @@ -4928,14 +8885,86 @@ "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" @@ -4970,6 +8999,7 @@ "type": "number" }, "id": { + "description": "Assigned to `uid` in a HiGlass view config, used for API and caching.", "type": "string" }, "innerRadius": { @@ -5001,7 +9031,7 @@ "type": "object" }, "spacing": { - "description": "- If `{\"layout\": \"linear\"}`, specify the space between tracks in pixels;\n\n- If `{\"layout\": \"circular\"}`, specify the space between tracks in percentage ranging from 0 to 100.", + "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": { @@ -5014,7 +9044,7 @@ }, "style": { "$ref": "#/definitions/Style", - "description": "Define the [style](http://gosling-lang.org/docs/visual-channel#style-related-properties) of multive views. Will be overriden by the style of children elements (e.g., view, track)." + "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" @@ -5045,12 +9075,27 @@ { "$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" @@ -5060,10 +9105,8 @@ } }, "required": [ - "data", - "height", "template", - "width" + "data" ], "type": "object" }, @@ -5103,16 +9146,20 @@ "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" + "$ref": "#/definitions/FieldType", + "description": "Type of the data field." } }, "required": [ @@ -5134,6 +9181,9 @@ }, { "$ref": "#/definitions/TemplateTrack" + }, + { + "$ref": "#/definitions/DummyTrack" } ] }, @@ -5153,24 +9203,56 @@ } ] }, + "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.", + "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.", + "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.", + "description": "Assign a field name of the start position of genomic intervals. __Default__: `\"start\"`", "type": "string" }, "type": { @@ -5182,15 +9264,13 @@ "type": "string" }, "value": { - "description": "Assign a field name of quantitative values.", + "description": "Assign a field name of quantitative values. __Default__: `\"value\"`", "type": "string" } }, "required": [ "type", - "url", - "column", - "value" + "url" ], "type": "object" }, @@ -5266,7 +9346,14 @@ ] }, "domain": { - "$ref": "#/definitions/ValueExtent", + "anyOf": [ + { + "$ref": "#/definitions/ValueExtent" + }, + { + "$ref": "#/definitions/GenomicDomain" + } + ], "description": "Values of the data" }, "field": { @@ -5323,7 +9410,7 @@ }, "operation": { "$ref": "#/definitions/LogicalOperation", - "description": "A string that pecifies 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\"" + "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.", @@ -5351,20 +9438,12 @@ "type": "object" }, "ZoomLimits": { - "items": [ - { - "type": [ - "number", - "null" - ] - }, - { - "type": [ - "number", - "null" - ] - } - ], + "items": { + "type": [ + "number", + "null" + ] + }, "maxItems": 2, "minItems": 2, "type": "array" diff --git a/docs/user-interaction.mdx b/docs/user-interaction.mdx index baacccc..df261db 100644 --- a/docs/user-interaction.mdx +++ b/docs/user-interaction.mdx @@ -1,5 +1,6 @@ --- title: User Interaction +description: Zooming, panning, brushing, tooltip, mouse interactions --- import {TableWrapper} from '@site/react-components/DocComponments/table' import GoslingSchema from './assets/gosling.schema.json' @@ -168,3 +169,38 @@ Corresponding specification: ] ``` + +## Mouse Interactions +[Try in the editor](https://gosling.js.org/?example=MOUSE_EVENT) + +Mouse events can be enabled in Gosling by defining a `MouseEvents` object in the track definition. + +You can use the [JavaScript API](js-api#subscribe) to subscribe to the mouse-related events, i.e., "mouseOver", "rangeSelect", and "click", to create custom interactions with the visualization. +Refer to [gosling-react-example](https://github.com/gosling-lang/gosling-react-example) to see how mouse events can be used in various use cases. +Here is an example of a track with a range selection enabled that enables selecting a genomic range using the click-and-drag interaction after pressing the Alt key: + + + +```javascript +"tracks": [ + { + ..., + // highlight-start + "mouseEvents": {"mouseOver": true, "rangeSelect": true}, + // highlight-end + // You can also specify the visual properties associated with the mouse events + // highlight-start + "style": { + "mouseOver": {"color": "blue", "opacity": 0.5, "strokeWidth": 0}, + "select": {"color": "red", "opacity": 0.5}, + "brush": {"color": "purple", "stroke": "purple"} + } + // highlight-end + } +] + +``` + +The `MouseEvents` object can have the following properties: + + \ No newline at end of file diff --git a/static/img/doc_images/mouse_interaction.png b/static/img/doc_images/mouse_interaction.png new file mode 100644 index 0000000..9bbae38 Binary files /dev/null and b/static/img/doc_images/mouse_interaction.png differ