@vitessce/all 2.0.3-beta.0 → 3.0.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.
Files changed (45) hide show
  1. package/dist/deflate-f57b3163.js +13 -0
  2. package/dist/hglib-1422f224.js +138925 -0
  3. package/dist/index-3f1c1764.js +258272 -0
  4. package/dist/index.js +12 -2
  5. package/dist/jpeg-e740c9a5.js +840 -0
  6. package/dist/lerc-01e6c4d8.js +2006 -0
  7. package/dist/lzw-865bd058.js +128 -0
  8. package/dist/packbits-d4191efd.js +30 -0
  9. package/dist/pako.esm-68f84e2a.js +4022 -0
  10. package/dist/raw-3c693341.js +12 -0
  11. package/dist/webimage-83da2258.js +32 -0
  12. package/dist-tsc/Vitessce.d.ts +2 -0
  13. package/dist-tsc/Vitessce.d.ts.map +1 -0
  14. package/dist-tsc/Vitessce.js +41 -0
  15. package/dist-tsc/base-plugins.d.ts +854 -0
  16. package/dist-tsc/base-plugins.d.ts.map +1 -0
  17. package/dist-tsc/base-plugins.js +191 -0
  18. package/dist-tsc/index.d.ts +4 -0
  19. package/dist-tsc/index.d.ts.map +1 -0
  20. package/dist-tsc/index.js +3 -0
  21. package/dist-tsc/joint-file-types-legacy.d.ts +226 -0
  22. package/dist-tsc/joint-file-types-legacy.d.ts.map +1 -0
  23. package/dist-tsc/joint-file-types-legacy.js +266 -0
  24. package/dist-tsc/joint-file-types-legacy.test.d.ts +2 -0
  25. package/dist-tsc/joint-file-types-legacy.test.d.ts.map +1 -0
  26. package/dist-tsc/joint-file-types-legacy.test.js +401 -0
  27. package/dist-tsc/joint-file-types.d.ts +4 -0
  28. package/dist-tsc/joint-file-types.d.ts.map +1 -0
  29. package/dist-tsc/joint-file-types.js +127 -0
  30. package/dist-tsc/joint-file-types.test.d.ts +2 -0
  31. package/dist-tsc/joint-file-types.test.d.ts.map +1 -0
  32. package/dist-tsc/joint-file-types.test.js +128 -0
  33. package/dist-tsc/latest-config-schema.test.d.ts +2 -0
  34. package/dist-tsc/latest-config-schema.test.d.ts.map +1 -0
  35. package/dist-tsc/latest-config-schema.test.js +19 -0
  36. package/package.json +39 -21
  37. package/src/Vitessce.tsx +74 -0
  38. package/src/base-plugins.ts +362 -0
  39. package/src/index.ts +8 -0
  40. package/src/joint-file-types-legacy.test.ts +413 -0
  41. package/src/joint-file-types-legacy.ts +284 -0
  42. package/src/joint-file-types.test.ts +132 -0
  43. package/src/joint-file-types.ts +142 -0
  44. package/src/latest-config-schema.test.ts +26 -0
  45. package/dist/setup.js +0 -96
