@genome-spy/core 0.15.0 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/LICENSE +7 -7
  2. package/README.md +16 -0
  3. package/dist/index.js +42 -42
  4. package/dist/{genome-spy-schema.json → schema.json} +1824 -652
  5. package/dist/style.css +1 -1
  6. package/package.json +9 -7
  7. package/src/data/sources/dataUtils.js +50 -3
  8. package/src/data/sources/dynamicCallbackSource.js +2 -1
  9. package/src/data/sources/dynamicSource.js +2 -1
  10. package/src/data/sources/inlineSource.js +3 -5
  11. package/src/data/sources/namedSource.js +3 -7
  12. package/src/data/sources/urlSource.js +1 -1
  13. package/src/data/transforms/aggregate.js +1 -0
  14. package/src/data/transforms/flattenDelimited.js +6 -0
  15. package/src/data/transforms/regexFold.js +1 -1
  16. package/src/data/transforms/stack.js +3 -3
  17. package/src/embedApi.d.ts +59 -0
  18. package/src/encoder/accessor.js +6 -6
  19. package/src/encoder/encoder.js +47 -22
  20. package/src/genome/scaleIndex.d.ts +38 -0
  21. package/src/genome/scaleIndex.js +18 -52
  22. package/src/genome/scaleLocus.d.ts +11 -0
  23. package/src/genome/scaleLocus.js +12 -16
  24. package/src/genomeSpy.js +1 -1
  25. package/src/gl/dataToVertices.js +14 -6
  26. package/src/gl/includes/fp64-utils.js +10 -0
  27. package/src/gl/includes/scales.glsl +2 -0
  28. package/src/gl/webGLHelper.js +3 -1
  29. package/src/index.js +6 -28
  30. package/src/marks/link.js +1 -12
  31. package/src/marks/mark.js +27 -5
  32. package/src/marks/markUtils.js +41 -25
  33. package/src/marks/pointMark.js +5 -2
  34. package/src/marks/rule.js +11 -2
  35. package/src/scale/glslScaleGenerator.js +16 -29
  36. package/src/scale/scale.js +10 -0
  37. package/src/scale/ticks.js +11 -6
  38. package/src/spec/channel.d.ts +343 -43
  39. package/src/spec/data.d.ts +14 -3
  40. package/src/spec/root.d.ts +3 -8
  41. package/src/spec/scale.d.ts +18 -1
  42. package/src/spec/view.d.ts +12 -6
  43. package/src/tooltip/refseqGeneTooltipHandler.js +1 -0
  44. package/src/types/filetypes.d.ts +10 -0
  45. package/src/types/internmap.d.ts +22 -0
  46. package/src/types/vega-loader.d.ts +1 -0
  47. package/src/utils/addBaseUrl.js +19 -0
  48. package/src/utils/addBaseUrl.test.js +21 -0
  49. package/src/utils/arrayUtils.js +12 -6
  50. package/src/utils/cloner.js +5 -3
  51. package/src/utils/concatIterables.js +2 -2
  52. package/src/utils/domainArray.js +0 -8
  53. package/src/utils/propertyCoalescer.js +9 -4
  54. package/src/view/axisResolution.js +11 -6
  55. package/src/view/axisView.js +8 -5
  56. package/src/view/decoratorView.js +6 -3
  57. package/src/view/facetView.js +3 -0
  58. package/src/view/flowBuilder.js +2 -1
  59. package/src/view/renderingContext/svgViewRenderingContext.js +7 -3
  60. package/src/view/scaleResolution.js +52 -32
  61. package/src/view/testUtils.js +7 -4
  62. package/src/view/unitView.js +15 -9
  63. package/src/view/view.js +10 -8
  64. package/src/view/viewFactory.js +2 -0
  65. package/src/view/viewUtils.js +4 -5
  66. package/src/options.d.ts +0 -15
  67. package/src/utils/fisheye.js +0 -60
  68. package/src/utils/html.js +0 -23
  69. package/src/utils/html.test.js +0 -13
  70. package/src/view/channel.js +0 -5
@@ -1,5 +1,5 @@
1
1
  {
2
- "$ref": "#/definitions/ViewSpec",
2
+ "$ref": "#/definitions/RootSpec",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "definitions": {
5
5
  "AggregateParams": {
@@ -244,9 +244,6 @@
244
244
  {
245
245
  "$ref": "#/definitions/PositionalChannel"
246
246
  },
247
- {
248
- "$ref": "#/definitions/SecondaryPositionalChannel"
249
- },
250
247
  {
251
248
  "const": "color",
252
249
  "type": "string"
@@ -287,14 +284,6 @@
287
284
  "const": "text",
288
285
  "type": "string"
289
286
  },
290
- {
291
- "const": "size2",
292
- "type": "string"
293
- },
294
- {
295
- "const": "color2",
296
- "type": "string"
297
- },
298
287
  {
299
288
  "const": "angle",
300
289
  "type": "string"
@@ -329,28 +318,6 @@
329
318
  }
330
319
  ]
331
320
  },
332
- "ChannelDef": {
333
- "anyOf": [
334
- {
335
- "$ref": "#/definitions/FieldDef"
336
- },
337
- {
338
- "$ref": "#/definitions/DatumDef"
339
- },
340
- {
341
- "$ref": "#/definitions/ValueDef"
342
- },
343
- {
344
- "$ref": "#/definitions/ExprDef"
345
- },
346
- {
347
- "$ref": "#/definitions/ChromPosDef"
348
- },
349
- {
350
- "$ref": "#/definitions/FacetFieldDef"
351
- }
352
- ]
353
- },
354
321
  "ChromPosDef": {
355
322
  "additionalProperties": false,
356
323
  "properties": {
@@ -362,23 +329,19 @@
362
329
  {
363
330
  "type": "null"
364
331
  }
365
- ]
332
+ ],
333
+ "description": "An object defining properties of axis's gridlines, ticks and labels. If `null`, the axis for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [axis properties](https://vega.github.io/vega-lite/docs/axis.html) are applied.\n\n__See also:__ [`axis`](https://vega.github.io/vega-lite/docs/axis.html) documentation."
366
334
  },
367
335
  "band": {
368
- "description": "Offset within a band of a band scale, [0, 1]\n\nTODO: rename to bandPosition: https://github.com/vega/vega-lite/pull/7190",
336
+ "description": "Relative position on band scale. For example, the marks will be positioned at the beginning of the band if set to `0`, and at the middle of the band if set to `0.5`.",
337
+ "maximum": 1,
338
+ "minimum": 0,
369
339
  "type": "number"
370
340
  },
371
341
  "chrom": {
372
342
  "$ref": "#/definitions/FieldName",
373
343
  "description": "The field having the chromosome or contig."
374
344
  },
375
- "format": {
376
- "type": "string"
377
- },
378
- "fp64": {
379
- "description": "Use emulated 64 bit floating points to increase precision of scales computed on the GPU. By default, 32 bit floats are used.",
380
- "type": "boolean"
381
- },
382
345
  "offset": {
383
346
  "description": "An offset or offsets that allow for adjusting the numbering base. The offset is subtracted from the positions.\n\nGenomeSpy uses internally zero-based indexing with half-open intervals. UCSC-based formats (BED, etc.) generally use this scheme. However, for example, VCF files use one-based indexing and must be adjusted by setting the offset to `1`.\n\n**Default:** `0`",
384
347
  "type": "number"
@@ -389,12 +352,21 @@
389
352
  },
390
353
  "resolutionChannel": {
391
354
  "$ref": "#/definitions/Channel",
392
- "description": "Use an alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
355
+ "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
393
356
  },
394
357
  "scale": {
395
- "$ref": "#/definitions/Scale"
358
+ "anyOf": [
359
+ {
360
+ "$ref": "#/definitions/Scale"
361
+ },
362
+ {
363
+ "type": "null"
364
+ }
365
+ ],
366
+ "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
396
367
  },
397
368
  "title": {
369
+ "description": "A title for the field. If `null`, the title will be removed.",
398
370
  "type": [
399
371
  "string",
400
372
  "null"
@@ -453,6 +425,9 @@
453
425
  ],
454
426
  "type": "object"
455
427
  },
428
+ "ColorDef<string>": {
429
+ "$ref": "#/definitions/MarkPropDef%3Cstring%2C(string%7Cnull)%3E"
430
+ },
456
431
  "CompareParams": {
457
432
  "additionalProperties": false,
458
433
  "properties": {
@@ -635,6 +610,22 @@
635
610
  ],
636
611
  "type": "object"
637
612
  },
613
+ "Contig": {
614
+ "additionalProperties": false,
615
+ "properties": {
616
+ "name": {
617
+ "type": "string"
618
+ },
619
+ "size": {
620
+ "type": "number"
621
+ }
622
+ },
623
+ "required": [
624
+ "name",
625
+ "size"
626
+ ],
627
+ "type": "object"
628
+ },
638
629
  "CoverageParams": {
639
630
  "additionalProperties": false,
640
631
  "properties": {
@@ -728,6 +719,9 @@
728
719
  },
729
720
  {
730
721
  "$ref": "#/definitions/JsonDataFormat"
722
+ },
723
+ {
724
+ "$ref": "#/definitions/OtherDataFormat"
731
725
  }
732
726
  ]
733
727
  },
@@ -750,57 +744,6 @@
750
744
  }
751
745
  ]
752
746
  },
