@vitessce/constants-internal 2.0.0-beta.0

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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2018
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,76 @@
1
+ import { FileType, DataType, CoordinationType } from './constants';
2
+ /**
3
+ * Mapping from file types to data types. Each file type
4
+ * should correspond to one data type. Multiple file types
5
+ * can map onto the same data type.
6
+ */
7
+ export const FILE_TYPE_DATA_TYPE_MAPPING = {
8
+ // For new file types
9
+ [FileType.OBS_EMBEDDING_CSV]: DataType.OBS_EMBEDDING,
10
+ [FileType.OBS_LOCATIONS_CSV]: DataType.OBS_LOCATIONS,
11
+ [FileType.OBS_LABELS_CSV]: DataType.OBS_LABELS,
12
+ [FileType.FEATURE_LABELS_CSV]: DataType.FEATURE_LABELS,
13
+ [FileType.OBS_FEATURE_MATRIX_CSV]: DataType.OBS_FEATURE_MATRIX,
14
+ [FileType.OBS_SEGMENTATIONS_JSON]: DataType.OBS_SEGMENTATIONS,
15
+ [FileType.OBS_SETS_CSV]: DataType.OBS_SETS,
16
+ [FileType.OBS_SETS_JSON]: DataType.OBS_SETS,
17
+ [FileType.IMAGE_OME_ZARR]: DataType.IMAGE,
18
+ [FileType.OBS_FEATURE_MATRIX_ANNDATA_ZARR]: DataType.OBS_FEATURE_MATRIX,
19
+ [FileType.OBS_SETS_ANNDATA_ZARR]: DataType.OBS_SETS,
20
+ [FileType.OBS_EMBEDDING_ANNDATA_ZARR]: DataType.OBS_EMBEDDING,
21
+ [FileType.OBS_LOCATIONS_ANNDATA_ZARR]: DataType.OBS_LOCATIONS,
22
+ [FileType.OBS_SEGMENTATIONS_ANNDATA_ZARR]: DataType.OBS_SEGMENTATIONS,
23
+ [FileType.OBS_LABELS_ANNDATA_ZARR]: DataType.OBS_LABELS,
24
+ [FileType.FEATURE_LABELS_ANNDATA_ZARR]: DataType.FEATURE_LABELS,
25
+ // For new file types to support old file types
26
+ [FileType.OBS_EMBEDDING_CELLS_JSON]: DataType.OBS_EMBEDDING,
27
+ [FileType.OBS_LOCATIONS_CELLS_JSON]: DataType.OBS_LOCATIONS,
28
+ [FileType.OBS_SEGMENTATIONS_CELLS_JSON]: DataType.OBS_SEGMENTATIONS,
29
+ [FileType.OBS_LABELS_CELLS_JSON]: DataType.OBS_LABELS,
30
+ [FileType.OBS_SETS_CELL_SETS_JSON]: DataType.OBS_SETS,
31
+ [FileType.OBS_FEATURE_MATRIX_GENES_JSON]: DataType.OBS_FEATURE_MATRIX,
32
+ [FileType.OBS_FEATURE_MATRIX_CLUSTERS_JSON]: DataType.OBS_FEATURE_MATRIX,
33
+ [FileType.OBS_FEATURE_MATRIX_EXPRESSION_MATRIX_ZARR]: DataType.OBS_FEATURE_MATRIX,
34
+ [FileType.IMAGE_RASTER_JSON]: DataType.IMAGE,
35
+ [FileType.OBS_SEGMENTATIONS_RASTER_JSON]: DataType.OBS_SEGMENTATIONS,
36
+ [FileType.OBS_LOCATIONS_MOLECULES_JSON]: DataType.OBS_LOCATIONS,
37
+ [FileType.OBS_LABELS_MOLECULES_JSON]: DataType.OBS_LABELS,
38
+ // For old file types
39
+ [FileType.GENOMIC_PROFILES_ZARR]: DataType.GENOMIC_PROFILES,
40
+ [FileType.NEIGHBORHOODS_JSON]: DataType.NEIGHBORHOODS,
41
+ };
42
+ /**
43
+ * Store a mapping from data types to the coordination types used
44
+ * for matching using the coordinationValues field of file definitions.
45
+ * This enables inferring default values, simplifying view config writing.
46
+ */
47
+ export const DATA_TYPE_COORDINATION_VALUE_USAGE = {
48
+ [DataType.OBS_SEGMENTATIONS]: [
49
+ CoordinationType.OBS_TYPE,
50
+ ],
51
+ [DataType.OBS_EMBEDDING]: [
52
+ CoordinationType.OBS_TYPE,
53
+ CoordinationType.EMBEDDING_TYPE,
54
+ ],
55
+ [DataType.OBS_LOCATIONS]: [
56
+ CoordinationType.OBS_TYPE,
57
+ ],
58
+ [DataType.OBS_LABELS]: [
59
+ CoordinationType.OBS_TYPE,
60
+ CoordinationType.OBS_LABELS_TYPE,
61
+ ],
62
+ [DataType.FEATURE_LABELS]: [
63
+ CoordinationType.FEATURE_TYPE,
64
+ ],
65
+ [DataType.OBS_SETS]: [
66
+ CoordinationType.OBS_TYPE,
67
+ ],
68
+ [DataType.OBS_FEATURE_MATRIX]: [
69
+ CoordinationType.OBS_TYPE,
70
+ CoordinationType.FEATURE_TYPE,
71
+ CoordinationType.FEATURE_VALUE_TYPE,
72
+ ],
73
+ [DataType.GENOMIC_PROFILES]: [],
74
+ [DataType.IMAGE]: [],
75
+ [DataType.NEIGHBORHOODS]: [],
76
+ };
@@ -0,0 +1,11 @@
1
+ import { DataType } from './constants';
2
+ import { DATA_TYPE_COORDINATION_VALUE_USAGE, } from './constant-relationships';
3
+ describe('src/app/constant-relationships.js', () => {
4
+ describe('DataType-to-CoordinationType usage mapping', () => {
5
+ it('every data type is mapped to an array of coordination types', () => {
6
+ const dataTypes = Object.values(DataType).sort();
7
+ const mappedDataTypes = Object.keys(DATA_TYPE_COORDINATION_VALUE_USAGE).sort();
8
+ expect(dataTypes.length).toEqual(mappedDataTypes.length);
9
+ });
10
+ });
11
+ });
@@ -0,0 +1,159 @@
1
+ /**
2
+ * This file defines the current constant values.
3
+ * To deprecate a value, add it to ./constants-old.js
4
+ * with a corresponding log message.
5
+ */
6
+ export const ViewType = {
7
+ DESCRIPTION: 'description',
8
+ STATUS: 'status',
9
+ SCATTERPLOT: 'scatterplot',
10
+ SPATIAL: 'spatial',
11
+ HEATMAP: 'heatmap',
12
+ LAYER_CONTROLLER: 'layerController',
13
+ GENOMIC_PROFILES: 'genomicProfiles',
14
+ GATING: 'gating',
15
+ FEATURE_LIST: 'featureList',
16
+ OBS_SETS: 'obsSets',
17
+ OBS_SET_SIZES: 'obsSetSizes',
18
+ OBS_SET_FEATURE_VALUE_DISTRIBUTION: 'obsSetFeatureValueDistribution',
19
+ FEATURE_VALUE_HISTOGRAM: 'featureValueHistogram',
20
+ };
21
+ export const DataType = {
22
+ OBS_LABELS: 'obsLabels',
23
+ OBS_EMBEDDING: 'obsEmbedding',
24
+ OBS_LOCATIONS: 'obsLocations',
25
+ OBS_FEATURE_MATRIX: 'obsFeatureMatrix',
26
+ OBS_SETS: 'obsSets',
27
+ FEATURE_LABELS: 'featureLabels',
28
+ IMAGE: 'image',
29
+ OBS_SEGMENTATIONS: 'obsSegmentations',
30
+ NEIGHBORHOODS: 'neighborhoods',
31
+ GENOMIC_PROFILES: 'genomic-profiles',
32
+ };
33
+ export const FileType = {
34
+ // Joint file types
35
+ ANNDATA_ZARR: 'anndata.zarr',
36
+ // Atomic file types
37
+ OBS_EMBEDDING_CSV: 'obsEmbedding.csv',
38
+ OBS_LOCATIONS_CSV: 'obsLocations.csv',
39
+ OBS_LABELS_CSV: 'obsLabels.csv',
40
+ FEATURE_LABELS_CSV: 'featureLabels.csv',
41
+ OBS_FEATURE_MATRIX_CSV: 'obsFeatureMatrix.csv',
42
+ OBS_SEGMENTATIONS_JSON: 'obsSegmentations.json',
43
+ OBS_SETS_CSV: 'obsSets.csv',
44
+ OBS_SETS_JSON: 'obsSets.json',
45
+ IMAGE_OME_ZARR: 'image.ome-zarr',
46
+ OBS_FEATURE_MATRIX_ANNDATA_ZARR: 'obsFeatureMatrix.anndata.zarr',
47
+ OBS_SETS_ANNDATA_ZARR: 'obsSets.anndata.zarr',
48
+ OBS_EMBEDDING_ANNDATA_ZARR: 'obsEmbedding.anndata.zarr',
49
+ OBS_LOCATIONS_ANNDATA_ZARR: 'obsLocations.anndata.zarr',
50
+ OBS_SEGMENTATIONS_ANNDATA_ZARR: 'obsSegmentations.anndata.zarr',
51
+ OBS_LABELS_ANNDATA_ZARR: 'obsLabels.anndata.zarr',
52
+ FEATURE_LABELS_ANNDATA_ZARR: 'featureLabels.anndata.zarr',
53
+ GENOMIC_PROFILES_ZARR: 'genomic-profiles.zarr',
54
+ NEIGHBORHOODS_JSON: 'neighborhoods.json',
55
+ // New file types to support old file types:
56
+ // - cells.json
57
+ OBS_EMBEDDING_CELLS_JSON: 'obsEmbedding.cells.json',
58
+ OBS_SEGMENTATIONS_CELLS_JSON: 'obsSegmentations.cells.json',
59
+ OBS_LOCATIONS_CELLS_JSON: 'obsLocations.cells.json',
60
+ OBS_LABELS_CELLS_JSON: 'obsLabels.cells.json',
61
+ // - cell-sets.json
62
+ OBS_SETS_CELL_SETS_JSON: 'obsSets.cell-sets.json',
63
+ // - genes.json
64
+ OBS_FEATURE_MATRIX_GENES_JSON: 'obsFeatureMatrix.genes.json',
65
+ // - clusters.json
66
+ OBS_FEATURE_MATRIX_CLUSTERS_JSON: 'obsFeatureMatrix.clusters.json',
67
+ // - expression-matrix.zarr
68
+ OBS_FEATURE_MATRIX_EXPRESSION_MATRIX_ZARR: 'obsFeatureMatrix.expression-matrix.zarr',
69
+ // - raster.json
70
+ IMAGE_RASTER_JSON: 'image.raster.json',
71
+ OBS_SEGMENTATIONS_RASTER_JSON: 'obsSegmentations.raster.json',
72
+ // - molecules.json
73
+ OBS_LOCATIONS_MOLECULES_JSON: 'obsLocations.molecules.json',
74
+ OBS_LABELS_MOLECULES_JSON: 'obsLabels.molecules.json',
75
+ // Legacy joint file types
76
+ CELLS_JSON: 'cells.json',
77
+ CELL_SETS_JSON: 'cell-sets.json',
78
+ ANNDATA_CELL_SETS_ZARR: 'anndata-cell-sets.zarr',
79
+ ANNDATA_CELLS_ZARR: 'anndata-cells.zarr',
80
+ EXPRESSION_MATRIX_ZARR: 'expression-matrix.zarr',
81
+ MOLECULES_JSON: 'molecules.json',
82
+ RASTER_JSON: 'raster.json',
83
+ RASTER_OME_ZARR: 'raster.ome-zarr',
84
+ CLUSTERS_JSON: 'clusters.json',
85
+ GENES_JSON: 'genes.json',
86
+ ANNDATA_EXPRESSION_MATRIX_ZARR: 'anndata-expression-matrix.zarr',
87
+ };
88
+ /**
89
+ * Constants representing names of coordination types,
90
+ * to help prevent typos.
91
+ */
92
+ export const CoordinationType = {
93
+ DATASET: 'dataset',
94
+ // Entity types
95
+ OBS_TYPE: 'obsType',
96
+ FEATURE_TYPE: 'featureType',
97
+ FEATURE_VALUE_TYPE: 'featureValueType',
98
+ OBS_LABELS_TYPE: 'obsLabelsType',
99
+ // Other types
100
+ EMBEDDING_TYPE: 'embeddingType',
101
+ EMBEDDING_ZOOM: 'embeddingZoom',
102
+ EMBEDDING_ROTATION: 'embeddingRotation',
103
+ EMBEDDING_TARGET_X: 'embeddingTargetX',
104
+ EMBEDDING_TARGET_Y: 'embeddingTargetY',
105
+ EMBEDDING_TARGET_Z: 'embeddingTargetZ',
106
+ EMBEDDING_OBS_SET_POLYGONS_VISIBLE: 'embeddingObsSetPolygonsVisible',
107
+ EMBEDDING_OBS_SET_LABELS_VISIBLE: 'embeddingObsSetLabelsVisible',
108
+ EMBEDDING_OBS_SET_LABEL_SIZE: 'embeddingObsSetLabelSize',
109
+ EMBEDDING_OBS_RADIUS: 'embeddingObsRadius',
110
+ EMBEDDING_OBS_RADIUS_MODE: 'embeddingObsRadiusMode',
111
+ EMBEDDING_OBS_OPACITY: 'embeddingObsOpacity',
112
+ EMBEDDING_OBS_OPACITY_MODE: 'embeddingObsOpacityMode',
113
+ SPATIAL_ZOOM: 'spatialZoom',
114
+ SPATIAL_ROTATION: 'spatialRotation',
115
+ SPATIAL_TARGET_X: 'spatialTargetX',
116
+ SPATIAL_TARGET_Y: 'spatialTargetY',
117
+ SPATIAL_TARGET_Z: 'spatialTargetZ',
118
+ SPATIAL_ROTATION_X: 'spatialRotationX',
119
+ SPATIAL_ROTATION_Y: 'spatialRotationY',
120
+ SPATIAL_ROTATION_Z: 'spatialRotationZ',
121
+ SPATIAL_ROTATION_ORBIT: 'spatialRotationOrbit',
122
+ SPATIAL_ORBIT_AXIS: 'spatialOrbitAxis',
123
+ SPATIAL_AXIS_FIXED: 'spatialAxisFixed',
124
+ HEATMAP_ZOOM_X: 'heatmapZoomX',
125
+ HEATMAP_ZOOM_Y: 'heatmapZoomY',
126
+ HEATMAP_TARGET_X: 'heatmapTargetX',
127
+ HEATMAP_TARGET_Y: 'heatmapTargetY',
128
+ OBS_FILTER: 'obsFilter',
129
+ OBS_HIGHLIGHT: 'obsHighlight',
130
+ OBS_SET_SELECTION: 'obsSetSelection',
131
+ OBS_SET_HIGHLIGHT: 'obsSetHighlight',
132
+ OBS_SET_COLOR: 'obsSetColor',
133
+ FEATURE_FILTER: 'featureFilter',
134
+ FEATURE_HIGHLIGHT: 'featureHighlight',
135
+ FEATURE_SELECTION: 'featureSelection',
136
+ FEATURE_VALUE_COLORMAP: 'featureValueColormap',
137
+ FEATURE_VALUE_TRANSFORM: 'featureValueTransform',
138
+ FEATURE_VALUE_COLORMAP_RANGE: 'featureValueColormapRange',
139
+ OBS_COLOR_ENCODING: 'obsColorEncoding',
140
+ SPATIAL_IMAGE_LAYER: 'spatialImageLayer',
141
+ SPATIAL_SEGMENTATION_LAYER: 'spatialSegmentationLayer',
142
+ SPATIAL_POINT_LAYER: 'spatialPointLayer',
143
+ SPATIAL_NEIGHBORHOOD_LAYER: 'spatialNeighborhoodLayer',
144
+ GENOMIC_ZOOM_X: 'genomicZoomX',
145
+ GENOMIC_ZOOM_Y: 'genomicZoomY',
146
+ GENOMIC_TARGET_X: 'genomicTargetX',
147
+ GENOMIC_TARGET_Y: 'genomicTargetY',
148
+ ADDITIONAL_OBS_SETS: 'additionalObsSets',
149
+ // TODO: use obsHighlight rather than moleculeHighlight.
150
+ MOLECULE_HIGHLIGHT: 'moleculeHighlight',
151
+ GATING_FEATURE_SELECTION_X: 'gatingFeatureSelectionX',
152
+ GATING_FEATURE_SELECTION_Y: 'gatingFeatureSelectionY',
153
+ FEATURE_VALUE_TRANSFORM_COEFFICIENT: 'featureValueTransformCoefficient',
154
+ };
155
+ export const STATUS = {
156
+ LOADING: 'loading',
157
+ SUCCESS: 'success',
158
+ ERROR: 'error',
159
+ };
@@ -0,0 +1,323 @@
1
+ import { CoordinationType, ViewType } from './constants';
2
+ /**
3
+ * Coordination types may have default values,
4
+ * which can be defined here, and used by the
5
+ * auto initialization strategy.
6
+ */
7
+ export const DEFAULT_COORDINATION_VALUES = {
8
+ [CoordinationType.OBS_TYPE]: 'cell',
9
+ [CoordinationType.FEATURE_TYPE]: 'gene',
10
+ [CoordinationType.FEATURE_VALUE_TYPE]: 'expression',
11
+ [CoordinationType.OBS_LABELS_TYPE]: null,
12
+ [CoordinationType.EMBEDDING_ZOOM]: null,
13
+ [CoordinationType.EMBEDDING_ROTATION]: 0,
14
+ [CoordinationType.EMBEDDING_TARGET_X]: null,
15
+ [CoordinationType.EMBEDDING_TARGET_Y]: null,
16
+ [CoordinationType.EMBEDDING_TARGET_Z]: 0,
17
+ [CoordinationType.EMBEDDING_OBS_SET_POLYGONS_VISIBLE]: false,
18
+ [CoordinationType.EMBEDDING_OBS_SET_LABELS_VISIBLE]: false,
19
+ [CoordinationType.EMBEDDING_OBS_SET_LABEL_SIZE]: 14,
20
+ [CoordinationType.EMBEDDING_OBS_RADIUS]: 1,
21
+ [CoordinationType.EMBEDDING_OBS_RADIUS_MODE]: 'auto',
22
+ [CoordinationType.EMBEDDING_OBS_OPACITY]: 1,
23
+ [CoordinationType.EMBEDDING_OBS_OPACITY_MODE]: 'auto',
24
+ [CoordinationType.SPATIAL_ZOOM]: null,
25
+ [CoordinationType.SPATIAL_ROTATION]: 0,
26
+ [CoordinationType.SPATIAL_TARGET_X]: null,
27
+ [CoordinationType.SPATIAL_TARGET_Y]: null,
28
+ [CoordinationType.SPATIAL_TARGET_Z]: null,
29
+ [CoordinationType.SPATIAL_ROTATION_X]: null,
30
+ [CoordinationType.SPATIAL_ROTATION_Y]: null,
31
+ [CoordinationType.SPATIAL_ROTATION_Z]: null,
32
+ [CoordinationType.SPATIAL_AXIS_FIXED]: false,
33
+ [CoordinationType.SPATIAL_ROTATION_ORBIT]: 0,
34
+ [CoordinationType.SPATIAL_ORBIT_AXIS]: 'Y',
35
+ [CoordinationType.SPATIAL_IMAGE_LAYER]: null,
36
+ [CoordinationType.SPATIAL_SEGMENTATION_LAYER]: null,
37
+ [CoordinationType.SPATIAL_POINT_LAYER]: null,
38
+ [CoordinationType.SPATIAL_NEIGHBORHOOD_LAYER]: null,
39
+ [CoordinationType.HEATMAP_ZOOM_X]: 0,
40
+ [CoordinationType.HEATMAP_ZOOM_Y]: 0,
41
+ [CoordinationType.HEATMAP_TARGET_X]: 0,
42
+ [CoordinationType.HEATMAP_TARGET_Y]: 0,
43
+ [CoordinationType.FEATURE_VALUE_COLORMAP]: 'plasma',
44
+ [CoordinationType.FEATURE_VALUE_COLORMAP_RANGE]: [0.0, 1.0],
45
+ [CoordinationType.FEATURE_VALUE_TRANSFORM]: null,
46
+ [CoordinationType.FEATURE_VALUE_TRANSFORM_COEFFICIENT]: 1,
47
+ [CoordinationType.FEATURE_FILTER]: null,
48
+ [CoordinationType.FEATURE_HIGHLIGHT]: null,
49
+ [CoordinationType.FEATURE_SELECTION]: null,
50
+ [CoordinationType.OBS_FILTER]: null,
51
+ [CoordinationType.OBS_HIGHLIGHT]: null,
52
+ [CoordinationType.OBS_SET_SELECTION]: null,
53
+ [CoordinationType.OBS_SET_HIGHLIGHT]: null,
54
+ [CoordinationType.OBS_SET_COLOR]: null,
55
+ [CoordinationType.OBS_COLOR_ENCODING]: 'cellSetSelection',
56
+ [CoordinationType.GENOMIC_ZOOM_X]: 0,
57
+ [CoordinationType.GENOMIC_ZOOM_Y]: 0,
58
+ [CoordinationType.GENOMIC_TARGET_X]: 1549999999.5,
59
+ [CoordinationType.GENOMIC_TARGET_Y]: 1549999999.5,
60
+ [CoordinationType.ADDITIONAL_OBS_SETS]: null,
61
+ [CoordinationType.MOLECULE_HIGHLIGHT]: null,
62
+ [CoordinationType.GATING_FEATURE_SELECTION_X]: null,
63
+ [CoordinationType.GATING_FEATURE_SELECTION_Y]: null,
64
+ };
65
+ // The following coordination types should be
66
+ // initialized to independent scopes when
67
+ // initialized automatically.
68
+ // These make the resulting view config
69
+ // (after auto-initialization) behave
70
+ // like "legacy" Vitessce (pre-coordination model).
71
+ export const AUTO_INDEPENDENT_COORDINATION_TYPES = [
72
+ CoordinationType.HEATMAP_ZOOM_X,
73
+ CoordinationType.HEATMAP_ZOOM_Y,
74
+ CoordinationType.HEATMAP_TARGET_X,
75
+ CoordinationType.HEATMAP_TARGET_Y,
76
+ CoordinationType.EMBEDDING_ZOOM,
77
+ CoordinationType.EMBEDDING_TARGET_X,
78
+ CoordinationType.EMBEDDING_TARGET_Y,
79
+ CoordinationType.EMBEDDING_TARGET_Z,
80
+ CoordinationType.EMBEDDING_OBS_SET_POLYGONS_VISIBLE,
81
+ CoordinationType.EMBEDDING_OBS_SET_LABELS_VISIBLE,
82
+ CoordinationType.EMBEDDING_OBS_SET_LABEL_SIZE,
83
+ CoordinationType.EMBEDDING_OBS_RADIUS,
84
+ CoordinationType.EMBEDDING_OBS_OPACITY,
85
+ ];
86
+ /**
87
+ * Mapping from component type to
88
+ * supported coordination object types.
89
+ * This mapping can be used to determine
90
+ * which pieces of state that a component will
91
+ * need to get/set.
92
+ * Keys here are the component registry keys.
93
+ */
94
+ export const COMPONENT_COORDINATION_TYPES = {
95
+ [ViewType.SCATTERPLOT]: [
96
+ CoordinationType.DATASET,
97
+ CoordinationType.OBS_TYPE,
98
+ CoordinationType.FEATURE_TYPE,
99
+ CoordinationType.FEATURE_VALUE_TYPE,
100
+ CoordinationType.OBS_LABELS_TYPE,
101
+ CoordinationType.EMBEDDING_TYPE,
102
+ CoordinationType.EMBEDDING_ZOOM,
103
+ CoordinationType.EMBEDDING_ROTATION,
104
+ CoordinationType.EMBEDDING_TARGET_X,
105
+ CoordinationType.EMBEDDING_TARGET_Y,
106
+ CoordinationType.EMBEDDING_TARGET_Z,
107
+ CoordinationType.EMBEDDING_OBS_SET_POLYGONS_VISIBLE,
108
+ CoordinationType.EMBEDDING_OBS_SET_LABELS_VISIBLE,
109
+ CoordinationType.EMBEDDING_OBS_SET_LABEL_SIZE,
110
+ CoordinationType.EMBEDDING_OBS_RADIUS,
111
+ CoordinationType.EMBEDDING_OBS_RADIUS_MODE,
112
+ CoordinationType.EMBEDDING_OBS_OPACITY,
113
+ CoordinationType.EMBEDDING_OBS_OPACITY_MODE,
114
+ CoordinationType.OBS_FILTER,
115
+ CoordinationType.OBS_HIGHLIGHT,
116
+ CoordinationType.OBS_SET_SELECTION,
117
+ CoordinationType.OBS_SET_HIGHLIGHT,
118
+ CoordinationType.OBS_SET_COLOR,
119
+ CoordinationType.FEATURE_HIGHLIGHT,
120
+ CoordinationType.FEATURE_SELECTION,
121
+ CoordinationType.FEATURE_VALUE_COLORMAP,
122
+ CoordinationType.FEATURE_VALUE_COLORMAP_RANGE,
123
+ CoordinationType.OBS_COLOR_ENCODING,
124
+ CoordinationType.ADDITIONAL_OBS_SETS,
125
+ ],
126
+ [ViewType.GATING]: [
127
+ CoordinationType.DATASET,
128
+ CoordinationType.OBS_TYPE,
129
+ CoordinationType.FEATURE_TYPE,
130
+ CoordinationType.FEATURE_VALUE_TYPE,
131
+ CoordinationType.EMBEDDING_TYPE,
132
+ CoordinationType.EMBEDDING_ZOOM,
133
+ CoordinationType.EMBEDDING_ROTATION,
134
+ CoordinationType.EMBEDDING_TARGET_X,
135
+ CoordinationType.EMBEDDING_TARGET_Y,
136
+ CoordinationType.EMBEDDING_TARGET_Z,
137
+ CoordinationType.EMBEDDING_OBS_SET_POLYGONS_VISIBLE,
138
+ CoordinationType.EMBEDDING_OBS_SET_LABELS_VISIBLE,
139
+ CoordinationType.EMBEDDING_OBS_SET_LABEL_SIZE,
140
+ CoordinationType.EMBEDDING_OBS_RADIUS,
141
+ CoordinationType.EMBEDDING_OBS_RADIUS_MODE,
142
+ CoordinationType.EMBEDDING_OBS_OPACITY,
143
+ CoordinationType.EMBEDDING_OBS_OPACITY_MODE,
144
+ CoordinationType.OBS_FILTER,
145
+ CoordinationType.OBS_HIGHLIGHT,
146
+ CoordinationType.OBS_SET_SELECTION,
147
+ CoordinationType.OBS_SET_HIGHLIGHT,
148
+ CoordinationType.OBS_SET_COLOR,
149
+ CoordinationType.FEATURE_HIGHLIGHT,
150
+ CoordinationType.FEATURE_SELECTION,
151
+ CoordinationType.FEATURE_VALUE_COLORMAP,
152
+ CoordinationType.FEATURE_VALUE_COLORMAP_RANGE,
153
+ CoordinationType.OBS_COLOR_ENCODING,
154
+ CoordinationType.ADDITIONAL_OBS_SETS,
155
+ CoordinationType.FEATURE_VALUE_TRANSFORM,
156
+ CoordinationType.FEATURE_VALUE_TRANSFORM_COEFFICIENT,
157
+ CoordinationType.GATING_FEATURE_SELECTION_X,
158
+ CoordinationType.GATING_FEATURE_SELECTION_Y,
159
+ ],
160
+ [ViewType.SPATIAL]: [
161
+ CoordinationType.DATASET,
162
+ CoordinationType.OBS_TYPE,
163
+ CoordinationType.OBS_LABELS_TYPE,
164
+ CoordinationType.FEATURE_TYPE,
165
+ CoordinationType.FEATURE_VALUE_TYPE,
166
+ CoordinationType.SPATIAL_ZOOM,
167
+ CoordinationType.SPATIAL_ROTATION,
168
+ CoordinationType.SPATIAL_IMAGE_LAYER,
169
+ CoordinationType.SPATIAL_SEGMENTATION_LAYER,
170
+ CoordinationType.SPATIAL_POINT_LAYER,
171
+ CoordinationType.SPATIAL_NEIGHBORHOOD_LAYER,
172
+ CoordinationType.SPATIAL_TARGET_X,
173
+ CoordinationType.SPATIAL_TARGET_Y,
174
+ CoordinationType.SPATIAL_TARGET_Z,
175
+ CoordinationType.SPATIAL_ROTATION_X,
176
+ CoordinationType.SPATIAL_ROTATION_Y,
177
+ CoordinationType.SPATIAL_ROTATION_Z,
178
+ CoordinationType.SPATIAL_ROTATION_ORBIT,
179
+ CoordinationType.SPATIAL_ORBIT_AXIS,
180
+ CoordinationType.SPATIAL_AXIS_FIXED,
181
+ CoordinationType.OBS_FILTER,
182
+ CoordinationType.OBS_HIGHLIGHT,
183
+ CoordinationType.OBS_SET_SELECTION,
184
+ CoordinationType.OBS_SET_HIGHLIGHT,
185
+ CoordinationType.OBS_SET_COLOR,
186
+ CoordinationType.FEATURE_HIGHLIGHT,
187
+ CoordinationType.FEATURE_SELECTION,
188
+ CoordinationType.FEATURE_VALUE_COLORMAP,
189
+ CoordinationType.FEATURE_VALUE_COLORMAP_RANGE,
190
+ CoordinationType.OBS_COLOR_ENCODING,
191
+ CoordinationType.ADDITIONAL_OBS_SETS,
192
+ CoordinationType.MOLECULE_HIGHLIGHT,
193
+ ],
194
+ [ViewType.HEATMAP]: [
195
+ CoordinationType.DATASET,
196
+ CoordinationType.OBS_TYPE,
197
+ CoordinationType.OBS_LABELS_TYPE,
198
+ CoordinationType.FEATURE_TYPE,
199
+ CoordinationType.FEATURE_VALUE_TYPE,
200
+ CoordinationType.HEATMAP_ZOOM_X,
201
+ CoordinationType.HEATMAP_ZOOM_Y,
202
+ CoordinationType.HEATMAP_TARGET_X,
203
+ CoordinationType.HEATMAP_TARGET_Y,
204
+ CoordinationType.OBS_FILTER,
205
+ CoordinationType.OBS_HIGHLIGHT,
206
+ CoordinationType.OBS_SET_SELECTION,
207
+ CoordinationType.OBS_SET_HIGHLIGHT,
208
+ CoordinationType.OBS_SET_COLOR,
209
+ CoordinationType.FEATURE_FILTER,
210
+ CoordinationType.FEATURE_HIGHLIGHT,
211
+ CoordinationType.FEATURE_SELECTION,
212
+ CoordinationType.FEATURE_VALUE_COLORMAP,
213
+ CoordinationType.FEATURE_VALUE_COLORMAP_RANGE,
214
+ CoordinationType.OBS_COLOR_ENCODING,
215
+ CoordinationType.ADDITIONAL_OBS_SETS,
216
+ ],
217
+ [ViewType.OBS_SETS]: [
218
+ CoordinationType.DATASET,
219
+ CoordinationType.OBS_TYPE,
220
+ CoordinationType.OBS_SET_SELECTION,
221
+ CoordinationType.OBS_SET_HIGHLIGHT,
222
+ CoordinationType.OBS_SET_COLOR,
223
+ CoordinationType.OBS_COLOR_ENCODING,
224
+ CoordinationType.ADDITIONAL_OBS_SETS,
225
+ CoordinationType.FEATURE_SELECTION,
226
+ ],
227
+ [ViewType.OBS_SET_SIZES]: [
228
+ CoordinationType.DATASET,
229
+ CoordinationType.OBS_TYPE,
230
+ CoordinationType.OBS_SET_SELECTION,
231
+ CoordinationType.OBS_SET_HIGHLIGHT,
232
+ CoordinationType.OBS_SET_COLOR,
233
+ CoordinationType.ADDITIONAL_OBS_SETS,
234
+ ],
235
+ [ViewType.STATUS]: [
236
+ CoordinationType.DATASET,
237
+ CoordinationType.OBS_HIGHLIGHT,
238
+ CoordinationType.FEATURE_HIGHLIGHT,
239
+ CoordinationType.OBS_SET_HIGHLIGHT,
240
+ CoordinationType.MOLECULE_HIGHLIGHT,
241
+ ],
242
+ [ViewType.FEATURE_LIST]: [
243
+ CoordinationType.DATASET,
244
+ CoordinationType.OBS_TYPE,
245
+ CoordinationType.FEATURE_TYPE,
246
+ CoordinationType.FEATURE_VALUE_TYPE,
247
+ CoordinationType.FEATURE_FILTER,
248
+ CoordinationType.FEATURE_HIGHLIGHT,
249
+ CoordinationType.FEATURE_SELECTION,
250
+ CoordinationType.OBS_COLOR_ENCODING,
251
+ CoordinationType.OBS_SET_SELECTION,
252
+ ],
253
+ [ViewType.OBS_SET_FEATURE_VALUE_DISTRIBUTION]: [
254
+ CoordinationType.DATASET,
255
+ CoordinationType.OBS_TYPE,
256
+ CoordinationType.FEATURE_TYPE,
257
+ CoordinationType.FEATURE_VALUE_TYPE,
258
+ CoordinationType.FEATURE_SELECTION,
259
+ CoordinationType.FEATURE_VALUE_TRANSFORM,
260
+ CoordinationType.FEATURE_VALUE_TRANSFORM_COEFFICIENT,
261
+ CoordinationType.OBS_SET_SELECTION,
262
+ CoordinationType.OBS_SET_HIGHLIGHT,
263
+ CoordinationType.OBS_SET_COLOR,
264
+ CoordinationType.ADDITIONAL_OBS_SETS,
265
+ ],
266
+ [ViewType.FEATURE_VALUE_HISTOGRAM]: [
267
+ CoordinationType.DATASET,
268
+ CoordinationType.OBS_TYPE,
269
+ CoordinationType.FEATURE_TYPE,
270
+ CoordinationType.FEATURE_VALUE_TYPE,
271
+ CoordinationType.FEATURE_SELECTION,
272
+ ],
273
+ [ViewType.LAYER_CONTROLLER]: [
274
+ CoordinationType.DATASET,
275
+ CoordinationType.OBS_TYPE,
276
+ CoordinationType.FEATURE_TYPE,
277
+ CoordinationType.FEATURE_VALUE_TYPE,
278
+ CoordinationType.SPATIAL_IMAGE_LAYER,
279
+ CoordinationType.SPATIAL_SEGMENTATION_LAYER,
280
+ CoordinationType.SPATIAL_POINT_LAYER,
281
+ CoordinationType.SPATIAL_NEIGHBORHOOD_LAYER,
282
+ CoordinationType.SPATIAL_ZOOM,
283
+ CoordinationType.SPATIAL_TARGET_X,
284
+ CoordinationType.SPATIAL_TARGET_Y,
285
+ CoordinationType.SPATIAL_TARGET_Z,
286
+ CoordinationType.SPATIAL_ROTATION_X,
287
+ CoordinationType.SPATIAL_ROTATION_Y,
288
+ CoordinationType.SPATIAL_ROTATION_Z,
289
+ CoordinationType.SPATIAL_ROTATION_ORBIT,
290
+ CoordinationType.SPATIAL_ORBIT_AXIS,
291
+ ],
292
+ [ViewType.GENOMIC_PROFILES]: [
293
+ CoordinationType.DATASET,
294
+ CoordinationType.OBS_TYPE,
295
+ CoordinationType.FEATURE_TYPE,
296
+ CoordinationType.FEATURE_VALUE_TYPE,
297
+ CoordinationType.GENOMIC_ZOOM_X,
298
+ CoordinationType.GENOMIC_ZOOM_Y,
299
+ CoordinationType.GENOMIC_TARGET_X,
300
+ CoordinationType.GENOMIC_TARGET_Y,
301
+ CoordinationType.FEATURE_FILTER,
302
+ CoordinationType.FEATURE_HIGHLIGHT,
303
+ CoordinationType.FEATURE_SELECTION,
304
+ CoordinationType.OBS_SET_SELECTION,
305
+ CoordinationType.OBS_SET_HIGHLIGHT,
306
+ CoordinationType.OBS_SET_COLOR,
307
+ CoordinationType.ADDITIONAL_OBS_SETS,
308
+ ],
309
+ [ViewType.DESCRIPTION]: [
310
+ CoordinationType.DATASET,
311
+ CoordinationType.SPATIAL_IMAGE_LAYER,
312
+ ],
313
+ higlass: [
314
+ CoordinationType.DATASET,
315
+ CoordinationType.GENOMIC_ZOOM_X,
316
+ CoordinationType.GENOMIC_ZOOM_Y,
317
+ CoordinationType.GENOMIC_TARGET_X,
318
+ CoordinationType.GENOMIC_TARGET_Y,
319
+ CoordinationType.FEATURE_FILTER,
320
+ CoordinationType.FEATURE_HIGHLIGHT,
321
+ CoordinationType.FEATURE_SELECTION,
322
+ ],
323
+ };
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { ViewType, DataType, FileType, CoordinationType, STATUS, } from './constants';
2
+ export { FILE_TYPE_DATA_TYPE_MAPPING, DATA_TYPE_COORDINATION_VALUE_USAGE } from './constant-relationships';
3
+ export { DEFAULT_COORDINATION_VALUES, AUTO_INDEPENDENT_COORDINATION_TYPES, COMPONENT_COORDINATION_TYPES } from './coordination';
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@vitessce/constants-internal",
3
+ "version": "2.0.0-beta.0",
4
+ "author": "Gehlenborg Lab",
5
+ "homepage": "http://vitessce.io",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/vitessce/vitessce.git"
9
+ },
10
+ "license": "MIT",
11
+ "main": "dist/index.js",
12
+ "files": [
13
+ "dist"
14
+ ],
15
+ "devDependencies": {
16
+ "vite": "^3.0.0",
17
+ "vitest": "^0.23.4"
18
+ },
19
+ "scripts": {
20
+ "start": "tsc --watch",
21
+ "build": "tsc",
22
+ "test": "pnpm exec vitest --run -r ../../ --dir ."
23
+ }
24
+ }