@vitessce/scatterplot-gating 4.0.4 → 4.0.6
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/dist/{deflate-FxsGA7lg.js → deflate-9OJa3Ewi.js} +1 -1
- package/dist/{index-CCqY8Pij.js → index-BUVBbXFQ.js} +237 -5311
- package/dist/index.js +1 -1
- package/dist/{jpeg-fz5bD9kY.js → jpeg-B9_avAIf.js} +1 -1
- package/dist/{lerc-r_dobtqJ.js → lerc-BjrLoND6.js} +1 -1
- package/dist/{lzw-C002_bhq.js → lzw-DEJye0-W.js} +1 -1
- package/dist/{packbits-BzXA9D_b.js → packbits-CvrWa3x_.js} +1 -1
- package/dist/{raw-ByXTHgnc.js → raw-BfH2zeya.js} +1 -1
- package/dist/{webimage-CsVjZ6BD.js → webimage-CaSVfEZI.js} +1 -1
- package/dist-tsc/GatingSubscriber.d.ts.map +1 -1
- package/dist-tsc/GatingSubscriber.js +41 -23
- package/dist-tsc/GatingSubscriber.js.map +1 -1
- package/package.json +7 -7
- package/src/GatingSubscriber.js +52 -26
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as inflate_1 } from "./pako.esm-SxljTded.js";
|
|
2
|
-
import { g as getDefaultExportFromCjs, B as BaseDecoder } from "./index-
|
|
2
|
+
import { g as getDefaultExportFromCjs, B as BaseDecoder } from "./index-BUVBbXFQ.js";
|
|
3
3
|
const LercParameters = {
|
|
4
4
|
AddCompression: 1
|
|
5
5
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GatingSubscriber.d.ts","sourceRoot":"","sources":["../src/GatingSubscriber.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GatingSubscriber.d.ts","sourceRoot":"","sources":["../src/GatingSubscriber.js"],"names":[],"mappings":"AAsCA;;;;;;;;;;;;KAYK;AACL,wCAVK;IAAsB,IAAI,EAAlB,MAAM;IACQ,KAAK,EAAnB,MAAM;IACQ,kBAAkB,EAAhC,MAAM;IAES,cAAc,EAA7B,OAAO;IACS,mBAAmB;IAErB,kBAAkB,EAAhC,MAAM;CAEhB,OAseF"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import React, { useState, useEffect, useCallback, useMemo, } from 'react';
|
|
2
|
+
import React, { useState, useEffect, useCallback, useMemo, useDeferredValue, } from 'react';
|
|
3
3
|
import { extent } from 'd3-array';
|
|
4
4
|
import { isEqual } from 'lodash-es';
|
|
5
5
|
import { pluralize as plur, capitalize, commaNumber, getValueTransformFunction, VALUE_TRANSFORM_OPTIONS, } from '@vitessce/utils';
|
|
6
6
|
import { TitleInfo, useDeckCanvasSize, useReady, useUrls, useUint8FeatureSelection, useExpressionValueGetter, useObsSetsData, useFeatureSelection, useObsFeatureMatrixIndices, useCoordination, useInitialCoordination, useLoaders, useSetComponentHover, useSetComponentViewInfo, useCoordinationScopes, } from '@vitessce/vit-s';
|
|
7
|
-
import { getCellSetPolygons, mergeObsSets, setObsSelection,
|
|
7
|
+
import { getCellSetPolygons, mergeObsSets, setObsSelection, treeToColorIndicesArray, colorIndicesFromCodes, } from '@vitessce/sets-utils';
|
|
8
8
|
import { Scatterplot, ScatterplotTooltipSubscriber, ScatterplotOptions, getPointSizeDevicePixels, getPointOpacity, EmptyMessage, } from '@vitessce/scatterplot';
|
|
9
9
|
import { ViewType, COMPONENT_COORDINATION_TYPES, ViewHelpMapping } from '@vitessce/constants-internal';
|
|
10
10
|
import GatingScatterplotOptions from './GatingScatterplotOptions.js';
|
|
@@ -45,7 +45,7 @@ export function GatingSubscriber(props) {
|
|
|
45
45
|
const featureSelectionX = useMemo(() => (gatingFeatureSelectionX ? [gatingFeatureSelectionX] : null), [gatingFeatureSelectionX]);
|
|
46
46
|
const featureSelectionY = useMemo(() => (gatingFeatureSelectionY ? [gatingFeatureSelectionY] : null), [gatingFeatureSelectionY]);
|
|
47
47
|
// Get data from loaders using the data hooks.
|
|
48
|
-
const [{ obsSets: cellSets }, obsSetsStatus, obsSetsUrls, obsSetsError] = useObsSetsData(loaders, dataset, false, { setObsSetSelection: setCellSetSelection, setObsSetColor: setCellSetColor }, { obsSetSelection: cellSetSelection, obsSetColor: cellSetColor }, { obsType });
|
|
48
|
+
const [{ obsSets: cellSets, obsSetsColumns }, obsSetsStatus, obsSetsUrls, obsSetsError,] = useObsSetsData(loaders, dataset, false, { setObsSetSelection: setCellSetSelection, setObsSetColor: setCellSetColor }, { obsSetSelection: cellSetSelection, obsSetColor: cellSetColor }, { obsType });
|
|
49
49
|
const [
|
|
50
50
|
// eslint-disable-next-line no-unused-vars
|
|
51
51
|
expressionDataColor, loadedColor, featureSelectionColorStatus, featureSelectionColorErrors,] = useFeatureSelection(loaders, dataset, false, gatingFeatureSelectionColor, { obsType, featureType, featureValueType });
|
|
@@ -105,6 +105,7 @@ export function GatingSubscriber(props) {
|
|
|
105
105
|
featureSelectionX, featureSelectionY,
|
|
106
106
|
]);
|
|
107
107
|
const [dynamicCellRadius, setDynamicCellRadius] = useState(cellRadiusFixed);
|
|
108
|
+
const [isSelectionPending, setIsSelectionPending] = useState(false);
|
|
108
109
|
const [dynamicCellOpacity, setDynamicCellOpacity] = useState(cellOpacityFixed);
|
|
109
110
|
const [originalViewState, setOriginalViewState] = useState(null);
|
|
110
111
|
const mergedCellSets = useMemo(() => mergeObsSets(cellSets, additionalCellSets), [cellSets, additionalCellSets]);
|
|
@@ -112,14 +113,30 @@ export function GatingSubscriber(props) {
|
|
|
112
113
|
setObsSelection(v, additionalCellSets, cellSetColor, setCellSetSelection, setAdditionalCellSets, setCellSetColor, setCellColorEncoding);
|
|
113
114
|
}, [additionalCellSets, cellSetColor, setCellColorEncoding,
|
|
114
115
|
setAdditionalCellSets, setCellSetColor, setCellSetSelection]);
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
116
|
+
// A set selection or color change re-encodes every observation in the memos
|
|
117
|
+
// below, which at atlas scale takes longer than a frame. Deferring these values
|
|
118
|
+
// lets React commit the urgent update first — the sets manager checkbox that
|
|
119
|
+
// initiated the change paints immediately — and re-render this view afterwards.
|
|
120
|
+
const deferredCellSetSelection = useDeferredValue(cellSetSelection);
|
|
121
|
+
const deferredCellSetColor = useDeferredValue(cellSetColor);
|
|
122
|
+
// Positional rather than keyed by observation ID: at atlas scale an ID-keyed color
|
|
123
|
+
// Map costs one string hash lookup per point per render, plus a per-observation
|
|
124
|
+
// color array whenever the selected sets carry confidence scores.
|
|
125
|
+
const obsColorIndices = useMemo(() => (
|
|
126
|
+
// When the loader provides raw categorical codes over this same observation
|
|
127
|
+
// axis (checked by reference), the encoding is one typed-array pass with no
|
|
128
|
+
// tree walk. colorIndicesFromCodes returns null for selections it cannot
|
|
129
|
+
// resolve (e.g. user-defined lasso selections), falling back to the tree.
|
|
130
|
+
(obsSetsColumns && obsSetsColumns.obsIndex === obsIndex
|
|
131
|
+
&& colorIndicesFromCodes({
|
|
132
|
+
columns: obsSetsColumns.columns,
|
|
133
|
+
obsIndex,
|
|
134
|
+
selectedNamePaths: deferredCellSetSelection,
|
|
135
|
+
cellSetColor: deferredCellSetColor,
|
|
136
|
+
theme,
|
|
137
|
+
}))
|
|
138
|
+
|| treeToColorIndicesArray(mergedCellSets, deferredCellSetSelection, deferredCellSetColor, obsIndex, theme)), [mergedCellSets, deferredCellSetSelection, deferredCellSetColor, obsIndex, theme,
|
|
139
|
+
obsSetsColumns]);
|
|
123
140
|
// cellSetPolygonCache is an array of tuples like [(key0, val0), (key1, val1), ...],
|
|
124
141
|
// where the keys are cellSetSelection arrays.
|
|
125
142
|
const [cellSetPolygonCache, setCellSetPolygonCache] = useState([]);
|
|
@@ -127,26 +144,25 @@ export function GatingSubscriber(props) {
|
|
|
127
144
|
const cacheGet = (cache, key) => cache.find(el => isEqual(el[0], key))?.[1];
|
|
128
145
|
const cellSetPolygons = useMemo(() => {
|
|
129
146
|
if ((cellSetLabelsVisible || cellSetPolygonsVisible)
|
|
130
|
-
&& !cacheHas(cellSetPolygonCache,
|
|
147
|
+
&& !cacheHas(cellSetPolygonCache, deferredCellSetSelection)
|
|
131
148
|
&& mergedCellSets?.tree?.length
|
|
132
149
|
&& obsXY
|
|
133
150
|
&& obsIndex
|
|
134
|
-
&&
|
|
151
|
+
&& deferredCellSetColor?.length) {
|
|
135
152
|
const newCellSetPolygons = getCellSetPolygons({
|
|
136
153
|
obsIndex,
|
|
137
154
|
obsEmbedding: obsXY,
|
|
138
155
|
cellSets: mergedCellSets,
|
|
139
|
-
cellSetSelection,
|
|
140
|
-
cellSetColor,
|
|
156
|
+
cellSetSelection: deferredCellSetSelection,
|
|
157
|
+
cellSetColor: deferredCellSetColor,
|
|
141
158
|
theme,
|
|
142
159
|
});
|
|
143
|
-
setCellSetPolygonCache(cache => [...cache, [
|
|
160
|
+
setCellSetPolygonCache(cache => [...cache, [deferredCellSetSelection, newCellSetPolygons]]);
|
|
144
161
|
return newCellSetPolygons;
|
|
145
162
|
}
|
|
146
|
-
return cacheGet(cellSetPolygonCache,
|
|
163
|
+
return cacheGet(cellSetPolygonCache, deferredCellSetSelection) || [];
|
|
147
164
|
}, [cellSetPolygonsVisible, cellSetPolygonCache, cellSetLabelsVisible, theme,
|
|
148
|
-
obsIndex, obsXY, mergedCellSets,
|
|
149
|
-
const cellSelection = useMemo(() => Array.from(cellColors.keys()), [cellColors]);
|
|
165
|
+
obsIndex, obsXY, mergedCellSets, deferredCellSetSelection, deferredCellSetColor]);
|
|
150
166
|
const [xRange, yRange, xExtent, yExtent, numCells] = useMemo(() => {
|
|
151
167
|
if (obsXY && obsXY.data && obsXY.shape) {
|
|
152
168
|
const cellCount = obsXY.shape[1];
|
|
@@ -190,8 +206,10 @@ export function GatingSubscriber(props) {
|
|
|
190
206
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
191
207
|
}, [xRange, yRange, xExtent, yExtent, numCells,
|
|
192
208
|
width, height, zoom, initialTargetX, initialTargetY, averageFillDensity]);
|
|
193
|
-
|
|
194
|
-
|
|
209
|
+
// With no set selection every observation counts as selected, matching the
|
|
210
|
+
// behavior of the ID-keyed color map this replaced.
|
|
211
|
+
const allCellsSelected = !(deferredCellSetSelection && mergedCellSets);
|
|
212
|
+
const getCellIsSelected = useCallback((object, { index }) => ((allCellsSelected || obsColorIndices.colorIndices[index] !== 0) ? 1.0 : 0.0), [allCellsSelected, obsColorIndices]);
|
|
195
213
|
const cellRadius = (cellRadiusMode === 'manual' ? cellRadiusFixed : dynamicCellRadius);
|
|
196
214
|
const cellOpacity = (cellOpacityMode === 'manual' ? cellOpacityFixed : dynamicCellOpacity);
|
|
197
215
|
const { normData: uint8ExpressionData } = useUint8FeatureSelection(expressionDataColor);
|
|
@@ -222,12 +240,12 @@ export function GatingSubscriber(props) {
|
|
|
222
240
|
setTargetY(target[1]);
|
|
223
241
|
setTargetZ(target[2] || 0);
|
|
224
242
|
};
|
|
225
|
-
return (_jsxs(TitleInfo, { title: title, info: `${commaNumber(cellsCount)} ${plur(obsType, cellsCount)}`, closeButtonVisible: closeButtonVisible, downloadButtonVisible: downloadButtonVisible, removeGridComponent: removeGridComponent, urls: urls, theme: theme, isReady: isReady, helpText: helpText, errors: errors, options: (_jsx(ScatterplotOptions, { observationsLabel: obsType, cellRadius: cellRadiusFixed, setCellRadius: setCellRadiusFixed, cellRadiusMode: cellRadiusMode, setCellRadiusMode: setCellRadiusMode, cellOpacity: cellOpacityFixed, setCellOpacity: setCellOpacityFixed, cellOpacityMode: cellOpacityMode, setCellOpacityMode: setCellOpacityMode, cellSetLabelsVisible: cellSetLabelsVisible, setCellSetLabelsVisible: setCellSetLabelsVisible, cellSetLabelSize: cellSetLabelSize, setCellSetLabelSize: setCellSetLabelSize, cellSetPolygonsVisible: cellSetPolygonsVisible, setCellSetPolygonsVisible: setCellSetPolygonsVisible, cellColorEncoding: cellColorEncoding, setCellColorEncoding: setCellColorEncoding, geneExpressionColormap: geneExpressionColormap, setGeneExpressionColormap: setGeneExpressionColormap, geneExpressionColormapRange: geneExpressionColormapRange, setGeneExpressionColormapRange: setGeneExpressionColormapRange, children: _jsx(GatingScatterplotOptions, { featureType: featureType, gatingFeatureSelectionX: gatingFeatureSelectionX, setGatingFeatureSelectionX: setGatingFeatureSelectionX, gatingFeatureSelectionY: gatingFeatureSelectionY, setGatingFeatureSelectionY: setGatingFeatureSelectionY, gatingFeatureValueTransform: featureValueTransform, setGatingFeatureValueTransform: (newValue) => {
|
|
243
|
+
return (_jsxs(TitleInfo, { title: title, info: `${commaNumber(cellsCount)} ${plur(obsType, cellsCount)}`, closeButtonVisible: closeButtonVisible, downloadButtonVisible: downloadButtonVisible, removeGridComponent: removeGridComponent, urls: urls, theme: theme, isReady: isReady && !isSelectionPending, helpText: helpText, errors: errors, options: (_jsx(ScatterplotOptions, { observationsLabel: obsType, cellRadius: cellRadiusFixed, setCellRadius: setCellRadiusFixed, cellRadiusMode: cellRadiusMode, setCellRadiusMode: setCellRadiusMode, cellOpacity: cellOpacityFixed, setCellOpacity: setCellOpacityFixed, cellOpacityMode: cellOpacityMode, setCellOpacityMode: setCellOpacityMode, cellSetLabelsVisible: cellSetLabelsVisible, setCellSetLabelsVisible: setCellSetLabelsVisible, cellSetLabelSize: cellSetLabelSize, setCellSetLabelSize: setCellSetLabelSize, cellSetPolygonsVisible: cellSetPolygonsVisible, setCellSetPolygonsVisible: setCellSetPolygonsVisible, cellColorEncoding: cellColorEncoding, setCellColorEncoding: setCellColorEncoding, geneExpressionColormap: geneExpressionColormap, setGeneExpressionColormap: setGeneExpressionColormap, geneExpressionColormapRange: geneExpressionColormapRange, setGeneExpressionColormapRange: setGeneExpressionColormapRange, children: _jsx(GatingScatterplotOptions, { featureType: featureType, gatingFeatureSelectionX: gatingFeatureSelectionX, setGatingFeatureSelectionX: setGatingFeatureSelectionX, gatingFeatureSelectionY: gatingFeatureSelectionY, setGatingFeatureSelectionY: setGatingFeatureSelectionY, gatingFeatureValueTransform: featureValueTransform, setGatingFeatureValueTransform: (newValue) => {
|
|
226
244
|
setFeatureValueTransform(newValue);
|
|
227
245
|
setTargetX(null);
|
|
228
246
|
setTargetY(null);
|
|
229
247
|
setZoom(null);
|
|
230
|
-
}, gatingFeatureValueTransformCoefficient: featureValueTransformCoefficient, setGatingFeatureValueTransformCoefficient: setFeatureValueTransformCoefficient, geneSelectOptions: featureIndex, transformOptions: VALUE_TRANSFORM_OPTIONS }) })), children: [_jsx(EmptyMessage, { visible: !(gatingFeatureSelectionX && gatingFeatureSelectionY), message: `Select two ${plur(featureType, 2)} in the plot settings.` }), _jsx(Scatterplot, { ref: deckRef, uuid: uuid, theme: theme, hideTools: !(gatingFeatureSelectionX && gatingFeatureSelectionY), hideRecenter: !(gatingFeatureSelectionX && gatingFeatureSelectionY), viewState: { zoom, target: [targetX, targetY, targetZ] }, setViewState: setViewState, originalViewState: originalViewState, obsEmbeddingIndex: obsIndex, obsEmbedding: obsXY, cellFilter: cellFilter,
|
|
248
|
+
}, gatingFeatureValueTransformCoefficient: featureValueTransformCoefficient, setGatingFeatureValueTransformCoefficient: setFeatureValueTransformCoefficient, geneSelectOptions: featureIndex, transformOptions: VALUE_TRANSFORM_OPTIONS }) })), children: [_jsx(EmptyMessage, { visible: !(gatingFeatureSelectionX && gatingFeatureSelectionY), message: `Select two ${plur(featureType, 2)} in the plot settings.` }), _jsx(Scatterplot, { ref: deckRef, uuid: uuid, onSelectionBusy: setIsSelectionPending, theme: theme, hideTools: !(gatingFeatureSelectionX && gatingFeatureSelectionY), hideRecenter: !(gatingFeatureSelectionX && gatingFeatureSelectionY), viewState: { zoom, target: [targetX, targetY, targetZ] }, setViewState: setViewState, originalViewState: originalViewState, obsEmbeddingIndex: obsIndex, obsEmbedding: obsXY, cellFilter: cellFilter, cellHighlight: cellHighlight, obsColorIndices: obsColorIndices, cellSetPolygons: cellSetPolygons, cellSetLabelSize: cellSetLabelSize, cellSetLabelsVisible: cellSetLabelsVisible, cellSetPolygonsVisible: cellSetPolygonsVisible, setCellFilter: setCellFilter, setCellSelection: setCellSelectionProp, setCellHighlight: setCellHighlight, cellRadius: cellRadius, cellOpacity: cellOpacity, cellColorEncoding: cellColorEncoding, geneExpressionColormap: geneExpressionColormap, geneExpressionColormapRange: geneExpressionColormapRange, setComponentHover: () => {
|
|
231
249
|
setComponentHover(uuid);
|
|
232
250
|
}, updateViewInfo: setComponentViewInfo, getExpressionValue: getExpressionValue, getCellIsSelected: getCellIsSelected, embeddingPointsVisible: true }), !disableTooltip && (_jsx(ScatterplotTooltipSubscriber, { parentUuid: uuid, obsHighlight: cellHighlight, width: width, height: height, getObsInfo: getObsInfo }))] }));
|
|
233
251
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GatingSubscriber.js","sourceRoot":"","sources":["../src/GatingSubscriber.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GatingSubscriber.js","sourceRoot":"","sources":["../src/GatingSubscriber.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitessce/scatterplot-gating",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.6",
|
|
4
4
|
"author": "HIDIVE Lab at HMS",
|
|
5
5
|
"homepage": "http://vitessce.io",
|
|
6
6
|
"repository": {
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
"d3-array": "^2.4.0",
|
|
20
20
|
"lodash-es": "^4.17.21",
|
|
21
21
|
"react-aria": "^3.47.0",
|
|
22
|
-
"@vitessce/
|
|
23
|
-
"@vitessce/
|
|
24
|
-
"@vitessce/utils": "4.0.
|
|
25
|
-
"@vitessce/
|
|
26
|
-
"@vitessce/vit-s": "4.0.
|
|
27
|
-
"@vitessce/
|
|
22
|
+
"@vitessce/styles": "4.0.6",
|
|
23
|
+
"@vitessce/constants-internal": "4.0.6",
|
|
24
|
+
"@vitessce/sets-utils": "4.0.6",
|
|
25
|
+
"@vitessce/utils": "4.0.6",
|
|
26
|
+
"@vitessce/vit-s": "4.0.6",
|
|
27
|
+
"@vitessce/scatterplot": "4.0.6"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"react": "19.2.6",
|
package/src/GatingSubscriber.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, {
|
|
2
|
-
useState, useEffect, useCallback, useMemo,
|
|
2
|
+
useState, useEffect, useCallback, useMemo, useDeferredValue,
|
|
3
3
|
} from 'react';
|
|
4
4
|
import { extent } from 'd3-array';
|
|
5
5
|
import { isEqual } from 'lodash-es';
|
|
@@ -24,7 +24,8 @@ import {
|
|
|
24
24
|
useCoordinationScopes,
|
|
25
25
|
} from '@vitessce/vit-s';
|
|
26
26
|
import {
|
|
27
|
-
getCellSetPolygons, mergeObsSets, setObsSelection,
|
|
27
|
+
getCellSetPolygons, mergeObsSets, setObsSelection, treeToColorIndicesArray,
|
|
28
|
+
colorIndicesFromCodes,
|
|
28
29
|
} from '@vitessce/sets-utils';
|
|
29
30
|
import {
|
|
30
31
|
Scatterplot, ScatterplotTooltipSubscriber, ScatterplotOptions,
|
|
@@ -155,7 +156,9 @@ export function GatingSubscriber(props) {
|
|
|
155
156
|
), [gatingFeatureSelectionY]);
|
|
156
157
|
|
|
157
158
|
// Get data from loaders using the data hooks.
|
|
158
|
-
const [
|
|
159
|
+
const [
|
|
160
|
+
{ obsSets: cellSets, obsSetsColumns }, obsSetsStatus, obsSetsUrls, obsSetsError,
|
|
161
|
+
] = useObsSetsData(
|
|
159
162
|
loaders, dataset, false,
|
|
160
163
|
{ setObsSetSelection: setCellSetSelection, setObsSetColor: setCellSetColor },
|
|
161
164
|
{ obsSetSelection: cellSetSelection, obsSetColor: cellSetColor },
|
|
@@ -251,6 +254,7 @@ export function GatingSubscriber(props) {
|
|
|
251
254
|
]);
|
|
252
255
|
|
|
253
256
|
const [dynamicCellRadius, setDynamicCellRadius] = useState(cellRadiusFixed);
|
|
257
|
+
const [isSelectionPending, setIsSelectionPending] = useState(false);
|
|
254
258
|
const [dynamicCellOpacity, setDynamicCellOpacity] = useState(cellOpacityFixed);
|
|
255
259
|
|
|
256
260
|
const [originalViewState, setOriginalViewState] = useState(null);
|
|
@@ -268,14 +272,34 @@ export function GatingSubscriber(props) {
|
|
|
268
272
|
}, [additionalCellSets, cellSetColor, setCellColorEncoding,
|
|
269
273
|
setAdditionalCellSets, setCellSetColor, setCellSetSelection]);
|
|
270
274
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
275
|
+
// A set selection or color change re-encodes every observation in the memos
|
|
276
|
+
// below, which at atlas scale takes longer than a frame. Deferring these values
|
|
277
|
+
// lets React commit the urgent update first — the sets manager checkbox that
|
|
278
|
+
// initiated the change paints immediately — and re-render this view afterwards.
|
|
279
|
+
const deferredCellSetSelection = useDeferredValue(cellSetSelection);
|
|
280
|
+
const deferredCellSetColor = useDeferredValue(cellSetColor);
|
|
281
|
+
|
|
282
|
+
// Positional rather than keyed by observation ID: at atlas scale an ID-keyed color
|
|
283
|
+
// Map costs one string hash lookup per point per render, plus a per-observation
|
|
284
|
+
// color array whenever the selected sets carry confidence scores.
|
|
285
|
+
const obsColorIndices = useMemo(() => (
|
|
286
|
+
// When the loader provides raw categorical codes over this same observation
|
|
287
|
+
// axis (checked by reference), the encoding is one typed-array pass with no
|
|
288
|
+
// tree walk. colorIndicesFromCodes returns null for selections it cannot
|
|
289
|
+
// resolve (e.g. user-defined lasso selections), falling back to the tree.
|
|
290
|
+
(obsSetsColumns && obsSetsColumns.obsIndex === obsIndex
|
|
291
|
+
&& colorIndicesFromCodes({
|
|
292
|
+
columns: obsSetsColumns.columns,
|
|
293
|
+
obsIndex,
|
|
294
|
+
selectedNamePaths: deferredCellSetSelection,
|
|
295
|
+
cellSetColor: deferredCellSetColor,
|
|
296
|
+
theme,
|
|
297
|
+
}))
|
|
298
|
+
|| treeToColorIndicesArray(
|
|
299
|
+
mergedCellSets, deferredCellSetSelection, deferredCellSetColor, obsIndex, theme,
|
|
300
|
+
)
|
|
301
|
+
), [mergedCellSets, deferredCellSetSelection, deferredCellSetColor, obsIndex, theme,
|
|
302
|
+
obsSetsColumns]);
|
|
279
303
|
|
|
280
304
|
// cellSetPolygonCache is an array of tuples like [(key0, val0), (key1, val1), ...],
|
|
281
305
|
// where the keys are cellSetSelection arrays.
|
|
@@ -284,28 +308,28 @@ export function GatingSubscriber(props) {
|
|
|
284
308
|
const cacheGet = (cache, key) => cache.find(el => isEqual(el[0], key))?.[1];
|
|
285
309
|
const cellSetPolygons = useMemo(() => {
|
|
286
310
|
if ((cellSetLabelsVisible || cellSetPolygonsVisible)
|
|
287
|
-
&& !cacheHas(cellSetPolygonCache,
|
|
311
|
+
&& !cacheHas(cellSetPolygonCache, deferredCellSetSelection)
|
|
288
312
|
&& mergedCellSets?.tree?.length
|
|
289
313
|
&& obsXY
|
|
290
314
|
&& obsIndex
|
|
291
|
-
&&
|
|
315
|
+
&& deferredCellSetColor?.length) {
|
|
292
316
|
const newCellSetPolygons = getCellSetPolygons({
|
|
293
317
|
obsIndex,
|
|
294
318
|
obsEmbedding: obsXY,
|
|
295
319
|
cellSets: mergedCellSets,
|
|
296
|
-
cellSetSelection,
|
|
297
|
-
cellSetColor,
|
|
320
|
+
cellSetSelection: deferredCellSetSelection,
|
|
321
|
+
cellSetColor: deferredCellSetColor,
|
|
298
322
|
theme,
|
|
299
323
|
});
|
|
300
|
-
setCellSetPolygonCache(
|
|
324
|
+
setCellSetPolygonCache(
|
|
325
|
+
cache => [...cache, [deferredCellSetSelection, newCellSetPolygons]],
|
|
326
|
+
);
|
|
301
327
|
return newCellSetPolygons;
|
|
302
328
|
}
|
|
303
|
-
return cacheGet(cellSetPolygonCache,
|
|
329
|
+
return cacheGet(cellSetPolygonCache, deferredCellSetSelection) || [];
|
|
304
330
|
}, [cellSetPolygonsVisible, cellSetPolygonCache, cellSetLabelsVisible, theme,
|
|
305
|
-
obsIndex, obsXY, mergedCellSets,
|
|
306
|
-
|
|
331
|
+
obsIndex, obsXY, mergedCellSets, deferredCellSetSelection, deferredCellSetColor]);
|
|
307
332
|
|
|
308
|
-
const cellSelection = useMemo(() => Array.from(cellColors.keys()), [cellColors]);
|
|
309
333
|
|
|
310
334
|
const [xRange, yRange, xExtent, yExtent, numCells] = useMemo(() => {
|
|
311
335
|
if (obsXY && obsXY.data && obsXY.shape) {
|
|
@@ -357,10 +381,12 @@ export function GatingSubscriber(props) {
|
|
|
357
381
|
}, [xRange, yRange, xExtent, yExtent, numCells,
|
|
358
382
|
width, height, zoom, initialTargetX, initialTargetY, averageFillDensity]);
|
|
359
383
|
|
|
360
|
-
|
|
384
|
+
// With no set selection every observation counts as selected, matching the
|
|
385
|
+
// behavior of the ID-keyed color map this replaced.
|
|
386
|
+
const allCellsSelected = !(deferredCellSetSelection && mergedCellSets);
|
|
361
387
|
const getCellIsSelected = useCallback((object, { index }) => (
|
|
362
|
-
(
|
|
363
|
-
), [
|
|
388
|
+
(allCellsSelected || obsColorIndices.colorIndices[index] !== 0) ? 1.0 : 0.0
|
|
389
|
+
), [allCellsSelected, obsColorIndices]);
|
|
364
390
|
|
|
365
391
|
const cellRadius = (cellRadiusMode === 'manual' ? cellRadiusFixed : dynamicCellRadius);
|
|
366
392
|
const cellOpacity = (cellOpacityMode === 'manual' ? cellOpacityFixed : dynamicCellOpacity);
|
|
@@ -408,7 +434,7 @@ export function GatingSubscriber(props) {
|
|
|
408
434
|
removeGridComponent={removeGridComponent}
|
|
409
435
|
urls={urls}
|
|
410
436
|
theme={theme}
|
|
411
|
-
isReady={isReady}
|
|
437
|
+
isReady={isReady && !isSelectionPending}
|
|
412
438
|
helpText={helpText}
|
|
413
439
|
errors={errors}
|
|
414
440
|
options={(
|
|
@@ -463,6 +489,7 @@ export function GatingSubscriber(props) {
|
|
|
463
489
|
<Scatterplot
|
|
464
490
|
ref={deckRef}
|
|
465
491
|
uuid={uuid}
|
|
492
|
+
onSelectionBusy={setIsSelectionPending}
|
|
466
493
|
theme={theme}
|
|
467
494
|
hideTools={!(gatingFeatureSelectionX && gatingFeatureSelectionY)}
|
|
468
495
|
hideRecenter={!(gatingFeatureSelectionX && gatingFeatureSelectionY)}
|
|
@@ -472,9 +499,8 @@ export function GatingSubscriber(props) {
|
|
|
472
499
|
obsEmbeddingIndex={obsIndex}
|
|
473
500
|
obsEmbedding={obsXY}
|
|
474
501
|
cellFilter={cellFilter}
|
|
475
|
-
cellSelection={cellSelection}
|
|
476
502
|
cellHighlight={cellHighlight}
|
|
477
|
-
|
|
503
|
+
obsColorIndices={obsColorIndices}
|
|
478
504
|
cellSetPolygons={cellSetPolygons}
|
|
479
505
|
cellSetLabelSize={cellSetLabelSize}
|
|
480
506
|
cellSetLabelsVisible={cellSetLabelsVisible}
|