753
- "DatumDef": {
754
- "additionalProperties": false,
755
- "properties": {
756
- "axis": {
757
- "anyOf": [
758
- {
759
- "$ref": "#/definitions/Axis"
760
- },
761
- {
762
- "type": "null"
763
- }
764
- ]
765
- },
766
- "band": {
767
- "description": "Offset within a band of a band scale, [0, 1]\n\nTODO: rename to bandPosition: https://github.com/vega/vega-lite/pull/7190",
768
- "type": "number"
769
- },
770
- "datum": {
771
- "$ref": "#/definitions/Scalar",
772
- "description": "A constant value on the data domain"
773
- },
774
- "format": {
775
- "type": "string"
776
- },
777
- "fp64": {
778
- "description": "Use emulated 64 bit floating points to increase precision of scales computed on the GPU. By default, 32 bit floats are used.",
779
- "type": "boolean"
780
- },
781
- "resolutionChannel": {
782
- "$ref": "#/definitions/Channel",
783
- "description": "Use an alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
784
- },
785
- "scale": {
786
- "$ref": "#/definitions/Scale"
787
- },
788
- "title": {
789
- "type": [
790
- "string",
791
- "null"
792
- ]
793
- },
794
- "type": {
795
- "type": "string"
796
- }
797
- },
798
- "required": [
799
- "datum",
800
- "type"
801
- ],
802
- "type": "object"
803
- },
804
747
  "DsvDataFormat": {
805
748
  "additionalProperties": false,
806
749
  "properties": {
@@ -879,7 +822,7 @@
879
822
  "description": "DynamicOpacity specifies a zoom-dependent behavior for view opacity. The opacity is interpolated between the specified stops.",
880
823
  "properties": {
881
824
  "channel": {
882
- "$ref": "#/definitions/PositionalChannel"
825
+ "$ref": "#/definitions/PrimaryPositionalChannel"
883
826
  },
884
827
  "unitsPerPixel": {
885
828
  "description": "Stops expressed as units (base pairs, for example) per pixel.",
@@ -903,505 +846,114 @@
903
846
  "type": "object"
904
847
  },
905
848
  "Encoding": {
906
- "additionalProperties": {
907
- "anyOf": [
908
- {
909
- "$ref": "#/definitions/ChannelDef"
910
- },
911
- {
912
- "type": "null"
913
- }
914
- ]
915
- },
849
+ "additionalProperties": false,
916
850
  "properties": {
917
851
  "angle": {
918
- "anyOf": [
919
- {
920
- "$ref": "#/definitions/ChannelDef"
921
- },
922
- {
923
- "type": "null"
924
- }
925
- ]
852
+ "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E",
853
+ "description": "Rotation angle of point and text marks."
926
854
  },
927
855
  "color": {
928
- "anyOf": [
929
- {
930
- "$ref": "#/definitions/ChannelDef"
931
- },
932
- {
933
- "type": "null"
934
- }
935
- ]
936
- },
937
- "color2": {
938
- "anyOf": [
939
- {
940
- "$ref": "#/definitions/ChannelDef"
941
- },
942
- {
943
- "type": "null"
944
- }
945
- ]
856
+ "$ref": "#/definitions/ColorDef%3Cstring%3E",
857
+ "description": "Color of the marks – either fill or stroke color based on the `filled` property of mark definition.\n\n_Note:_ 1) For fine-grained control over both fill and stroke colors of the marks, please use the `fill` and `stroke` channels. The `fill` or `stroke` encodings have higher precedence than `color`, thus may override the `color` encoding if conflicting encodings are specified. 2) See the scale documentation for more information about customizing [color scheme](https://vega.github.io/vega-lite/docs/scale.html#scheme)."
946
858
  },
947
859
  "dx": {
948
- "anyOf": [
949
- {
950
- "$ref": "#/definitions/ChannelDef"
951
- },
952
- {
953
- "type": "null"
954
- }
955
- ]
860
+ "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E"
956
861
  },
957
862
  "dy": {
958
- "anyOf": [
959
- {
960
- "$ref": "#/definitions/ChannelDef"
961
- },
962
- {
963
- "type": "null"
964
- }
965
- ]
863
+ "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E"
966
864
  },
967
865
  "facetIndex": {
968
- "anyOf": [
969
- {
970
- "$ref": "#/definitions/ChannelDef"
971
- },
972
- {
973
- "type": "null"
974
- }
975
- ]
866
+ "$ref": "#/definitions/FieldDefWithoutScale%3Cstring%3E",
867
+ "description": "For internal use"
976
868
  },
977
869
  "fill": {
978
- "anyOf": [
979
- {
980
- "$ref": "#/definitions/ChannelDef"
981
- },
982
- {
983
- "type": "null"
984
- }
985
- ]
870
+ "$ref": "#/definitions/ColorDef%3Cstring%3E",
871
+ "description": "Fill color of the marks.\n\n_Note:_ The `fill` encoding has higher precedence than `color`, thus may override the `color` encoding if conflicting encodings are specified."
986
872
  },
987
873
  "fillOpacity": {
988
- "anyOf": [
989
- {
990
- "$ref": "#/definitions/ChannelDef"
991
- },
992
- {
993
- "type": "null"
994
- }
995
- ]
874
+ "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E",
875
+ "description": "Fill opacity of the marks."
996
876
  },
997
877
  "opacity": {
998
- "anyOf": [
999
- {
1000
- "$ref": "#/definitions/ChannelDef"
1001
- },
1002
- {
1003
- "type": "null"
1004
- }
1005
- ]
878
+ "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E",
879
+ "description": "Opacity of the marks."
1006
880
  },
1007
881
  "sample": {
1008
- "anyOf": [
1009
- {
1010
- "$ref": "#/definitions/ChannelDef"
1011
- },
1012
- {
1013
- "type": "null"
1014
- }
1015
- ]
882
+ "$ref": "#/definitions/FieldDefWithoutScale%3Cstring%3E",
883
+ "description": "Facet identifier for interactive filtering, sorting, and grouping in the App."
1016
884
  },
1017
885
  "search": {
1018
- "anyOf": [
1019
- {
1020
- "$ref": "#/definitions/ChannelDef"
1021
- },
1022
- {
1023
- "type": "null"
1024
- }
1025
- ]
886
+ "$ref": "#/definitions/FieldDefWithoutScale%3Cstring%3E"
1026
887
  },
1027
888
  "semanticScore": {
1028
- "anyOf": [
1029
- {
1030
- "$ref": "#/definitions/ChannelDef"
1031
- },
1032
- {
1033
- "type": "null"
1034
- }
1035
- ]
889
+ "$ref": "#/definitions/FieldDefWithoutScale%3Cstring%3E"
1036
890
  },
1037
891
  "shape": {
1038
- "anyOf": [
1039
- {
1040
- "$ref": "#/definitions/ChannelDef"
1041
- },
1042
- {
1043
- "type": "null"
1044
- }
1045
- ]
892
+ "$ref": "#/definitions/ShapeDef%3Cstring%3E",
893
+ "description": "Shape of the mark.\n\nFor `point` marks the supported values include:\n- plotting shapes: `\"circle\"`, `\"square\"`, `\"cross\"`, `\"diamond\"`, `\"triangle-up\"`, `\"triangle-down\"`, `\"triangle-right\"`, or `\"triangle-left\"`.\n- centered directional shape `\"triangle\"`"
1046
894
  },
1047
895
  "size": {
1048
- "anyOf": [
1049
- {
1050
- "$ref": "#/definitions/ChannelDef"
1051
- },
1052
- {
1053
- "type": "null"
1054
- }
1055
- ]
1056
- },
1057
- "size2": {
1058
- "anyOf": [
1059
- {
1060
- "$ref": "#/definitions/ChannelDef"
1061
- },
1062
- {
1063
- "type": "null"
1064
- }
1065
- ]
896
+ "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E",
897
+ "description": "Size of the mark.\n- For `\"point\"` – the symbol size, or pixel area of the mark.\n- For `\"text\"` – the text's font size."
1066
898
  },
1067
899
  "stroke": {
1068
- "anyOf": [
1069
- {
1070
- "$ref": "#/definitions/ChannelDef"
1071
- },
1072
- {
1073
- "type": "null"
1074
- }
1075
- ]
900
+ "$ref": "#/definitions/ColorDef%3Cstring%3E",
901
+ "description": "Stroke color of the marks.\n\n_Note:_ The `stroke` encoding has higher precedence than `color`, thus may override the `color` encoding if conflicting encodings are specified."
1076
902
  },
1077
903
  "strokeOpacity": {
1078
- "anyOf": [
1079
- {
1080
- "$ref": "#/definitions/ChannelDef"
1081
- },
1082
- {
1083
- "type": "null"
1084
- }
1085
- ]
904
+ "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E",
905
+ "description": "Stroke opacity of the marks."
1086
906
  },
1087
907
  "strokeWidth": {
1088
- "anyOf": [
1089
- {
1090
- "$ref": "#/definitions/ChannelDef"
1091
- },
1092
- {
1093
- "type": "null"
1094
- }
1095
- ]
908
+ "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E",
909
+ "description": "Stroke width of the marks."
1096
910
  },
1097
911
  "text": {
1098
- "anyOf": [
1099
- {
1100
- "$ref": "#/definitions/ChannelDef"
1101
- },
1102
- {
1103
- "type": "null"
1104
- }
1105
- ]
912
+ "$ref": "#/definitions/TextDef%3Cstring%3E",
913
+ "description": "Text of the `text` mark."
1106
914
  },
1107
915
  "uniqueId": {
1108
- "anyOf": [
1109
- {
1110
- "$ref": "#/definitions/ChannelDef"
1111
- },
1112
- {
1113
- "type": "null"
1114
- }
1115
- ]
1116
- }
1117
- },
1118
- "type": "object"
1119
- },
1120
- "ExprDef": {
1121
- "additionalProperties": false,
1122
- "properties": {
1123
- "axis": {
1124
- "anyOf": [
1125
- {
1126
- "$ref": "#/definitions/Axis"
1127
- },
1128
- {
1129
- "type": "null"
1130
- }
1131
- ]
1132
- },
1133
- "band": {
1134
- "description": "Offset within a band of a band scale, [0, 1]\n\nTODO: rename to bandPosition: https://github.com/vega/vega-lite/pull/7190",
1135
- "type": "number"
1136
- },
1137
- "expr": {
1138
- "description": "An expression. Properties of the data can be accessed through the `datum` object.",
1139
- "type": "string"
1140
- },
1141
- "format": {
1142
- "type": "string"
1143
- },
1144
- "fp64": {
1145
- "description": "Use emulated 64 bit floating points to increase precision of scales computed on the GPU. By default, 32 bit floats are used.",
1146
- "type": "boolean"
1147
- },
1148
- "resolutionChannel": {
1149
- "$ref": "#/definitions/Channel",
1150
- "description": "Use an alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
1151
- },
1152
- "scale": {
1153
- "$ref": "#/definitions/Scale"
1154
- },
1155
- "title": {
1156
- "type": [
1157
- "string",
1158
- "null"
1159
- ]
1160
- },
1161
- "type": {
1162
- "type": "string"
1163
- }
1164
- },
1165
- "required": [
1166
- "expr",
1167
- "type"
1168
- ],
1169
- "type": "object"
1170
- },
1171
- "FacetFieldDef": {
1172
- "additionalProperties": false,
1173
- "properties": {
1174
- "field": {
1175
- "$ref": "#/definitions/FieldName"
1176
- },
1177
- "spacing": {
1178
- "type": "number"
1179
- },
1180
- "title": {
1181
- "type": [
1182
- "string",
1183
- "null"
1184
- ]
1185
- }
1186
- },
1187
- "required": [
1188
- "field"
1189
- ],
1190
- "type": "object"
1191
- },
1192
- "FacetMapping": {
1193
- "additionalProperties": false,
1194
- "properties": {
1195
- "column": {
1196
- "$ref": "#/definitions/FacetFieldDef"
1197
- },
1198
- "row": {
1199
- "$ref": "#/definitions/FacetFieldDef"
1200
- }
1201
- },
1202
- "type": "object"
1203
- },
1204
- "FacetSpec": {
1205
- "additionalProperties": false,
1206
- "properties": {
1207
- "baseUrl": {
1208
- "type": "string"
1209
- },
1210
- "columns": {
1211
- "type": "number"
1212
- },
1213
- "configurableVisibility": {
1214
- "description": "Is the visibility configurable interactively from the App. Configurability requires that the view has an explicitly specified name that is *unique* in within the view specification.\n\n**Default:** `false` for children of `layer`, `true` for others.",
1215
- "type": "boolean"
1216
- },
1217
- "data": {
1218
- "$ref": "#/definitions/Data"
1219
- },
1220
- "description": {
1221
- "anyOf": [
1222
- {
1223
- "type": "string"
1224
- },
1225
- {
1226
- "items": {
1227
- "type": "string"
1228
- },
1229
- "type": "array"
1230
- }
1231
- ],
1232
- "description": "A description of the view. Multiple lines can be provided as an array."
1233
- },
1234
- "encoding": {
1235
- "$ref": "#/definitions/Encoding"
1236
- },
1237
- "facet": {
1238
- "anyOf": [
1239
- {
1240
- "$ref": "#/definitions/FacetFieldDef"
1241
- },
1242
- {
1243
- "$ref": "#/definitions/FacetMapping"
1244
- }
1245
- ]
1246
- },
1247
- "height": {
1248
- "anyOf": [
1249
- {
1250
- "$ref": "#/definitions/SizeDef"
1251
- },
1252
- {
1253
- "type": "number"
1254
- },
1255
- {
1256
- "$ref": "#/definitions/Step"
1257
- },
1258
- {
1259
- "const": "container",
1260
- "type": "string"
1261
- }
1262
- ]
916
+ "$ref": "#/definitions/FieldDefWithoutScale%3Cstring%3E",
917
+ "description": "For internal use"
1263
918
  },
1264
- "name": {
1265
- "type": "string"
1266
- },
1267
- "opacity": {
1268
- "$ref": "#/definitions/ViewOpacityDef",
1269
- "description": "Opacity of the view and all its children.\n\n**Default:* `1.0`"
1270
- },
1271
- "padding": {
1272
- "$ref": "#/definitions/PaddingConfig",
1273
- "description": "Padding in pixels.\n\n**Default:* `0`"
1274
- },
1275
- "resolve": {
1276
- "additionalProperties": false,
1277
- "properties": {
1278
- "axis": {
1279
- "additionalProperties": {
1280
- "$ref": "#/definitions/ResolutionBehavior"
1281
- },
1282
- "properties": {
1283
- "default": {
1284
- "$ref": "#/definitions/ResolutionBehavior"
1285
- }
1286
- },
1287
- "type": "object"
1288
- },
1289
- "scale": {
1290
- "additionalProperties": {
1291
- "$ref": "#/definitions/ResolutionBehavior"
1292
- },
1293
- "properties": {
1294
- "default": {
1295
- "$ref": "#/definitions/ResolutionBehavior"
1296
- }
1297
- },
1298
- "type": "object"
1299
- }
1300
- },
1301
- "type": "object"
1302
- },
1303
- "spacing": {
1304
- "type": "number"
1305
- },
1306
- "spec": {
1307
- "anyOf": [
1308
- {
1309
- "$ref": "#/definitions/LayerSpec"
1310
- },
1311
- {
1312
- "$ref": "#/definitions/UnitSpec"
1313
- }
1314
- ]
1315
- },
1316
- "title": {
1317
- "type": "string"
919
+ "x": {
920
+ "$ref": "#/definitions/PositionDef%3Cstring%3E",
921
+ "description": "X coordinates of the marks.\n\nThe `value` of this channel can be a number between zero and one."
1318
922
  },
1319
- "transform": {
1320
- "items": {
1321
- "$ref": "#/definitions/TransformParams"
1322
- },
1323
- "type": "array"
923
+ "x2": {
924
+ "$ref": "#/definitions/Position2Def%3Cstring%3E",
925
+ "description": "X2 coordinates of the marks.\n\nThe `value` of this channel can be a number between zero and one."
1324
926
  },
1325
- "visible": {
1326
- "description": "Visibility of the view. An invisible view is removed from the layout and not rendered.\n\n**Default:** `true`",
1327
- "type": "boolean"
927
+ "y": {
928
+ "$ref": "#/definitions/PositionDef%3Cstring%3E",
929
+ "description": "Y coordinates of the marks.\n\nThe `value` of this channel can be a number between zero and one."
1328
930
  },
1329
- "width": {
1330
- "anyOf": [
1331
- {
1332
- "$ref": "#/definitions/SizeDef"
1333
- },
1334
- {
1335
- "type": "number"
1336
- },
1337
- {
1338
- "$ref": "#/definitions/Step"
1339
- },
1340
- {
1341
- "const": "container",
1342
- "type": "string"
1343
- }
1344
- ]
931
+ "y2": {
932
+ "$ref": "#/definitions/Position2Def%3Cstring%3E",
933
+ "description": "Y2 coordinates of the marks.\n\nThe `value` of this channel can be a number between zero and one."
1345
934
  }
1346
935
  },
1347
- "required": [
1348
- "facet",
1349
- "spec"
1350
- ],
1351
936
  "type": "object"
1352
937
  },
1353
938
  "Field": {
1354
939
  "description": "The name of the field or a JavaScript expression for accessing nested properties. Dots and brackets in the field name must be escaped.",
1355
940
  "type": "string"
1356
941
  },
1357
- "FieldDef": {
942
+ "FieldDefWithoutScale<string>": {
1358
943
  "additionalProperties": false,
1359
944
  "properties": {
1360
- "axis": {
1361
- "anyOf": [
1362
- {
1363
- "$ref": "#/definitions/Axis"
1364
- },
1365
- {
1366
- "type": "null"
1367
- }
1368
- ]
1369
- },
1370
- "band": {
1371
- "description": "Offset within a band of a band scale, [0, 1]\n\nTODO: rename to bandPosition: https://github.com/vega/vega-lite/pull/7190",
1372
- "type": "number"
1373
- },
1374
945
  "field": {
1375
- "$ref": "#/definitions/FieldName"
1376
- },
1377
- "format": {
946
+ "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
1378
947
  "type": "string"
1379
948
  },
1380
- "fp64": {
1381
- "description": "Use emulated 64 bit floating points to increase precision of scales computed on the GPU. By default, 32 bit floats are used.",
1382
- "type": "boolean"
1383
- },
1384
- "resolutionChannel": {
1385
- "$ref": "#/definitions/Channel",
1386
- "description": "Use an alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
1387
- },
1388
- "scale": {
1389
- "$ref": "#/definitions/Scale"
1390
- },
1391
949
  "title": {
950
+ "description": "A title for the field. If `null`, the title will be removed.",
1392
951
  "type": [
1393
952
  "string",
1394
953
  "null"
1395
954
  ]
1396
- },
1397
- "type": {
1398
- "type": "string"
1399
955
  }
1400
956
  },
1401
- "required": [
1402
- "field",
1403
- "type"
1404
- ],
1405
957
  "type": "object"
1406
958
  },
1407
959
  "FieldName": {
@@ -1656,21 +1208,45 @@
1656
1208
  "Generator": {
1657
1209
  "$ref": "#/definitions/SequenceGenerator"
1658
1210
  },
1659
- "HConcatSpec": {
1211
+ "GenomeConfig": {
1660
1212
  "additionalProperties": false,
1661
1213
  "properties": {
1662
1214
  "baseUrl": {
1215
+ "description": "Base url of data files: chromsizes, cytobands, and gene annotations.\n\n**Default:** `\"https://genomespy.app/data/genomes/\"`",
1663
1216
  "type": "string"
1664
1217
  },
1665
- "configurableVisibility": {
1666
- "description": "Is the visibility configurable interactively from the App. Configurability requires that the view has an explicitly specified name that is *unique* in within the view specification.\n\n**Default:** `false` for children of `layer`, `true` for others.",
1667
- "type": "boolean"
1668
- },
1669
- "data": {
1670
- "$ref": "#/definitions/Data"
1218
+ "contigs": {
1219
+ "description": "As an alternative for chromSizes, the contigs can be provided inline.",
1220
+ "items": {
1221
+ "$ref": "#/definitions/Contig"
1222
+ },
1223
+ "type": "array"
1671
1224
  },
1672
- "description": {
1673
- "anyOf": [
1225
+ "name": {
1226
+ "description": "Name of the genome assembly, e.g., `hg19` or `hg38`.",
1227
+ "type": "string"
1228
+ }
1229
+ },
1230
+ "required": [
1231
+ "name"
1232
+ ],
1233
+ "type": "object"
1234
+ },
1235
+ "HConcatSpec": {
1236
+ "additionalProperties": false,
1237
+ "properties": {
1238
+ "baseUrl": {
1239
+ "type": "string"
1240
+ },
1241
+ "configurableVisibility": {
1242
+ "description": "Is the visibility configurable interactively from the App. Configurability requires that the view has an explicitly specified name that is *unique* in within the view specification.\n\n**Default:** `false` for children of `layer`, `true` for others.",
1243
+ "type": "boolean"
1244
+ },
1245
+ "data": {
1246
+ "$ref": "#/definitions/Data"
1247
+ },
1248
+ "description": {
1249
+ "anyOf": [
1674
1250
  {
1675
1251
  "type": "string"
1676
1252
  },
@@ -2426,6 +2002,248 @@
2426
2002
  ],
2427
2003
  "type": "object"
2428
2004
  },
2005
+ "MarkPropDatumDef<Type>": {
2006
+ "additionalProperties": false,
2007
+ "properties": {
2008
+ "datum": {
2009
+ "$ref": "#/definitions/Scalar",
2010
+ "description": "A constant value in data domain."
2011
+ },
2012
+ "resolutionChannel": {
2013
+ "$ref": "#/definitions/Channel",
2014
+ "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
2015
+ },
2016
+ "scale": {
2017
+ "anyOf": [
2018
+ {
2019
+ "$ref": "#/definitions/Scale"
2020
+ },
2021
+ {
2022
+ "type": "null"
2023
+ }
2024
+ ],
2025
+ "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2026
+ },
2027
+ "title": {
2028
+ "description": "A title for the field. If `null`, the title will be removed.",
2029
+ "type": [
2030
+ "string",
2031
+ "null"
2032
+ ]
2033
+ },
2034
+ "type": {
2035
+ "$ref": "#/definitions/Type"
2036
+ }
2037
+ },
2038
+ "required": [
2039
+ "type"
2040
+ ],
2041
+ "type": "object"
2042
+ },
2043
+ "MarkPropDatumDef<TypeForShape>": {
2044
+ "additionalProperties": false,
2045
+ "properties": {
2046
+ "datum": {
2047
+ "$ref": "#/definitions/Scalar",
2048
+ "description": "A constant value in data domain."
2049
+ },
2050
+ "resolutionChannel": {
2051
+ "$ref": "#/definitions/Channel",
2052
+ "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
2053
+ },
2054
+ "scale": {
2055
+ "anyOf": [
2056
+ {
2057
+ "$ref": "#/definitions/Scale"
2058
+ },
2059
+ {
2060
+ "type": "null"
2061
+ }
2062
+ ],
2063
+ "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2064
+ },
2065
+ "title": {
2066
+ "description": "A title for the field. If `null`, the title will be removed.",
2067
+ "type": [
2068
+ "string",
2069
+ "null"
2070
+ ]
2071
+ },
2072
+ "type": {
2073
+ "$ref": "#/definitions/TypeForShape"
2074
+ }
2075
+ },
2076
+ "required": [
2077
+ "type"
2078
+ ],
2079
+ "type": "object"
2080
+ },
2081
+ "MarkPropDef<string,(string|null),TypeForShape>": {
2082
+ "anyOf": [
2083
+ {
2084
+ "$ref": "#/definitions/MarkPropFieldOrDatumOrExprDef%3Cstring%2CTypeForShape%3E"
2085
+ },
2086
+ {
2087
+ "$ref": "#/definitions/ValueDef%3C(string%7Cnull)%3E"
2088
+ }
2089
+ ]
2090
+ },
2091
+ "MarkPropDef<string,(string|null)>": {
2092
+ "anyOf": [
2093
+ {
2094
+ "$ref": "#/definitions/MarkPropFieldOrDatumOrExprDef%3Cstring%2CType%3E"
2095
+ },
2096
+ {
2097
+ "$ref": "#/definitions/ValueDef%3C(string%7Cnull)%3E"
2098
+ }
2099
+ ]
2100
+ },
2101
+ "MarkPropDef<string,number>": {
2102
+ "anyOf": [
2103
+ {
2104
+ "$ref": "#/definitions/MarkPropFieldOrDatumOrExprDef%3Cstring%2CType%3E"
2105
+ },
2106
+ {
2107
+ "$ref": "#/definitions/ValueDef%3Cnumber%3E"
2108
+ }
2109
+ ]
2110
+ },
2111
+ "MarkPropExprDef": {
2112
+ "additionalProperties": false,
2113
+ "properties": {
2114
+ "expr": {
2115
+ "description": "An expression. Properties of the data can be accessed through the `datum` object.",
2116
+ "type": "string"
2117
+ },
2118
+ "resolutionChannel": {
2119
+ "$ref": "#/definitions/Channel",
2120
+ "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
2121
+ },
2122
+ "scale": {
2123
+ "anyOf": [
2124
+ {
2125
+ "$ref": "#/definitions/Scale"
2126
+ },
2127
+ {
2128
+ "type": "null"
2129
+ }
2130
+ ],
2131
+ "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2132
+ },
2133
+ "type": {
2134
+ "$ref": "#/definitions/Type"
2135
+ }
2136
+ },
2137
+ "required": [
2138
+ "expr",
2139
+ "type"
2140
+ ],
2141
+ "type": "object"
2142
+ },
2143
+ "MarkPropFieldDef<string,Type>": {
2144
+ "additionalProperties": false,
2145
+ "description": "Field definition of a mark property, which can contain a legend.",
2146
+ "properties": {
2147
+ "field": {
2148
+ "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
2149
+ "type": "string"
2150
+ },
2151
+ "resolutionChannel": {
2152
+ "$ref": "#/definitions/Channel",
2153
+ "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
2154
+ },
2155
+ "scale": {
2156
+ "anyOf": [
2157
+ {
2158
+ "$ref": "#/definitions/Scale"
2159
+ },
2160
+ {
2161
+ "type": "null"
2162
+ }
2163
+ ],
2164
+ "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2165
+ },
2166
+ "title": {
2167
+ "description": "A title for the field. If `null`, the title will be removed.",
2168
+ "type": [
2169
+ "string",
2170
+ "null"
2171
+ ]
2172
+ },
2173
+ "type": {
2174
+ "$ref": "#/definitions/Type"
2175
+ }
2176
+ },
2177
+ "required": [
2178
+ "type"
2179
+ ],
2180
+ "type": "object"
2181
+ },
2182
+ "MarkPropFieldDef<string,TypeForShape>": {
2183
+ "additionalProperties": false,
2184
+ "description": "Field definition of a mark property, which can contain a legend.",
2185
+ "properties": {
2186
+ "field": {
2187
+ "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
2188
+ "type": "string"
2189
+ },
2190
+ "resolutionChannel": {
2191
+ "$ref": "#/definitions/Channel",
2192
+ "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
2193
+ },
2194
+ "scale": {
2195
+ "anyOf": [
2196
+ {
2197
+ "$ref": "#/definitions/Scale"
2198
+ },
2199
+ {
2200
+ "type": "null"
2201
+ }
2202
+ ],
2203
+ "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2204
+ },
2205
+ "title": {
2206
+ "description": "A title for the field. If `null`, the title will be removed.",
2207
+ "type": [
2208
+ "string",
2209
+ "null"
2210
+ ]
2211
+ },
2212
+ "type": {
2213
+ "$ref": "#/definitions/TypeForShape"
2214
+ }
2215
+ },
2216
+ "required": [
2217
+ "type"
2218
+ ],
2219
+ "type": "object"
2220
+ },
2221
+ "MarkPropFieldOrDatumOrExprDef<string,Type>": {
2222
+ "anyOf": [
2223
+ {
2224
+ "$ref": "#/definitions/MarkPropFieldDef%3Cstring%2CType%3E"
2225
+ },
2226
+ {
2227
+ "$ref": "#/definitions/MarkPropDatumDef%3CType%3E"
2228
+ },
2229
+ {
2230
+ "$ref": "#/definitions/MarkPropExprDef"
2231
+ }
2232
+ ]
2233
+ },
2234
+ "MarkPropFieldOrDatumOrExprDef<string,TypeForShape>": {
2235
+ "anyOf": [
2236
+ {
2237
+ "$ref": "#/definitions/MarkPropFieldDef%3Cstring%2CTypeForShape%3E"
2238
+ },
2239
+ {
2240
+ "$ref": "#/definitions/MarkPropDatumDef%3CTypeForShape%3E"
2241
+ },
2242
+ {
2243
+ "$ref": "#/definitions/MarkPropExprDef"
2244
+ }
2245
+ ]
2246
+ },
2429
2247
  "MarkType": {
2430
2248
  "enum": [
2431
2249
  "rect",
@@ -2499,6 +2317,25 @@
2499
2317
  },
2500
2318
  "type": "array"
2501
2319
  },
2320
+ "NumericMarkPropDef<string>": {
2321
+ "$ref": "#/definitions/MarkPropDef%3Cstring%2Cnumber%3E"
2322
+ },
2323
+ "NumericValueDef": {
2324
+ "$ref": "#/definitions/ValueDef%3Cnumber%3E"
2325
+ },
2326
+ "OtherDataFormat": {
2327
+ "additionalProperties": false,
2328
+ "description": "Other data format, such as `\"fasta\"`",
2329
+ "properties": {
2330
+ "type": {
2331
+ "type": "string"
2332
+ }
2333
+ },
2334
+ "required": [
2335
+ "type"
2336
+ ],
2337
+ "type": "object"
2338
+ },
2502
2339
  "PaddingConfig": {
2503
2340
  "anyOf": [
2504
2341
  {
@@ -2618,27 +2455,278 @@
2618
2455
  ],
2619
2456
  "type": "object"
2620
2457
  },
2621
- "PositionalChannel": {
2622
- "enum": [
2623
- "x",
2624
- "y"
2625
- ],
2626
- "type": "string"
2627
- },
2628
- "ProjectParams": {
2629
- "additionalProperties": false,
2630
- "properties": {
2631
- "as": {
2632
- "description": "New names for the projected fields. If omitted, the names of the source fields are used.",
2633
- "items": {
2634
- "type": "string"
2458
+ "Position2Def<string>": {
2459
+ "anyOf": [
2460
+ {
2461
+ "additionalProperties": false,
2462
+ "properties": {
2463
+ "band": {
2464
+ "description": "Relative position on band scale. For example, the marks will be positioned at the beginning of the band if set to `0`, and at the middle of the band if set to `0.5`.",
2465
+ "maximum": 1,
2466
+ "minimum": 0,
2467
+ "type": "number"
2468
+ },
2469
+ "field": {
2470
+ "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
2471
+ "type": "string"
2472
+ },
2473
+ "title": {
2474
+ "description": "A title for the field. If `null`, the title will be removed.",
2475
+ "type": [
2476
+ "string",
2477
+ "null"
2478
+ ]
2479
+ }
2635
2480
  },
2636
- "type": "array"
2481
+ "type": "object"
2637
2482
  },
2638
- "fields": {
2639
- "description": "The fields to be projected.",
2640
- "items": {
2641
- "$ref": "#/definitions/Field"
2483
+ {
2484
+ "$ref": "#/definitions/SecondaryChromPosDef"
2485
+ },
2486
+ {
2487
+ "additionalProperties": false,
2488
+ "properties": {
2489
+ "band": {
2490
+ "description": "Relative position on band scale. For example, the marks will be positioned at the beginning of the band if set to `0`, and at the middle of the band if set to `0.5`.",
2491
+ "maximum": 1,
2492
+ "minimum": 0,
2493
+ "type": "number"
2494
+ },
2495
+ "datum": {
2496
+ "$ref": "#/definitions/Scalar",
2497
+ "description": "A constant value in data domain."
2498
+ },
2499
+ "title": {
2500
+ "description": "A title for the field. If `null`, the title will be removed.",
2501
+ "type": [
2502
+ "string",
2503
+ "null"
2504
+ ]
2505
+ }
2506
+ },
2507
+ "type": "object"
2508
+ },
2509
+ {
2510
+ "additionalProperties": false,
2511
+ "properties": {
2512
+ "band": {
2513
+ "description": "Relative position on band scale. For example, the marks will be positioned at the beginning of the band if set to `0`, and at the middle of the band if set to `0.5`.",
2514
+ "maximum": 1,
2515
+ "minimum": 0,
2516
+ "type": "number"
2517
+ },
2518
+ "expr": {
2519
+ "description": "An expression. Properties of the data can be accessed through the `datum` object.",
2520
+ "type": "string"
2521
+ }
2522
+ },
2523
+ "required": [
2524
+ "expr"
2525
+ ],
2526
+ "type": "object"
2527
+ },
2528
+ {
2529
+ "$ref": "#/definitions/PositionValueDef"
2530
+ }
2531
+ ]
2532
+ },
2533
+ "PositionDatumDef": {
2534
+ "additionalProperties": false,
2535
+ "properties": {
2536
+ "axis": {
2537
+ "anyOf": [
2538
+ {
2539
+ "$ref": "#/definitions/Axis"
2540
+ },
2541
+ {
2542
+ "type": "null"
2543
+ }
2544
+ ],
2545
+ "description": "An object defining properties of axis's gridlines, ticks and labels. If `null`, the axis for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [axis properties](https://vega.github.io/vega-lite/docs/axis.html) are applied.\n\n__See also:__ [`axis`](https://vega.github.io/vega-lite/docs/axis.html) documentation."
2546
+ },
2547
+ "band": {
2548
+ "description": "Relative position on band scale. For example, the marks will be positioned at the beginning of the band if set to `0`, and at the middle of the band if set to `0.5`.",
2549
+ "maximum": 1,
2550
+ "minimum": 0,
2551
+ "type": "number"
2552
+ },
2553
+ "datum": {
2554
+ "$ref": "#/definitions/Scalar",
2555
+ "description": "A constant value in data domain."
2556
+ },
2557
+ "resolutionChannel": {
2558
+ "$ref": "#/definitions/Channel",
2559
+ "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
2560
+ },
2561
+ "scale": {
2562
+ "anyOf": [
2563
+ {
2564
+ "$ref": "#/definitions/Scale"
2565
+ },
2566
+ {
2567
+ "type": "null"
2568
+ }
2569
+ ],
2570
+ "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2571
+ },
2572
+ "title": {
2573
+ "description": "A title for the field. If `null`, the title will be removed.",
2574
+ "type": [
2575
+ "string",
2576
+ "null"
2577
+ ]
2578
+ },
2579
+ "type": {
2580
+ "$ref": "#/definitions/Type"
2581
+ }
2582
+ },
2583
+ "required": [
2584
+ "type"
2585
+ ],
2586
+ "type": "object"
2587
+ },
2588
+ "PositionDef<string>": {
2589
+ "anyOf": [
2590
+ {
2591
+ "$ref": "#/definitions/PositionFieldDef%3Cstring%3E"
2592
+ },
2593
+ {
2594
+ "$ref": "#/definitions/ChromPosDef"
2595
+ },
2596
+ {
2597
+ "$ref": "#/definitions/PositionDatumDef"
2598
+ },
2599
+ {
2600
+ "$ref": "#/definitions/PositionExprDef"
2601
+ },
2602
+ {
2603
+ "$ref": "#/definitions/PositionValueDef"
2604
+ }
2605
+ ]
2606
+ },
2607
+ "PositionExprDef": {
2608
+ "additionalProperties": false,
2609
+ "properties": {
2610
+ "axis": {
2611
+ "anyOf": [
2612
+ {
2613
+ "$ref": "#/definitions/Axis"
2614
+ },
2615
+ {
2616
+ "type": "null"
2617
+ }
2618
+ ],
2619
+ "description": "An object defining properties of axis's gridlines, ticks and labels. If `null`, the axis for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [axis properties](https://vega.github.io/vega-lite/docs/axis.html) are applied.\n\n__See also:__ [`axis`](https://vega.github.io/vega-lite/docs/axis.html) documentation."
2620
+ },
2621
+ "band": {
2622
+ "description": "Relative position on band scale. For example, the marks will be positioned at the beginning of the band if set to `0`, and at the middle of the band if set to `0.5`.",
2623
+ "maximum": 1,
2624
+ "minimum": 0,
2625
+ "type": "number"
2626
+ },
2627
+ "expr": {
2628
+ "description": "An expression. Properties of the data can be accessed through the `datum` object.",
2629
+ "type": "string"
2630
+ },
2631
+ "type": {
2632
+ "$ref": "#/definitions/Type"
2633
+ }
2634
+ },
2635
+ "required": [
2636
+ "expr",
2637
+ "type"
2638
+ ],
2639
+ "type": "object"
2640
+ },
2641
+ "PositionFieldDef<string>": {
2642
+ "additionalProperties": false,
2643
+ "properties": {
2644
+ "axis": {
2645
+ "anyOf": [
2646
+ {
2647
+ "$ref": "#/definitions/Axis"
2648
+ },
2649
+ {
2650
+ "type": "null"
2651
+ }
2652
+ ],
2653
+ "description": "An object defining properties of axis's gridlines, ticks and labels. If `null`, the axis for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [axis properties](https://vega.github.io/vega-lite/docs/axis.html) are applied.\n\n__See also:__ [`axis`](https://vega.github.io/vega-lite/docs/axis.html) documentation."
2654
+ },
2655
+ "band": {
2656
+ "description": "Relative position on band scale. For example, the marks will be positioned at the beginning of the band if set to `0`, and at the middle of the band if set to `0.5`.",
2657
+ "maximum": 1,
2658
+ "minimum": 0,
2659
+ "type": "number"
2660
+ },
2661
+ "field": {
2662
+ "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
2663
+ "type": "string"
2664
+ },
2665
+ "resolutionChannel": {
2666
+ "$ref": "#/definitions/Channel",
2667
+ "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
2668
+ },
2669
+ "scale": {
2670
+ "anyOf": [
2671
+ {
2672
+ "$ref": "#/definitions/Scale"
2673
+ },
2674
+ {
2675
+ "type": "null"
2676
+ }
2677
+ ],
2678
+ "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2679
+ },
2680
+ "title": {
2681
+ "description": "A title for the field. If `null`, the title will be removed.",
2682
+ "type": [
2683
+ "string",
2684
+ "null"
2685
+ ]
2686
+ },
2687
+ "type": {
2688
+ "$ref": "#/definitions/Type"
2689
+ }
2690
+ },
2691
+ "required": [
2692
+ "type"
2693
+ ],
2694
+ "type": "object"
2695
+ },
2696
+ "PositionValueDef": {
2697
+ "$ref": "#/definitions/NumericValueDef"
2698
+ },
2699
+ "PositionalChannel": {
2700
+ "anyOf": [
2701
+ {
2702
+ "$ref": "#/definitions/PrimaryPositionalChannel"
2703
+ },
2704
+ {
2705
+ "$ref": "#/definitions/SecondaryPositionalChannel"
2706
+ }
2707
+ ]
2708
+ },
2709
+ "PrimaryPositionalChannel": {
2710
+ "enum": [
2711
+ "x",
2712
+ "y"
2713
+ ],
2714
+ "type": "string"
2715
+ },
2716
+ "ProjectParams": {
2717
+ "additionalProperties": false,
2718
+ "properties": {
2719
+ "as": {
2720
+ "description": "New names for the projected fields. If omitted, the names of the source fields are used.",
2721
+ "items": {
2722
+ "type": "string"
2723
+ },
2724
+ "type": "array"
2725
+ },
2726
+ "fields": {
2727
+ "description": "The fields to be projected.",
2728
+ "items": {
2729
+ "$ref": "#/definitions/Field"
2642
2730
  },
2643
2731
  "type": "array"
2644
2732
  },
@@ -2662,101 +2750,1041 @@
2662
2750
  {
2663
2751
  "type": "string"
2664
2752
  },
2665
- {
2753
+ {
2754
+ "items": {
2755
+ "type": "string"
2756
+ },
2757
+ "type": "array"
2758
+ }
2759
+ ],
2760
+ "description": "The new field or an array of fields where the extracted values are written."
2761
+ },
2762
+ "field": {
2763
+ "$ref": "#/definitions/Field",
2764
+ "description": "The source field"
2765
+ },
2766
+ "regex": {
2767
+ "description": "A valid JavaScript regular expression with at least one group. For example: `\"^Sample(\\\\d+)$\"`.\n\nRead more at: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions",
2768
+ "type": "string"
2769
+ },
2770
+ "skipInvalidInput": {
2771
+ "description": "Do not complain about invalid input. Just skip it and leave the new fields undefined on the affected datum.\n\n**Default:** `false`",
2772
+ "type": "boolean"
2773
+ },
2774
+ "type": {
2775
+ "const": "regexExtract",
2776
+ "description": "The type of the transform to be applied",
2777
+ "type": "string"
2778
+ }
2779
+ },
2780
+ "required": [
2781
+ "as",
2782
+ "field",
2783
+ "regex",
2784
+ "type"
2785
+ ],
2786
+ "type": "object"
2787
+ },
2788
+ "RegexFoldParams": {
2789
+ "additionalProperties": false,
2790
+ "properties": {
2791
+ "asKey": {
2792
+ "description": "**Default:** `\"sample\"`",
2793
+ "type": "string"
2794
+ },
2795
+ "asValue": {
2796
+ "anyOf": [
2797
+ {
2798
+ "items": {
2799
+ "type": "string"
2800
+ },
2801
+ "type": "array"
2802
+ },
2803
+ {
2804
+ "type": "string"
2805
+ }
2806
+ ],
2807
+ "description": "A new column name for the extracted values."
2808
+ },
2809
+ "columnRegex": {
2810
+ "anyOf": [
2811
+ {
2812
+ "items": {
2813
+ "type": "string"
2814
+ },
2815
+ "type": "array"
2816
+ },
2817
+ {
2818
+ "type": "string"
2819
+ }
2820
+ ],
2821
+ "description": "A regular expression that matches to column names. The regex must have one capturing group that is used for extracting the key (e.g., a sample id) from the column name."
2822
+ },
2823
+ "skipRegex": {
2824
+ "description": "An optional regex that matches to fields that should not be included in the new folded data objects.",
2825
+ "type": "string"
2826
+ },
2827
+ "type": {
2828
+ "const": "regexFold",
2829
+ "description": "The type of the transform to be applied",
2830
+ "type": "string"
2831
+ }
2832
+ },
2833
+ "required": [
2834
+ "asValue",
2835
+ "columnRegex",
2836
+ "type"
2837
+ ],
2838
+ "type": "object"
2839
+ },
2840
+ "ResolutionBehavior": {
2841
+ "description": "`\"independent\"` and `\"shared\"` behave similarly to Vega-Lite. `\"excluded\"` behaves like `\"shared\"`, but is not pulled towards the root.",
2842
+ "enum": [
2843
+ "independent",
2844
+ "shared",
2845
+ "excluded"
2846
+ ],
2847
+ "type": "string"
2848
+ },
2849
+ "RootSpec": {
2850
+ "anyOf": [
2851
+ {
2852
+ "additionalProperties": false,
2853
+ "properties": {
2854
+ "$schema": {
2855
+ "type": "string"
2856
+ },
2857
+ "aggregateSamples": {
2858
+ "items": {
2859
+ "anyOf": [
2860
+ {
2861
+ "$ref": "#/definitions/UnitSpec"
2862
+ },
2863
+ {
2864
+ "$ref": "#/definitions/LayerSpec"
2865
+ }
2866
+ ]
2867
+ },
2868
+ "type": "array"
2869
+ },
2870
+ "baseUrl": {
2871
+ "type": "string"
2872
+ },
2873
+ "configurableVisibility": {
2874
+ "description": "Is the visibility configurable interactively from the App. Configurability requires that the view has an explicitly specified name that is *unique* in within the view specification.\n\n**Default:** `false` for children of `layer`, `true` for others.",
2875
+ "type": "boolean"
2876
+ },
2877
+ "data": {
2878
+ "$ref": "#/definitions/Data"
2879
+ },
2880
+ "datasets": {
2881
+ "additionalProperties": {
2882
+ "items": {},
2883
+ "type": "array"
2884
+ },
2885
+ "description": "https://vega.github.io/vega-lite/docs/data.html#datasets",
2886
+ "type": "object"
2887
+ },
2888
+ "description": {
2889
+ "anyOf": [
2890
+ {
2891
+ "type": "string"
2892
+ },
2893
+ {
2894
+ "items": {
2895
+ "type": "string"
2896
+ },
2897
+ "type": "array"
2898
+ }
2899
+ ],
2900
+ "description": "A description of the view. Multiple lines can be provided as an array."
2901
+ },
2902
+ "encoding": {
2903
+ "$ref": "#/definitions/Encoding"
2904
+ },
2905
+ "genome": {
2906
+ "$ref": "#/definitions/GenomeConfig"
2907
+ },
2908
+ "height": {
2909
+ "anyOf": [
2910
+ {
2911
+ "$ref": "#/definitions/SizeDef"
2912
+ },
2913
+ {
2914
+ "type": "number"
2915
+ },
2916
+ {
2917
+ "$ref": "#/definitions/Step"
2918
+ },
2919
+ {
2920
+ "const": "container",
2921
+ "type": "string"
2922
+ }
2923
+ ]
2924
+ },
2925
+ "mark": {
2926
+ "anyOf": [
2927
+ {
2928
+ "$ref": "#/definitions/MarkType"
2929
+ },
2930
+ {
2931
+ "$ref": "#/definitions/MarkConfigAndType"
2932
+ }
2933
+ ]
2934
+ },
2935
+ "name": {
2936
+ "type": "string"
2937
+ },
2938
+ "opacity": {
2939
+ "$ref": "#/definitions/ViewOpacityDef",
2940
+ "description": "Opacity of the view and all its children.\n\n**Default:* `1.0`"
2941
+ },
2942
+ "padding": {
2943
+ "$ref": "#/definitions/PaddingConfig",
2944
+ "description": "Padding in pixels.\n\n**Default:* `0`"
2945
+ },
2946
+ "resolve": {
2947
+ "additionalProperties": false,
2948
+ "properties": {
2949
+ "axis": {
2950
+ "additionalProperties": {
2951
+ "$ref": "#/definitions/ResolutionBehavior"
2952
+ },
2953
+ "properties": {
2954
+ "default": {
2955
+ "$ref": "#/definitions/ResolutionBehavior"
2956
+ }
2957
+ },
2958
+ "type": "object"
2959
+ },
2960
+ "scale": {
2961
+ "additionalProperties": {
2962
+ "$ref": "#/definitions/ResolutionBehavior"
2963
+ },
2964
+ "properties": {
2965
+ "default": {
2966
+ "$ref": "#/definitions/ResolutionBehavior"
2967
+ }
2968
+ },
2969
+ "type": "object"
2970
+ }
2971
+ },
2972
+ "type": "object"
2973
+ },
2974
+ "title": {
2975
+ "type": "string"
2976
+ },
2977
+ "transform": {
2978
+ "items": {
2979
+ "$ref": "#/definitions/TransformParams"
2980
+ },
2981
+ "type": "array"
2982
+ },
2983
+ "view": {
2984
+ "$ref": "#/definitions/ViewConfig"
2985
+ },
2986
+ "visible": {
2987
+ "description": "Visibility of the view. An invisible view is removed from the layout and not rendered.\n\n**Default:** `true`",
2988
+ "type": "boolean"
2989
+ },
2990
+ "width": {
2991
+ "anyOf": [
2992
+ {
2993
+ "$ref": "#/definitions/SizeDef"
2994
+ },
2995
+ {
2996
+ "type": "number"
2997
+ },
2998
+ {
2999
+ "$ref": "#/definitions/Step"
3000
+ },
3001
+ {
3002
+ "const": "container",
3003
+ "type": "string"
3004
+ }
3005
+ ]
3006
+ }
3007
+ },
3008
+ "required": [
3009
+ "mark"
3010
+ ],
3011
+ "type": "object"
3012
+ },
3013
+ {
3014
+ "additionalProperties": false,
3015
+ "properties": {
3016
+ "$schema": {
3017
+ "type": "string"
3018
+ },
3019
+ "aggregateSamples": {
3020
+ "items": {
3021
+ "anyOf": [
3022
+ {
3023
+ "$ref": "#/definitions/UnitSpec"
3024
+ },
3025
+ {
3026
+ "$ref": "#/definitions/LayerSpec"
3027
+ }
3028
+ ]
3029
+ },
3030
+ "type": "array"
3031
+ },
3032
+ "baseUrl": {
3033
+ "type": "string"
3034
+ },
3035
+ "configurableVisibility": {
3036
+ "description": "Is the visibility configurable interactively from the App. Configurability requires that the view has an explicitly specified name that is *unique* in within the view specification.\n\n**Default:** `false` for children of `layer`, `true` for others.",
3037
+ "type": "boolean"
3038
+ },
3039
+ "data": {
3040
+ "$ref": "#/definitions/Data"
3041
+ },
3042
+ "datasets": {
3043
+ "additionalProperties": {
3044
+ "items": {},
3045
+ "type": "array"
3046
+ },
3047
+ "description": "https://vega.github.io/vega-lite/docs/data.html#datasets",
3048
+ "type": "object"
3049
+ },
3050
+ "description": {
3051
+ "anyOf": [
3052
+ {
3053
+ "type": "string"
3054
+ },
3055
+ {
3056
+ "items": {
3057
+ "type": "string"
3058
+ },
3059
+ "type": "array"
3060
+ }
3061
+ ],
3062
+ "description": "A description of the view. Multiple lines can be provided as an array."
3063
+ },
3064
+ "encoding": {
3065
+ "$ref": "#/definitions/Encoding"
3066
+ },
3067
+ "genome": {
3068
+ "$ref": "#/definitions/GenomeConfig"
3069
+ },
3070
+ "height": {
3071
+ "anyOf": [
3072
+ {
3073
+ "$ref": "#/definitions/SizeDef"
3074
+ },
3075
+ {
3076
+ "type": "number"
3077
+ },
3078
+ {
3079
+ "$ref": "#/definitions/Step"
3080
+ },
3081
+ {
3082
+ "const": "container",
3083
+ "type": "string"
3084
+ }
3085
+ ]
3086
+ },
3087
+ "layer": {
3088
+ "items": {
3089
+ "anyOf": [
3090
+ {
3091
+ "$ref": "#/definitions/LayerSpec"
3092
+ },
3093
+ {
3094
+ "$ref": "#/definitions/UnitSpec"
3095
+ }
3096
+ ]
3097
+ },
3098
+ "type": "array"
3099
+ },
3100
+ "name": {
3101
+ "type": "string"
3102
+ },
3103
+ "opacity": {
3104
+ "$ref": "#/definitions/ViewOpacityDef",
3105
+ "description": "Opacity of the view and all its children.\n\n**Default:* `1.0`"
3106
+ },
3107
+ "padding": {
3108
+ "$ref": "#/definitions/PaddingConfig",
3109
+ "description": "Padding in pixels.\n\n**Default:* `0`"
3110
+ },
3111
+ "resolve": {
3112
+ "additionalProperties": false,
3113
+ "properties": {
3114
+ "axis": {
3115
+ "additionalProperties": {
3116
+ "$ref": "#/definitions/ResolutionBehavior"
3117
+ },
3118
+ "properties": {
3119
+ "default": {
3120
+ "$ref": "#/definitions/ResolutionBehavior"
3121
+ }
3122
+ },
3123
+ "type": "object"
3124
+ },
3125
+ "scale": {
3126
+ "additionalProperties": {
3127
+ "$ref": "#/definitions/ResolutionBehavior"
3128
+ },
3129
+ "properties": {
3130
+ "default": {
3131
+ "$ref": "#/definitions/ResolutionBehavior"
3132
+ }
3133
+ },
3134
+ "type": "object"
3135
+ }
3136
+ },
3137
+ "type": "object"
3138
+ },
3139
+ "title": {
3140
+ "type": "string"
3141
+ },
3142
+ "transform": {
3143
+ "items": {
3144
+ "$ref": "#/definitions/TransformParams"
3145
+ },
3146
+ "type": "array"
3147
+ },
3148
+ "view": {
3149
+ "$ref": "#/definitions/ViewConfig"
3150
+ },
3151
+ "visible": {
3152
+ "description": "Visibility of the view. An invisible view is removed from the layout and not rendered.\n\n**Default:** `true`",
3153
+ "type": "boolean"
3154
+ },
3155
+ "width": {
3156
+ "anyOf": [
3157
+ {
3158
+ "$ref": "#/definitions/SizeDef"
3159
+ },
3160
+ {
3161
+ "type": "number"
3162
+ },
3163
+ {
3164
+ "$ref": "#/definitions/Step"
3165
+ },
3166
+ {
3167
+ "const": "container",
3168
+ "type": "string"
3169
+ }
3170
+ ]
3171
+ }
3172
+ },
3173
+ "required": [
3174
+ "layer"
3175
+ ],
3176
+ "type": "object"
3177
+ },
3178
+ {
3179
+ "additionalProperties": false,
3180
+ "properties": {
3181
+ "$schema": {
3182
+ "type": "string"
3183
+ },
3184
+ "baseUrl": {
3185
+ "type": "string"
3186
+ },
3187
+ "configurableVisibility": {
3188
+ "description": "Is the visibility configurable interactively from the App. Configurability requires that the view has an explicitly specified name that is *unique* in within the view specification.\n\n**Default:** `false` for children of `layer`, `true` for others.",
3189
+ "type": "boolean"
3190
+ },
3191
+ "data": {
3192
+ "$ref": "#/definitions/Data"
3193
+ },
3194
+ "datasets": {
3195
+ "additionalProperties": {
3196
+ "items": {},
3197
+ "type": "array"
3198
+ },
3199
+ "description": "https://vega.github.io/vega-lite/docs/data.html#datasets",
3200
+ "type": "object"
3201
+ },
3202
+ "description": {
3203
+ "anyOf": [
3204
+ {
3205
+ "type": "string"
3206
+ },
3207
+ {
3208
+ "items": {
3209
+ "type": "string"
3210
+ },
3211
+ "type": "array"
3212
+ }
3213
+ ],
3214
+ "description": "A description of the view. Multiple lines can be provided as an array."
3215
+ },
3216
+ "encoding": {
3217
+ "$ref": "#/definitions/Encoding"
3218
+ },
3219
+ "genome": {
3220
+ "$ref": "#/definitions/GenomeConfig"
3221
+ },
3222
+ "height": {
3223
+ "anyOf": [
3224
+ {
3225
+ "$ref": "#/definitions/SizeDef"
3226
+ },
3227
+ {
3228
+ "type": "number"
3229
+ },
3230
+ {
3231
+ "$ref": "#/definitions/Step"
3232
+ },
3233
+ {
3234
+ "const": "container",
3235
+ "type": "string"
3236
+ }
3237
+ ]
3238
+ },
3239
+ "name": {
3240
+ "type": "string"
3241
+ },
3242
+ "opacity": {
3243
+ "$ref": "#/definitions/ViewOpacityDef",
3244
+ "description": "Opacity of the view and all its children.\n\n**Default:* `1.0`"
3245
+ },
3246
+ "padding": {
3247
+ "$ref": "#/definitions/PaddingConfig",
3248
+ "description": "Padding in pixels.\n\n**Default:* `0`"
3249
+ },
3250
+ "resolve": {
3251
+ "additionalProperties": false,
3252
+ "properties": {
3253
+ "axis": {
3254
+ "additionalProperties": {
3255
+ "$ref": "#/definitions/ResolutionBehavior"
3256
+ },
3257
+ "properties": {
3258
+ "default": {
3259
+ "$ref": "#/definitions/ResolutionBehavior"
3260
+ }
3261
+ },
3262
+ "type": "object"
3263
+ },
3264
+ "scale": {
3265
+ "additionalProperties": {
3266
+ "$ref": "#/definitions/ResolutionBehavior"
3267
+ },
3268
+ "properties": {
3269
+ "default": {
3270
+ "$ref": "#/definitions/ResolutionBehavior"
3271
+ }
3272
+ },
3273
+ "type": "object"
3274
+ }
3275
+ },
3276
+ "type": "object"
3277
+ },
3278
+ "samples": {
3279
+ "$ref": "#/definitions/SampleDef"
3280
+ },
3281
+ "spec": {
3282
+ "anyOf": [
3283
+ {
3284
+ "$ref": "#/definitions/LayerSpec"
3285
+ },
3286
+ {
3287
+ "$ref": "#/definitions/UnitSpec"
3288
+ }
3289
+ ]
3290
+ },
3291
+ "stickySummaries": {
3292
+ "type": "boolean"
3293
+ },
3294
+ "title": {
3295
+ "type": "string"
3296
+ },
3297
+ "transform": {
3298
+ "items": {
3299
+ "$ref": "#/definitions/TransformParams"
3300
+ },
3301
+ "type": "array"
3302
+ },
3303
+ "visible": {
3304
+ "description": "Visibility of the view. An invisible view is removed from the layout and not rendered.\n\n**Default:** `true`",
3305
+ "type": "boolean"
3306
+ },
3307
+ "width": {
3308
+ "anyOf": [
3309
+ {
3310
+ "$ref": "#/definitions/SizeDef"
3311
+ },
3312
+ {
3313
+ "type": "number"
3314
+ },
3315
+ {
3316
+ "$ref": "#/definitions/Step"
3317
+ },
3318
+ {
3319
+ "const": "container",
3320
+ "type": "string"
3321
+ }
3322
+ ]
3323
+ }
3324
+ },
3325
+ "required": [
3326
+ "samples",
3327
+ "spec"
3328
+ ],
3329
+ "type": "object"
3330
+ },
3331
+ {
3332
+ "additionalProperties": false,
3333
+ "properties": {
3334
+ "$schema": {
3335
+ "type": "string"
3336
+ },
3337
+ "baseUrl": {
3338
+ "type": "string"
3339
+ },
3340
+ "configurableVisibility": {
3341
+ "description": "Is the visibility configurable interactively from the App. Configurability requires that the view has an explicitly specified name that is *unique* in within the view specification.\n\n**Default:** `false` for children of `layer`, `true` for others.",
3342
+ "type": "boolean"
3343
+ },
3344
+ "data": {
3345
+ "$ref": "#/definitions/Data"
3346
+ },
3347
+ "datasets": {
3348
+ "additionalProperties": {
3349
+ "items": {},
3350
+ "type": "array"
3351
+ },
3352
+ "description": "https://vega.github.io/vega-lite/docs/data.html#datasets",
3353
+ "type": "object"
3354
+ },
3355
+ "description": {
3356
+ "anyOf": [
3357
+ {
3358
+ "type": "string"
3359
+ },
3360
+ {
3361
+ "items": {
3362
+ "type": "string"
3363
+ },
3364
+ "type": "array"
3365
+ }
3366
+ ],
3367
+ "description": "A description of the view. Multiple lines can be provided as an array."
3368
+ },
3369
+ "encoding": {
3370
+ "$ref": "#/definitions/Encoding"
3371
+ },
3372
+ "genome": {
3373
+ "$ref": "#/definitions/GenomeConfig"
3374
+ },
3375
+ "height": {
3376
+ "anyOf": [
3377
+ {
3378
+ "$ref": "#/definitions/SizeDef"
3379
+ },
3380
+ {
3381
+ "type": "number"
3382
+ },
3383
+ {
3384
+ "$ref": "#/definitions/Step"
3385
+ },
3386
+ {
3387
+ "const": "container",
3388
+ "type": "string"
3389
+ }
3390
+ ]
3391
+ },
3392
+ "name": {
3393
+ "type": "string"
3394
+ },
3395
+ "opacity": {
3396
+ "$ref": "#/definitions/ViewOpacityDef",
3397
+ "description": "Opacity of the view and all its children.\n\n**Default:* `1.0`"
3398
+ },
3399
+ "padding": {
3400
+ "$ref": "#/definitions/PaddingConfig",
3401
+ "description": "Padding in pixels.\n\n**Default:* `0`"
3402
+ },
3403
+ "resolve": {
3404
+ "additionalProperties": false,
3405
+ "properties": {
3406
+ "axis": {
3407
+ "additionalProperties": {
3408
+ "$ref": "#/definitions/ResolutionBehavior"
3409
+ },
3410
+ "properties": {
3411
+ "default": {
3412
+ "$ref": "#/definitions/ResolutionBehavior"
3413
+ }
3414
+ },
3415
+ "type": "object"
3416
+ },
3417
+ "scale": {
3418
+ "additionalProperties": {
3419
+ "$ref": "#/definitions/ResolutionBehavior"
3420
+ },
3421
+ "properties": {
3422
+ "default": {
3423
+ "$ref": "#/definitions/ResolutionBehavior"
3424
+ }
3425
+ },
3426
+ "type": "object"
3427
+ }
3428
+ },
3429
+ "type": "object"
3430
+ },
3431
+ "spacing": {
3432
+ "type": "number"
3433
+ },
3434
+ "title": {
3435
+ "type": "string"
3436
+ },
3437
+ "transform": {
3438
+ "items": {
3439
+ "$ref": "#/definitions/TransformParams"
3440
+ },
3441
+ "type": "array"
3442
+ },
3443
+ "vconcat": {
3444
+ "items": {
3445
+ "anyOf": [
3446
+ {
3447
+ "$ref": "#/definitions/ViewSpec"
3448
+ },
3449
+ {
3450
+ "$ref": "#/definitions/ImportSpec"
3451
+ }
3452
+ ]
3453
+ },
3454
+ "type": "array"
3455
+ },
3456
+ "visible": {
3457
+ "description": "Visibility of the view. An invisible view is removed from the layout and not rendered.\n\n**Default:** `true`",
3458
+ "type": "boolean"
3459
+ },
3460
+ "width": {
3461
+ "anyOf": [
3462
+ {
3463
+ "$ref": "#/definitions/SizeDef"
3464
+ },
3465
+ {
3466
+ "type": "number"
3467
+ },
3468
+ {
3469
+ "$ref": "#/definitions/Step"
3470
+ },
3471
+ {
3472
+ "const": "container",
3473
+ "type": "string"
3474
+ }
3475
+ ]
3476
+ }
3477
+ },
3478
+ "required": [
3479
+ "vconcat"
3480
+ ],
3481
+ "type": "object"
3482
+ },
3483
+ {
3484
+ "additionalProperties": false,
3485
+ "properties": {
3486
+ "$schema": {
3487
+ "type": "string"
3488
+ },
3489
+ "baseUrl": {
3490
+ "type": "string"
3491
+ },
3492
+ "configurableVisibility": {
3493
+ "description": "Is the visibility configurable interactively from the App. Configurability requires that the view has an explicitly specified name that is *unique* in within the view specification.\n\n**Default:** `false` for children of `layer`, `true` for others.",
3494
+ "type": "boolean"
3495
+ },
3496
+ "data": {
3497
+ "$ref": "#/definitions/Data"
3498
+ },
3499
+ "datasets": {
3500
+ "additionalProperties": {
3501
+ "items": {},
3502
+ "type": "array"
3503
+ },
3504
+ "description": "https://vega.github.io/vega-lite/docs/data.html#datasets",
3505
+ "type": "object"
3506
+ },
3507
+ "description": {
3508
+ "anyOf": [
3509
+ {
3510
+ "type": "string"
3511
+ },
3512
+ {
3513
+ "items": {
3514
+ "type": "string"
3515
+ },
3516
+ "type": "array"
3517
+ }
3518
+ ],
3519
+ "description": "A description of the view. Multiple lines can be provided as an array."
3520
+ },
3521
+ "encoding": {
3522
+ "$ref": "#/definitions/Encoding"
3523
+ },
3524
+ "genome": {
3525
+ "$ref": "#/definitions/GenomeConfig"
3526
+ },
3527
+ "hconcat": {
3528
+ "items": {
3529
+ "anyOf": [
3530
+ {
3531
+ "$ref": "#/definitions/ViewSpec"
3532
+ },
3533
+ {
3534
+ "$ref": "#/definitions/ImportSpec"
3535
+ }
3536
+ ]
3537
+ },
3538
+ "type": "array"
3539
+ },
3540
+ "height": {
3541
+ "anyOf": [
3542
+ {
3543
+ "$ref": "#/definitions/SizeDef"
3544
+ },
3545
+ {
3546
+ "type": "number"
3547
+ },
3548
+ {
3549
+ "$ref": "#/definitions/Step"
3550
+ },
3551
+ {
3552
+ "const": "container",
3553
+ "type": "string"
3554
+ }
3555
+ ]
3556
+ },
3557
+ "name": {
3558
+ "type": "string"
3559
+ },
3560
+ "opacity": {
3561
+ "$ref": "#/definitions/ViewOpacityDef",
3562
+ "description": "Opacity of the view and all its children.\n\n**Default:* `1.0`"
3563
+ },
3564
+ "padding": {
3565
+ "$ref": "#/definitions/PaddingConfig",
3566
+ "description": "Padding in pixels.\n\n**Default:* `0`"
3567
+ },
3568
+ "resolve": {
3569
+ "additionalProperties": false,
3570
+ "properties": {
3571
+ "axis": {
3572
+ "additionalProperties": {
3573
+ "$ref": "#/definitions/ResolutionBehavior"
3574
+ },
3575
+ "properties": {
3576
+ "default": {
3577
+ "$ref": "#/definitions/ResolutionBehavior"
3578
+ }
3579
+ },
3580
+ "type": "object"
3581
+ },
3582
+ "scale": {
3583
+ "additionalProperties": {
3584
+ "$ref": "#/definitions/ResolutionBehavior"
3585
+ },
3586
+ "properties": {
3587
+ "default": {
3588
+ "$ref": "#/definitions/ResolutionBehavior"
3589
+ }
3590
+ },
3591
+ "type": "object"
3592
+ }
3593
+ },
3594
+ "type": "object"
3595
+ },
3596
+ "spacing": {
3597
+ "type": "number"
3598
+ },
3599
+ "title": {
3600
+ "type": "string"
3601
+ },
3602
+ "transform": {
2666
3603
  "items": {
2667
- "type": "string"
3604
+ "$ref": "#/definitions/TransformParams"
2668
3605
  },
2669
3606
  "type": "array"
3607
+ },
3608
+ "visible": {
3609
+ "description": "Visibility of the view. An invisible view is removed from the layout and not rendered.\n\n**Default:** `true`",
3610
+ "type": "boolean"
3611
+ },
3612
+ "width": {
3613
+ "anyOf": [
3614
+ {
3615
+ "$ref": "#/definitions/SizeDef"
3616
+ },
3617
+ {
3618
+ "type": "number"
3619
+ },
3620
+ {
3621
+ "$ref": "#/definitions/Step"
3622
+ },
3623
+ {
3624
+ "const": "container",
3625
+ "type": "string"
3626
+ }
3627
+ ]
2670
3628
  }
3629
+ },
3630
+ "required": [
3631
+ "hconcat"
2671
3632
  ],
2672
- "description": "The new field or an array of fields where the extracted values are written."
2673
- },
2674
- "field": {
2675
- "$ref": "#/definitions/Field",
2676
- "description": "The source field"
2677
- },
2678
- "regex": {
2679
- "description": "A valid JavaScript regular expression with at least one group. For example: `\"^Sample(\\\\d+)$\"`.\n\nRead more at: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions",
2680
- "type": "string"
2681
- },
2682
- "skipInvalidInput": {
2683
- "description": "Do not complain about invalid input. Just skip it and leave the new fields undefined on the affected datum.\n\n**Default:** `false`",
2684
- "type": "boolean"
2685
- },
2686
- "type": {
2687
- "const": "regexExtract",
2688
- "description": "The type of the transform to be applied",
2689
- "type": "string"
2690
- }
2691
- },
2692
- "required": [
2693
- "as",
2694
- "field",
2695
- "regex",
2696
- "type"
2697
- ],
2698
- "type": "object"
2699
- },
2700
- "RegexFoldParams": {
2701
- "additionalProperties": false,
2702
- "properties": {
2703
- "asKey": {
2704
- "description": "**Default:** `\"sample\"`",
2705
- "type": "string"
3633
+ "type": "object"
2706
3634
  },
2707
- "asValue": {
2708
- "anyOf": [
2709
- {
3635
+ {
3636
+ "additionalProperties": false,
3637
+ "properties": {
3638
+ "$schema": {
3639
+ "type": "string"
3640
+ },
3641
+ "baseUrl": {
3642
+ "type": "string"
3643
+ },
3644
+ "concat": {
2710
3645
  "items": {
2711
- "type": "string"
3646
+ "anyOf": [
3647
+ {
3648
+ "$ref": "#/definitions/ViewSpec"
3649
+ },
3650
+ {
3651
+ "$ref": "#/definitions/ImportSpec"
3652
+ }
3653
+ ]
2712
3654
  },
2713
3655
  "type": "array"
2714
3656
  },
2715
- {
3657
+ "configurableVisibility": {
3658
+ "description": "Is the visibility configurable interactively from the App. Configurability requires that the view has an explicitly specified name that is *unique* in within the view specification.\n\n**Default:** `false` for children of `layer`, `true` for others.",
3659
+ "type": "boolean"
3660
+ },
3661
+ "data": {
3662
+ "$ref": "#/definitions/Data"
3663
+ },
3664
+ "datasets": {
3665
+ "additionalProperties": {
3666
+ "items": {},
3667
+ "type": "array"
3668
+ },
3669
+ "description": "https://vega.github.io/vega-lite/docs/data.html#datasets",
3670
+ "type": "object"
3671
+ },
3672
+ "description": {
3673
+ "anyOf": [
3674
+ {
3675
+ "type": "string"
3676
+ },
3677
+ {
3678
+ "items": {
3679
+ "type": "string"
3680
+ },
3681
+ "type": "array"
3682
+ }
3683
+ ],
3684
+ "description": "A description of the view. Multiple lines can be provided as an array."
3685
+ },
3686
+ "encoding": {
3687
+ "$ref": "#/definitions/Encoding"
3688
+ },
3689
+ "genome": {
3690
+ "$ref": "#/definitions/GenomeConfig"
3691
+ },
3692
+ "height": {
3693
+ "anyOf": [
3694
+ {
3695
+ "$ref": "#/definitions/SizeDef"
3696
+ },
3697
+ {
3698
+ "type": "number"
3699
+ },
3700
+ {
3701
+ "$ref": "#/definitions/Step"
3702
+ },
3703
+ {
3704
+ "const": "container",
3705
+ "type": "string"
3706
+ }
3707
+ ]
3708
+ },
3709
+ "name": {
2716
3710
  "type": "string"
2717
- }
2718
- ],
2719
- "description": "A new column name for the extracted values."
2720
- },
2721
- "columnRegex": {
2722
- "anyOf": [
2723
- {
3711
+ },
3712
+ "opacity": {
3713
+ "$ref": "#/definitions/ViewOpacityDef",
3714
+ "description": "Opacity of the view and all its children.\n\n**Default:* `1.0`"
3715
+ },
3716
+ "padding": {
3717
+ "$ref": "#/definitions/PaddingConfig",
3718
+ "description": "Padding in pixels.\n\n**Default:* `0`"
3719
+ },
3720
+ "resolve": {
3721
+ "additionalProperties": false,
3722
+ "properties": {
3723
+ "axis": {
3724
+ "additionalProperties": {
3725
+ "$ref": "#/definitions/ResolutionBehavior"
3726
+ },
3727
+ "properties": {
3728
+ "default": {
3729
+ "$ref": "#/definitions/ResolutionBehavior"
3730
+ }
3731
+ },
3732
+ "type": "object"
3733
+ },
3734
+ "scale": {
3735
+ "additionalProperties": {
3736
+ "$ref": "#/definitions/ResolutionBehavior"
3737
+ },
3738
+ "properties": {
3739
+ "default": {
3740
+ "$ref": "#/definitions/ResolutionBehavior"
3741
+ }
3742
+ },
3743
+ "type": "object"
3744
+ }
3745
+ },
3746
+ "type": "object"
3747
+ },
3748
+ "spacing": {
3749
+ "type": "number"
3750
+ },
3751
+ "title": {
3752
+ "type": "string"
3753
+ },
3754
+ "transform": {
2724
3755
  "items": {
2725
- "type": "string"
3756
+ "$ref": "#/definitions/TransformParams"
2726
3757
  },
2727
3758
  "type": "array"
2728
3759
  },
2729
- {
2730
- "type": "string"
3760
+ "visible": {
3761
+ "description": "Visibility of the view. An invisible view is removed from the layout and not rendered.\n\n**Default:** `true`",
3762
+ "type": "boolean"
3763
+ },
3764
+ "width": {
3765
+ "anyOf": [
3766
+ {
3767
+ "$ref": "#/definitions/SizeDef"
3768
+ },
3769
+ {
3770
+ "type": "number"
3771
+ },
3772
+ {
3773
+ "$ref": "#/definitions/Step"
3774
+ },
3775
+ {
3776
+ "const": "container",
3777
+ "type": "string"
3778
+ }
3779
+ ]
2731
3780
  }
3781
+ },
3782
+ "required": [
3783
+ "concat"
2732
3784
  ],
2733
- "description": "A regular expression that matches to column names. The regex must have one capturing group that is used for extracting the key (e.g., a sample id) from the column name."
2734
- },
2735
- "skipRegex": {
2736
- "description": "An optional regex that matches to fields that should not be included in the new folded data objects.",
2737
- "type": "string"
2738
- },
2739
- "type": {
2740
- "const": "regexFold",
2741
- "description": "The type of the transform to be applied",
2742
- "type": "string"
3785
+ "type": "object"
2743
3786
  }
2744
- },
2745
- "required": [
2746
- "asValue",
2747
- "columnRegex",
2748
- "type"
2749
- ],
2750
- "type": "object"
2751
- },
2752
- "ResolutionBehavior": {
2753
- "description": "`\"independent\"` and `\"shared\"` behave similarly to Vega-Lite. `\"excluded\"` behaves like `\"shared\"`, but is not pulled towards the root.",
2754
- "enum": [
2755
- "independent",
2756
- "shared",
2757
- "excluded"
2758
- ],
2759
- "type": "string"
3787
+ ]
2760
3788
  },
2761
3789
  "SampleAttributeDef": {
2762
3790
  "additionalProperties": false,
@@ -2769,7 +3797,7 @@
2769
3797
  "description": "Color scale (primary)"
2770
3798
  },
2771
3799
  "type": {
2772
- "type": "string"
3800
+ "$ref": "#/definitions/Type"
2773
3801
  },
2774
3802
  "visible": {
2775
3803
  "type": "boolean"
@@ -3137,8 +4165,8 @@
3137
4165
  "description": "A string indicating a color [scheme](https://vega.github.io/vega-lite/docs/scale.html#scheme) name (e.g., `\"category10\"` or `\"blues\"`) or a [scheme parameter object](https://vega.github.io/vega-lite/docs/scale.html#scheme-params).\n\nDiscrete color schemes may be used with [discrete](https://vega.github.io/vega-lite/docs/scale.html#discrete) or [discretizing](https://vega.github.io/vega-lite/docs/scale.html#discretizing) scales. Continuous color schemes are intended for use with color scales.\n\nFor the full list of supported schemes, please refer to the [Vega Scheme](https://vega.github.io/vega/docs/schemes/#reference) reference."
3138
4166
  },
3139
4167
  "type": {
3140
- "description": "The type of scale. Vega-Lite supports the following categories of scale types:\n\n1) [**Continuous Scales**](https://vega.github.io/vega-lite/docs/scale.html#continuous) -- mapping continuous domains to continuous output ranges ([`\"linear\"`](https://vega.github.io/vega-lite/docs/scale.html#linear), [`\"pow\"`](https://vega.github.io/vega-lite/docs/scale.html#pow), [`\"sqrt\"`](https://vega.github.io/vega-lite/docs/scale.html#sqrt), [`\"symlog\"`](https://vega.github.io/vega-lite/docs/scale.html#symlog), [`\"log\"`](https://vega.github.io/vega-lite/docs/scale.html#log), [`\"time\"`](https://vega.github.io/vega-lite/docs/scale.html#time), [`\"utc\"`](https://vega.github.io/vega-lite/docs/scale.html#utc).\n\n2) [**Discrete Scales**](https://vega.github.io/vega-lite/docs/scale.html#discrete) -- mapping discrete domains to discrete ([`\"ordinal\"`](https://vega.github.io/vega-lite/docs/scale.html#ordinal)) or continuous ([`\"band\"`](https://vega.github.io/vega-lite/docs/scale.html#band) and [`\"point\"`](https://vega.github.io/vega-lite/docs/scale.html#point)) output ranges.\n\n3) [**Discretizing Scales**](https://vega.github.io/vega-lite/docs/scale.html#discretizing) -- mapping continuous domains to discrete output ranges [`\"bin-ordinal\"`](https://vega.github.io/vega-lite/docs/scale.html#bin-ordinal), [`\"quantile\"`](https://vega.github.io/vega-lite/docs/scale.html#quantile), [`\"quantize\"`](https://vega.github.io/vega-lite/docs/scale.html#quantize) and [`\"threshold\"`](https://vega.github.io/vega-lite/docs/scale.html#threshold).\n\n__Default value:__ please see the [scale type table](https://vega.github.io/vega-lite/docs/scale.html#type).",
3141
- "type": "string"
4168
+ "$ref": "#/definitions/ScaleType",
4169
+ "description": "The type of scale. Vega-Lite supports the following categories of scale types:\n\n1) [**Continuous Scales**](https://vega.github.io/vega-lite/docs/scale.html#continuous) -- mapping continuous domains to continuous output ranges ([`\"linear\"`](https://vega.github.io/vega-lite/docs/scale.html#linear), [`\"pow\"`](https://vega.github.io/vega-lite/docs/scale.html#pow), [`\"sqrt\"`](https://vega.github.io/vega-lite/docs/scale.html#sqrt), [`\"symlog\"`](https://vega.github.io/vega-lite/docs/scale.html#symlog), [`\"log\"`](https://vega.github.io/vega-lite/docs/scale.html#log), [`\"time\"`](https://vega.github.io/vega-lite/docs/scale.html#time), [`\"utc\"`](https://vega.github.io/vega-lite/docs/scale.html#utc).\n\n2) [**Discrete Scales**](https://vega.github.io/vega-lite/docs/scale.html#discrete) -- mapping discrete domains to discrete ([`\"ordinal\"`](https://vega.github.io/vega-lite/docs/scale.html#ordinal)) or continuous ([`\"band\"`](https://vega.github.io/vega-lite/docs/scale.html#band) and [`\"point\"`](https://vega.github.io/vega-lite/docs/scale.html#point)) output ranges.\n\n3) [**Discretizing Scales**](https://vega.github.io/vega-lite/docs/scale.html#discretizing) -- mapping continuous domains to discrete output ranges [`\"bin-ordinal\"`](https://vega.github.io/vega-lite/docs/scale.html#bin-ordinal), [`\"quantile\"`](https://vega.github.io/vega-lite/docs/scale.html#quantile), [`\"quantize\"`](https://vega.github.io/vega-lite/docs/scale.html#quantize) and [`\"threshold\"`](https://vega.github.io/vega-lite/docs/scale.html#threshold).\n\n__Default value:__ please see the [scale type table](https://vega.github.io/vega-lite/docs/scale.html#type)."
3142
4170
  },
3143
4171
  "zero": {
3144
4172
  "description": "If `true`, ensures that a zero baseline value is included in the scale domain.\n\n__Default value:__ `true` for x and y channels if the quantitative field is not binned and no custom `domain` is provided; `false` otherwise.\n\n__Note:__ Log, time, and utc scales do not support `zero`.",
@@ -3191,6 +4219,26 @@
3191
4219
  ],
3192
4220
  "type": "object"
3193
4221
  },
4222
+ "ScaleType": {
4223
+ "enum": [
4224
+ "null",
4225
+ "linear",
4226
+ "log",
4227
+ "pow",
4228
+ "sqrt",
4229
+ "symlog",
4230
+ "identity",
4231
+ "sequential",
4232
+ "quantize",
4233
+ "threshold",
4234
+ "ordinal",
4235
+ "point",
4236
+ "band",
4237
+ "index",
4238
+ "locus"
4239
+ ],
4240
+ "type": "string"
4241
+ },
3194
4242
  "SchemeParams": {
3195
4243
  "additionalProperties": false,
3196
4244
  "properties": {
@@ -3215,6 +4263,51 @@
3215
4263
  ],
3216
4264
  "type": "object"
3217
4265
  },
4266
+ "SecondaryChromPosDef": {
4267
+ "additionalProperties": false,
4268
+ "properties": {
4269
+ "axis": {
4270
+ "anyOf": [
4271
+ {
4272
+ "$ref": "#/definitions/Axis"
4273
+ },
4274
+ {
4275
+ "type": "null"
4276
+ }
4277
+ ],
4278
+ "description": "An object defining properties of axis's gridlines, ticks and labels. If `null`, the axis for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [axis properties](https://vega.github.io/vega-lite/docs/axis.html) are applied.\n\n__See also:__ [`axis`](https://vega.github.io/vega-lite/docs/axis.html) documentation."
4279
+ },
4280
+ "band": {
4281
+ "description": "Relative position on band scale. For example, the marks will be positioned at the beginning of the band if set to `0`, and at the middle of the band if set to `0.5`.",
4282
+ "maximum": 1,
4283
+ "minimum": 0,
4284
+ "type": "number"
4285
+ },
4286
+ "chrom": {
4287
+ "$ref": "#/definitions/FieldName",
4288
+ "description": "The field having the chromosome or contig."
4289
+ },
4290
+ "offset": {
4291
+ "description": "An offset or offsets that allow for adjusting the numbering base. The offset is subtracted from the positions.\n\nGenomeSpy uses internally zero-based indexing with half-open intervals. UCSC-based formats (BED, etc.) generally use this scheme. However, for example, VCF files use one-based indexing and must be adjusted by setting the offset to `1`.\n\n**Default:** `0`",
4292
+ "type": "number"
4293
+ },
4294
+ "pos": {
4295
+ "$ref": "#/definitions/FieldName",
4296
+ "description": "The field having an intra-chromosomal position."
4297
+ },
4298
+ "title": {
4299
+ "description": "A title for the field. If `null`, the title will be removed.",
4300
+ "type": [
4301
+ "string",
4302
+ "null"
4303
+ ]
4304
+ }
4305
+ },
4306
+ "required": [
4307
+ "chrom"
4308
+ ],
4309
+ "type": "object"
4310
+ },
3218
4311
  "SecondaryPositionalChannel": {
3219
4312
  "enum": [
3220
4313
  "x2",
@@ -3265,6 +4358,9 @@
3265
4358
  ],
3266
4359
  "type": "object"
3267
4360
  },
4361
+ "ShapeDef<string>": {
4362
+ "$ref": "#/definitions/MarkPropDef%3Cstring%2C(string%7Cnull)%2CTypeForShape%3E"
4363
+ },
3268
4364
  "SizeDef": {
3269
4365
  "additionalProperties": false,
3270
4366
  "properties": {
@@ -3354,6 +4450,58 @@
3354
4450
  ],
3355
4451
  "type": "object"
3356
4452
  },
4453
+ "StringDatumDef": {
4454
+ "additionalProperties": false,
4455
+ "properties": {
4456
+ "datum": {
4457
+ "$ref": "#/definitions/Scalar",
4458
+ "description": "A constant value in data domain."
4459
+ },
4460
+ "format": {
4461
+ "description": "When used with the default `\"number\"` format type, the text formatting pattern for labels of guides (axes, legends, headers) and text marks.\n\n- If the format type is `\"number\"` (e.g., for quantitative fields), this is D3's [number format pattern](https://github.com/d3/d3-format#locale_format).\n\nSee the [format documentation](https://vega.github.io/vega-lite/docs/format.html) for more examples.",
4462
+ "type": "string"
4463
+ },
4464
+ "title": {
4465
+ "description": "A title for the field. If `null`, the title will be removed.",
4466
+ "type": [
4467
+ "string",
4468
+ "null"
4469
+ ]
4470
+ }
4471
+ },
4472
+ "type": "object"
4473
+ },
4474
+ "StringFieldDef<string>": {
4475
+ "additionalProperties": false,
4476
+ "properties": {
4477
+ "field": {
4478
+ "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
4479
+ "type": "string"
4480
+ },
4481
+ "format": {
4482
+ "description": "When used with the default `\"number\"` format type, the text formatting pattern for labels of guides (axes, legends, headers) and text marks.\n\n- If the format type is `\"number\"` (e.g., for quantitative fields), this is D3's [number format pattern](https://github.com/d3/d3-format#locale_format).\n\nSee the [format documentation](https://vega.github.io/vega-lite/docs/format.html) for more examples.",
4483
+ "type": "string"
4484
+ },
4485
+ "title": {
4486
+ "description": "A title for the field. If `null`, the title will be removed.",
4487
+ "type": [
4488
+ "string",
4489
+ "null"
4490
+ ]
4491
+ }
4492
+ },
4493
+ "type": "object"
4494
+ },
4495
+ "TextDef<string>": {
4496
+ "anyOf": [
4497
+ {
4498
+ "$ref": "#/definitions/StringFieldDef%3Cstring%3E"
4499
+ },
4500
+ {
4501
+ "$ref": "#/definitions/StringDatumDef"
4502
+ }
4503
+ ]
4504
+ },
3357
4505
  "Tooltip": {
3358
4506
  "anyOf": [
3359
4507
  {
@@ -3425,6 +4573,23 @@
3425
4573
  }
3426
4574
  ]
3427
4575
  },
4576
+ "Type": {
4577
+ "enum": [
4578
+ "quantitative",
4579
+ "ordinal",
4580
+ "nominal",
4581
+ "index",
4582
+ "locus"
4583
+ ],
4584
+ "type": "string"
4585
+ },
4586
+ "TypeForShape": {
4587
+ "enum": [
4588
+ "ordinal",
4589
+ "nominal"
4590
+ ],
4591
+ "type": "string"
4592
+ },
3428
4593
  "UnitSpec": {
3429
4594
  "additionalProperties": false,
3430
4595
  "properties": {
@@ -3742,18 +4907,28 @@
3742
4907
  ],
3743
4908
  "type": "object"
3744
4909
  },
3745
- "ValueDef": {
4910
+ "ValueDef<(string|null)>": {
3746
4911
  "additionalProperties": false,
3747
4912
  "properties": {
3748
- "title": {
4913
+ "value": {
4914
+ "description": "A constant value in visual domain (e.g., `\"red\"` / `\"#0099ff\"`, values between `0` to `1` for opacity).",
3749
4915
  "type": [
3750
4916
  "string",
3751
4917
  "null"
3752
4918
  ]
3753
- },
4919
+ }
4920
+ },
4921
+ "required": [
4922
+ "value"
4923
+ ],
4924
+ "type": "object"
4925
+ },
4926
+ "ValueDef<number>": {
4927
+ "additionalProperties": false,
4928
+ "properties": {
3754
4929
  "value": {
3755
- "$ref": "#/definitions/Scalar",
3756
- "description": "A constant value in the context of the range"
4930
+ "description": "A constant value in visual domain (e.g., `\"red\"` / `\"#0099ff\"`, values between `0` to `1` for opacity).",
4931
+ "type": "number"
3757
4932
  }
3758
4933
  },
3759
4934
  "required": [
@@ -3838,9 +5013,6 @@
3838
5013
  {
3839
5014
  "$ref": "#/definitions/LayerSpec"
3840
5015
  },
3841
- {
3842
- "$ref": "#/definitions/FacetSpec"
3843
- },
3844
5016
  {
3845
5017
  "$ref": "#/definitions/SampleSpec"
3846
5018
  },