@@ -0,0 +1,132 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import {
3
+ expandAnndataZarr,
4
+ } from './joint-file-types.js';
5
+
6
+
7
+ describe('src/app/joint-file-types.js', () => {
8
+ describe('expandAnndataZarr', () => {
9
+ it('fails to expand when there are no options', () => {
10
+ expect(expandAnndataZarr({
11
+ fileType: 'anndata.zarr',
12
+ url: 'http://localhost:8000/anndata.zarr',
13
+ })).toEqual([]);
14
+ });
15
+ it('expands when there is an obsEmbedding object', () => {
16
+ expect(expandAnndataZarr({
17
+ fileType: 'anndata.zarr',
18
+ url: 'http://localhost:8000/anndata.zarr',
19
+ options: {
20
+ obsLabels: {
21
+ path: 'obs/spot_name',
22
+ },
23
+ featureLabels: {
24
+ path: 'var/gene_symbol',
25
+ },
26
+ obsEmbedding: {
27
+ path: 'obsm/pca',
28
+ dims: [2, 4],
29
+ },
30
+ },
31
+ coordinationValues: {
32
+ obsType: 'spot',
33
+ featureType: 'transcript',
34
+ obsLabelsType: 'spotName',
35
+ featureLabelsType: 'geneSymbol',
36
+ embeddingType: 'PCA',
37
+ },
38
+ })).toEqual([
39
+ {
40
+ fileType: 'obsEmbedding.anndata.zarr',
41
+ url: 'http://localhost:8000/anndata.zarr',
42
+ options: {
43
+ path: 'obsm/pca',
44
+ dims: [2, 4],
45
+ },
46
+ coordinationValues: {
47
+ obsType: 'spot',
48
+ embeddingType: 'PCA',
49
+ },
50
+ },
51
+ {
52
+ fileType: 'obsLabels.anndata.zarr',
53
+ url: 'http://localhost:8000/anndata.zarr',
54
+ options: {
55
+ path: 'obs/spot_name',
56
+ },
57
+ coordinationValues: {
58
+ obsType: 'spot',
59
+ obsLabelsType: 'spotName',
60
+ },
61
+ },
62
+ {
63
+ fileType: 'featureLabels.anndata.zarr',
64
+ url: 'http://localhost:8000/anndata.zarr',
65
+ options: {
66
+ path: 'var/gene_symbol',
67
+ },
68
+ coordinationValues: {
69
+ featureType: 'transcript',
70
+ featureLabelsType: 'geneSymbol',
71
+ },
72
+ },
73
+ ]);
74
+ });
75
+ it('expands when there is an obsEmbedding array of objects', () => {
76
+ expect(expandAnndataZarr({
77
+ fileType: 'anndata.zarr',
78
+ url: 'http://localhost:8000/anndata.zarr',
79
+ options: {
80
+ obsLocations: {
81
+ path: 'obsm/xy',
82
+ },
83
+ obsEmbedding: [
84
+ {
85
+ path: 'obsm/pca',
86
+ dims: [2, 4],
87
+ embeddingType: 'PCA',
88
+ },
89
+ {
90
+ path: 'obsm/umap',
91
+ embeddingType: 'UMAP',
92
+ },
93
+ ],
94
+ },
95
+ })).toEqual([
96
+ {
97
+ fileType: 'obsLocations.anndata.zarr',
98
+ url: 'http://localhost:8000/anndata.zarr',
99
+ options: {
100
+ path: 'obsm/xy',
101
+ },
102
+ coordinationValues: {
103
+ obsType: 'cell',
104
+ },
105
+ },
106
+ {
107
+ fileType: 'obsEmbedding.anndata.zarr',
108
+ url: 'http://localhost:8000/anndata.zarr',
109
+ options: {
110
+ path: 'obsm/pca',
111
+ dims: [2, 4],
112
+ },
113
+ coordinationValues: {
114
+ obsType: 'cell',
115
+ embeddingType: 'PCA',
116
+ },
117
+ },
118
+ {
119
+ fileType: 'obsEmbedding.anndata.zarr',
120
+ url: 'http://localhost:8000/anndata.zarr',
121
+ options: {
122
+ path: 'obsm/umap',
123
+ },
124
+ coordinationValues: {
125
+ obsType: 'cell',
126
+ embeddingType: 'UMAP',
127
+ },
128
+ },
129
+ ]);
130
+ });
131
+ });
132
+ });
@@ -0,0 +1,142 @@
1
+ import type { z } from 'zod';
2
+ import type { latestFileDefSchema } from '@vitessce/schemas';
3
+ import { FileType } from '@vitessce/constants-internal';
4
+
5
+ type BaseFileDef = {
6
+ url?: string;
7
+ requestInit?: any;
8
+ coordinationValues: Record<string, string>;
9
+ };
10
+
11
+ export function expandAnndataZarr(fileDef: z.infer<typeof latestFileDefSchema>) {
12
+ const baseFileDef: BaseFileDef = {
13
+ url: fileDef.url,
14
+ requestInit: fileDef.requestInit,
15
+ coordinationValues: {
16
+ ...fileDef.coordinationValues,
17
+ obsType: fileDef.coordinationValues?.obsType || 'cell',
18
+ featureType: fileDef.coordinationValues?.featureType || 'gene',
19
+ featureValueType: fileDef.coordinationValues?.featureValueType || 'expression',
20
+ },
21
+ };
22
+ const { options = {} } = fileDef;
23
+ return [
24
+ // obsFeatureMatrix
25
+ ...(options.obsFeatureMatrix ? [{
26
+ ...baseFileDef,
27
+ fileType: FileType.OBS_FEATURE_MATRIX_ANNDATA_ZARR,
28
+ options: options.obsFeatureMatrix,
29
+ coordinationValues: {
30
+ obsType: baseFileDef.coordinationValues.obsType,
31
+ featureType: baseFileDef.coordinationValues.featureType,
32
+ featureValueType: baseFileDef.coordinationValues.featureValueType,
33
+ },
34
+ }] : []),
35
+ // obsSets
36
+ ...(options.obsSets ? [{
37
+ ...baseFileDef,
38
+ fileType: FileType.OBS_SETS_ANNDATA_ZARR,
39
+ options: options.obsSets,
40
+ coordinationValues: {
41
+ obsType: baseFileDef.coordinationValues.obsType,
42
+ },
43
+ }] : []),
44
+ // obsLocations
45
+ ...(options.obsLocations ? [{
46
+ ...baseFileDef,
47
+ fileType: FileType.OBS_LOCATIONS_ANNDATA_ZARR,
48
+ options: options.obsLocations,
49
+ coordinationValues: {
50
+ obsType: baseFileDef.coordinationValues.obsType,
51
+ },
52
+ }] : []),
53
+ // obsSegmentations
54
+ ...(options.obsSegmentations ? [{
55
+ ...baseFileDef,
56
+ fileType: FileType.OBS_SEGMENTATIONS_ANNDATA_ZARR,
57
+ options: options.obsSegmentations,
58
+ coordinationValues: {
59
+ obsType: baseFileDef.coordinationValues.obsType,
60
+ },
61
+ }] : []),
62
+ // obsEmbedding
63
+ // eslint-disable-next-line no-nested-ternary
64
+ ...(options.obsEmbedding ? (
65
+ Array.isArray(options.obsEmbedding) ? options.obsEmbedding.map((oe: any) => ({
66
+ // obsEmbedding was an array, process each element.
67
+ ...baseFileDef,
68
+ fileType: FileType.OBS_EMBEDDING_ANNDATA_ZARR,
69
+ options: {
70
+ path: oe.path,
71
+ dims: oe.dims,
72
+ },
73
+ coordinationValues: {
74
+ obsType: baseFileDef.coordinationValues.obsType,
75
+ // Move embedding type property out of options and into coordinationValues.
76
+ embeddingType: oe.embeddingType,
77
+ },
78
+ })) : [{
79
+ // obsEmbedding was an object.
80
+ ...baseFileDef,
81
+ fileType: FileType.OBS_EMBEDDING_ANNDATA_ZARR,
82
+ options: options.obsEmbedding,
83
+ coordinationValues: {
84
+ obsType: baseFileDef.coordinationValues.obsType,
85
+ embeddingType: baseFileDef.coordinationValues.embeddingType,
86
+ },
87
+ }]
88
+ ) : []),
89
+ // obsLabels
90
+ // eslint-disable-next-line no-nested-ternary
91
+ ...(options.obsLabels ? (
92
+ Array.isArray(options.obsLabels) ? options.obsLabels.map((ol: any) => ({
93
+ // obsLabels was an array, process each element.
94
+ ...baseFileDef,
95
+ fileType: FileType.OBS_LABELS_ANNDATA_ZARR,
96
+ options: {
97
+ path: ol.path,
98
+ },
99
+ coordinationValues: {
100
+ obsType: baseFileDef.coordinationValues.obsType,
101
+ // Move obsLabels type property out of options and into coordinationValues.
102
+ obsLabelsType: ol.obsLabelsType,
103
+ },
104
+ })) : [{
105
+ // obsLabels was an object.
106
+ ...baseFileDef,
107
+ fileType: FileType.OBS_LABELS_ANNDATA_ZARR,
108
+ options: options.obsLabels,
109
+ coordinationValues: {
110
+ obsType: baseFileDef.coordinationValues.obsType,
111
+ obsLabelsType: baseFileDef.coordinationValues.obsLabelsType,
112
+ },
113
+ }]
114
+ ) : []),
115
+ // featureLabels
116
+ // eslint-disable-next-line no-nested-ternary
117
+ ...(options.featureLabels ? (
118
+ Array.isArray(options.featureLabels) ? options.featureLabels.map((fl: any) => ({
119
+ // featureLabels was an array, process each element.
120
+ ...baseFileDef,
121
+ fileType: FileType.FEATURE_LABELS_ANNDATA_ZARR,
122
+ options: {
123
+ path: fl.path,
124
+ },
125
+ coordinationValues: {
126
+ featureType: baseFileDef.coordinationValues.featureType,
127
+ // Move featureLabels type property out of options and into coordinationValues.
128
+ featureLabelsType: fl.featureLabelsType,
129
+ },
130
+ })) : [{
131
+ // featureLabels was an object.
132
+ ...baseFileDef,
133
+ fileType: FileType.FEATURE_LABELS_ANNDATA_ZARR,
134
+ options: options.featureLabels,
135
+ coordinationValues: {
136
+ featureType: baseFileDef.coordinationValues.featureType,
137
+ featureLabelsType: baseFileDef.coordinationValues.featureLabelsType,
138
+ },
139
+ }]
140
+ ) : []),
141
+ ];
142
+ }
@@ -0,0 +1,26 @@
1
+ import { describe, expect, it } from 'vitest';
2
+
3
+ import { CoordinationType } from '@vitessce/constants-internal';
4
+ import {
5
+ baseCoordinationTypes,
6
+ } from './base-plugins.js';
7
+
8
+ describe('view config schema', () => {
9
+ describe('coordination types', () => {
10
+ it('defines schema for all valid coordination types', () => {
11
+ const coordinationTypeNamesFromConstants = Object.values(CoordinationType).sort();
12
+ const coordinationTypeNamesFromBasePlugins = baseCoordinationTypes.map(ct => ct.name).sort();
13
+
14
+ expect(coordinationTypeNamesFromConstants)
15
+ .toEqual(expect.arrayContaining(coordinationTypeNamesFromBasePlugins));
16
+ });
17
+
18
+ it('defines schema for only valid coordination types (does not have extra)', () => {
19
+ const coordinationTypeNamesFromConstants = Object.values(CoordinationType).sort();
20
+ const coordinationTypeNamesFromBasePlugins = baseCoordinationTypes.map(ct => ct.name).sort();
21
+
22
+ expect(coordinationTypeNamesFromBasePlugins)
23
+ .toEqual(expect.arrayContaining(coordinationTypeNamesFromConstants));
24
+ });
25
+ });
26
+ });
package/dist/setup.js DELETED
@@ -1,96 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /* eslint-disable max-len */
3
- import { useState, useLayoutEffect } from 'react';
4
- import { VitS, registerPluginFileType } from '@vitessce/vit-s';
5
- // Register view type plugins
6
- import { register as registerDescription } from '@vitessce/description';
7
- import { register as registerObsSetsManager } from '@vitessce/obs-sets-manager';
8
- import { register as registerScatterplotEmbedding } from '@vitessce/scatterplot-embedding';
9
- import { register as registerScatterplotGating } from '@vitessce/scatterplot-gating';
10
- import { register as registerSpatial } from '@vitessce/spatial';
11
- import { register as registerHeatmap } from '@vitessce/heatmap';
12
- import { register as registerFeatureList } from '@vitessce/feature-list';
13
- import { register as registerLayerController } from '@vitessce/layer-controller';
14
- import { register as registerStatus } from '@vitessce/status';
15
- import { registerCellSetExpression, registerCellSetSizes, registerExpressionHistogram } from '@vitessce/statistical-plots';
16
- import { registerHiglass, registerGenomicProfiles } from '@vitessce/genomic-profiles';
17
- // Register file type plugins
18
- import {
19
- // CSV
20
- CsvSource, ObsSetsCsvLoader, ObsEmbeddingCsvLoader, ObsLocationsCsvLoader, ObsLabelsCsvLoader, ObsFeatureMatrixCsvLoader, FeatureLabelsCsvLoader, } from '@vitessce/csv';
21
- import {
22
- // JSON
23
- JsonSource, JsonLoader, ObsSegmentationsJsonLoader, ObsSetsJsonLoader,
24
- // Legacy
25
- RasterJsonAsImageLoader, RasterJsonAsObsSegmentationsLoader, ClustersJsonAsObsFeatureMatrixLoader, GenesJsonAsObsFeatureMatrixLoader, CellsJsonAsObsLabelsLoader, CellsJsonAsObsEmbeddingLoader, CellsJsonAsObsLocationsLoader, CellsJsonAsObsSegmentationsLoader, MoleculesJsonAsObsLocationsLoader, MoleculesJsonAsObsLabelsLoader, } from '@vitessce/json';
26
- import {
27
- // AnnData
28
- AnnDataSource, ObsFeatureMatrixAnndataLoader, ObsEmbeddingAnndataLoader, ObsLocationsAnndataLoader, ObsSegmentationsAnndataLoader, ObsSetsAnndataLoader, ObsLabelsAnndataLoader, FeatureLabelsAnndataLoader,
29
- // OME
30
- OmeZarrLoader,
31
- // Legacy
32
- ZarrDataSource, MatrixZarrAsObsFeatureMatrixLoader, GenomicProfilesZarrLoader, } from '@vitessce/zarr';
33
- import { FileType, DataType } from '@vitessce/constants-internal';
34
- function setup() {
35
- // View types
36
- registerDescription();
37
- registerObsSetsManager();
38
- registerScatterplotEmbedding();
39
- registerScatterplotGating();
40
- registerSpatial();
41
- registerHeatmap();
42
- registerFeatureList();
43
- registerLayerController();
44
- registerStatus();
45
- // Statistical plots
46
- registerCellSetExpression();
47
- registerCellSetSizes();
48
- registerExpressionHistogram();
49
- // Higlass
50
- registerHiglass();
51
- registerGenomicProfiles();
52
- // File types
53
- // All CSV file types
54
- registerPluginFileType(FileType.OBS_SETS_CSV, DataType.OBS_SETS, ObsSetsCsvLoader, CsvSource);
55
- registerPluginFileType(FileType.OBS_EMBEDDING_CSV, DataType.OBS_EMBEDDING, ObsEmbeddingCsvLoader, CsvSource);
56
- registerPluginFileType(FileType.OBS_LOCATIONS_CSV, DataType.OBS_LOCATIONS, ObsLocationsCsvLoader, CsvSource);
57
- registerPluginFileType(FileType.OBS_LABELS_CSV, DataType.OBS_LABELS, ObsLabelsCsvLoader, CsvSource);
58
- registerPluginFileType(FileType.OBS_FEATURE_MATRIX_CSV, DataType.OBS_FEATURE_MATRIX, ObsFeatureMatrixCsvLoader, CsvSource);
59
- registerPluginFileType(FileType.FEATURE_LABELS_CSV, DataType.FEATURE_LABELS, FeatureLabelsCsvLoader, CsvSource);
60
- // All JSON file types
61
- registerPluginFileType(FileType.OBS_SEGMENTATIONS_JSON, DataType.OBS_SEGMENTATIONS, ObsSegmentationsJsonLoader, JsonSource);
62
- registerPluginFileType(FileType.OBS_SETS_JSON, DataType.OBS_SETS, ObsSetsJsonLoader, JsonSource);
63
- // All AnnData file types
64
- registerPluginFileType(FileType.OBS_SETS_ANNDATA_ZARR, DataType.OBS_SETS, ObsSetsAnndataLoader, AnnDataSource);
65
- registerPluginFileType(FileType.OBS_EMBEDDING_ANNDATA_ZARR, DataType.OBS_EMBEDDING, ObsEmbeddingAnndataLoader, AnnDataSource);
66
- registerPluginFileType(FileType.OBS_LOCATIONS_ANNDATA_ZARR, DataType.OBS_LOCATIONS, ObsLocationsAnndataLoader, AnnDataSource);
67
- registerPluginFileType(FileType.OBS_LABELS_ANNDATA_ZARR, DataType.OBS_LABELS, ObsLabelsAnndataLoader, AnnDataSource);
68
- registerPluginFileType(FileType.OBS_FEATURE_MATRIX_ANNDATA_ZARR, DataType.OBS_FEATURE_MATRIX, ObsFeatureMatrixAnndataLoader, AnnDataSource);
69
- registerPluginFileType(FileType.OBS_SEGMENTATIONS_ANNDATA_ZARR, DataType.OBS_SEGMENTATIONS, ObsSegmentationsAnndataLoader, AnnDataSource);
70
- registerPluginFileType(FileType.FEATURE_LABELS_ANNDATA_ZARR, DataType.FEATURE_LABELS, FeatureLabelsAnndataLoader, AnnDataSource);
71
- // All OME file types
72
- registerPluginFileType(FileType.IMAGE_OME_ZARR, DataType.IMAGE, OmeZarrLoader, ZarrDataSource);
73
- // All legacy file types
74
- registerPluginFileType(FileType.OBS_FEATURE_MATRIX_EXPRESSION_MATRIX_ZARR, DataType.OBS_FEATURE_MATRIX, MatrixZarrAsObsFeatureMatrixLoader, ZarrDataSource);
75
- registerPluginFileType(FileType.IMAGE_RASTER_JSON, DataType.IMAGE, RasterJsonAsImageLoader, JsonSource);
76
- registerPluginFileType(FileType.OBS_SEGMENTATIONS_RASTER_JSON, DataType.OBS_SEGMENTATIONS, RasterJsonAsObsSegmentationsLoader, JsonSource);
77
- registerPluginFileType(FileType.OBS_SETS_CELL_SETS_JSON, DataType.OBS_SETS, ObsSetsJsonLoader, JsonSource);
78
- registerPluginFileType(FileType.OBS_FEATURE_MATRIX_CLUSTERS_JSON, DataType.OBS_FEATURE_MATRIX, ClustersJsonAsObsFeatureMatrixLoader, JsonSource);
79
- registerPluginFileType(FileType.OBS_FEATURE_MATRIX_GENES_JSON, DataType.OBS_FEATURE_MATRIX, GenesJsonAsObsFeatureMatrixLoader, JsonSource);
80
- registerPluginFileType(FileType.OBS_LABELS_CELLS_JSON, DataType.OBS_LABELS, CellsJsonAsObsLabelsLoader, JsonSource);
81
- registerPluginFileType(FileType.OBS_EMBEDDING_CELLS_JSON, DataType.OBS_EMBEDDING, CellsJsonAsObsEmbeddingLoader, JsonSource);
82
- registerPluginFileType(FileType.OBS_LOCATIONS_CELLS_JSON, DataType.OBS_LOCATIONS, CellsJsonAsObsLocationsLoader, JsonSource);
83
- registerPluginFileType(FileType.OBS_SEGMENTATIONS_CELLS_JSON, DataType.OBS_SEGMENTATIONS, CellsJsonAsObsSegmentationsLoader, JsonSource);
84
- registerPluginFileType(FileType.OBS_LOCATIONS_MOLECULES_JSON, DataType.OBS_LOCATIONS, MoleculesJsonAsObsLocationsLoader, JsonSource);
85
- registerPluginFileType(FileType.OBS_LABELS_MOLECULES_JSON, DataType.OBS_LABELS, MoleculesJsonAsObsLabelsLoader, JsonSource);
86
- registerPluginFileType(FileType.NEIGHBORHOODS_JSON, DataType.NEIGHBORHOODS, JsonLoader, JsonSource);
87
- registerPluginFileType(FileType.GENOMIC_PROFILES_ZARR, DataType.GENOMIC_PROFILES, GenomicProfilesZarrLoader, ZarrDataSource);
88
- }
89
- export function Vitessce(props) {
90
- const [ready, setReady] = useState(false);
91
- useLayoutEffect(() => {
92
- setup();
93
- setReady(true);
94
- }, []);
95
- return (ready ? (_jsx(VitS, { ...props })) : null);
96
- }