@vitessce/scatterplot-gating 3.4.12 → 3.5.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.
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-68f84e2a.js";
2
- import { B as BaseDecoder } from "./index-c5949f9a.js";
2
+ import { B as BaseDecoder } from "./index-c5f7bda6.js";
3
3
  import "react";
4
4
  import "@vitessce/vit-s";
5
5
  import "react-dom";
@@ -11017,7 +11017,8 @@ const ViewType$1 = {
11017
11017
  OBS_SET_FEATURE_VALUE_DISTRIBUTION: "obsSetFeatureValueDistribution",
11018
11018
  FEATURE_VALUE_HISTOGRAM: "featureValueHistogram",
11019
11019
  DOT_PLOT: "dotPlot",
11020
- FEATURE_BAR_PLOT: "featureBarPlot"
11020
+ FEATURE_BAR_PLOT: "featureBarPlot",
11021
+ BIOMARKER_SELECT: "biomarkerSelect"
11021
11022
  };
11022
11023
  const DataType$2 = {
11023
11024
  OBS_LABELS: "obsLabels",
@@ -11056,6 +11057,9 @@ const FileType$1 = {
11056
11057
  // OME-Zarr
11057
11058
  IMAGE_OME_ZARR: "image.ome-zarr",
11058
11059
  OBS_SEGMENTATIONS_OME_ZARR: "obsSegmentations.ome-zarr",
11060
+ // OME-Zarr - Zipped
11061
+ IMAGE_OME_ZARR_ZIP: "image.ome-zarr.zip",
11062
+ OBS_SEGMENTATIONS_OME_ZARR_ZIP: "obsSegmentations.ome-zarr.zip",
11059
11063
  // AnnData
11060
11064
  OBS_FEATURE_MATRIX_ANNDATA_ZARR: "obsFeatureMatrix.anndata.zarr",
11061
11065
  OBS_FEATURE_COLUMNS_ANNDATA_ZARR: "obsFeatureColumns.anndata.zarr",
@@ -11709,6 +11713,11 @@ const COMPONENT_COORDINATION_TYPES = {
11709
11713
  CoordinationType$1.OBS_SET_COLOR,
11710
11714
  CoordinationType$1.OBS_COLOR_ENCODING,
11711
11715
  CoordinationType$1.ADDITIONAL_OBS_SETS
11716
+ ],
11717
+ [ViewType$1.BIOMARKER_SELECT]: [
11718
+ CoordinationType$1.FEATURE_SELECTION,
11719
+ CoordinationType$1.SAMPLE_SET_SELECTION
11720
+ // TODO: create coordination types for internal state of the biomarker selection view?
11712
11721
  ]
11713
11722
  };
11714
11723
  const ViewType = {
@@ -12012,24 +12021,29 @@ const imageOmeZarrSchema = z.object({
12012
12021
  imageOmeZarrSchema.extend({
12013
12022
  obsTypesFromChannelNames: z.boolean().optional()
12014
12023
  });
12015
- const imageSpatialdataSchema = imageOmeZarrSchema.extend({
12016
- path: z.string()
12024
+ const imageSpatialdataSchema = z.object({
12025
+ path: z.string(),
12026
+ coordinateSystem: z.string().optional().describe('The name of a coordinate transformation output used to transform the image. If not provided, the "global" coordinate system is assumed.')
12017
12027
  });
12018
12028
  const obsSegmentationsSpatialdataSchema = z.object({
12019
- // TODO: should this also extend the imageOmeZarrSchema?
12020
12029
  // TODO: should this be renamed labelsSpatialdataSchema?
12021
12030
  // TODO: support obsTypesFromChannelNames?
12022
- path: z.string()
12031
+ path: z.string(),
12032
+ tablePath: z.string().optional().describe("The path to a table which annotates the labels. If available but not specified, the spot identifiers may not be aligned with associated tabular data as expected."),
12033
+ coordinateSystem: z.string().optional().describe('The name of a coordinate transformation output used to transform the image. If not provided, the "global" coordinate system is assumed.')
12023
12034
  });
12024
12035
  z.object({
12025
- path: z.string()
12036
+ path: z.string(),
12037
+ coordinateSystem: z.string().optional().describe('The name of a coordinate transformation output used to transform the coordinates. If not provided, the "global" coordinate system is assumed.')
12026
12038
  });
12027
12039
  const obsSpotsSpatialdataSchema = z.object({
12028
12040
  path: z.string(),
12029
- tablePath: z.string().optional().describe("The path to a table which annotates the spots. If available but not specified, the spot identifiers may not be aligned with associated tabular data as expected.")
12041
+ tablePath: z.string().optional().describe("The path to a table which annotates the spots. If available but not specified, the spot identifiers may not be aligned with associated tabular data as expected."),
12042
+ coordinateSystem: z.string().optional().describe('The name of a coordinate transformation output used to transform the coordinates and radii. If not provided, the "global" coordinate system is assumed.')
12030
12043
  });
12031
12044
  const obsFeatureMatrixSpatialdataSchema = annDataObsFeatureMatrix.extend({
12032
- region: z.string().describe("The name of a region to use to filter instances (i.e., rows) in the table").optional()
12045
+ region: z.string().describe("The name of a region to use to filter instances (i.e., rows) in the table").optional(),
12046
+ coordinateSystem: z.string().optional().describe('The name of a coordinate transformation output used to transform the image. If not provided, the "global" coordinate system is assumed.')
12033
12047
  });
12034
12048
  const obsSetsSpatialdataSchema = z.object({
12035
12049
  region: z.string().describe("The name of a region to use to filter instances (i.e., rows) in the table").optional(),
@@ -12130,15 +12144,21 @@ anndataZarrSchema.extend({
12130
12144
  z.object({
12131
12145
  // TODO: should `image` be a special schema
12132
12146
  // to allow specifying fileUid (like for embeddingType)?
12147
+ // TODO: allow multiple images
12133
12148
  image: imageSpatialdataSchema,
12134
12149
  // TODO: should this be a special schema
12135
12150
  // to allow specifying fileUid (like for embeddingType)?
12151
+ // TODO: allow multiple labels
12136
12152
  labels: obsSegmentationsSpatialdataSchema,
12137
12153
  obsFeatureMatrix: obsFeatureMatrixSpatialdataSchema,
12138
12154
  obsSpots: obsSpotsSpatialdataSchema,
12139
12155
  // TODO: obsPoints
12140
12156
  // TODO: obsLocations
12141
- obsSets: obsSetsSpatialdataSchema
12157
+ obsSets: obsSetsSpatialdataSchema,
12158
+ // TODO: obsEmbedding
12159
+ // TODO: obsLabels
12160
+ // TODO: featureLabels
12161
+ coordinateSystem: z.string().optional().describe("The name of a coordinate transformation output used to transform all elements which lack a per-element coordinateSystem property.")
12142
12162
  }).partial();
12143
12163
  z.object({
12144
12164
  obsLabelsTypes: z.array(z.string()).optional(),
@@ -89533,7 +89553,7 @@ keysShim.shim = function shimObjectKeys() {
89533
89553
  return Object.keys || keysShim;
89534
89554
  };
89535
89555
  var objectKeys$1 = keysShim;
89536
- var shams$2 = function hasSymbols() {
89556
+ var shams$1 = function hasSymbols() {
89537
89557
  if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") {
89538
89558
  return false;
89539
89559
  }
@@ -89578,9 +89598,9 @@ var shams$2 = function hasSymbols() {
89578
89598
  }
89579
89599
  return true;
89580
89600
  };
89581
- var hasSymbols$4 = shams$2;
89582
- var shams$1 = function hasToStringTagShams() {
89583
- return hasSymbols$4() && !!Symbol.toStringTag;
89601
+ var hasSymbols$3 = shams$1;
89602
+ var shams = function hasToStringTagShams() {
89603
+ return hasSymbols$3() && !!Symbol.toStringTag;
89584
89604
  };
89585
89605
  var esErrors = Error;
89586
89606
  var _eval = EvalError;
@@ -89590,8 +89610,8 @@ var syntax = SyntaxError;
89590
89610
  var type = TypeError;
89591
89611
  var uri = URIError;
89592
89612
  var origSymbol = typeof Symbol !== "undefined" && Symbol;
89593
- var hasSymbolSham = shams$2;
89594
- var hasSymbols$3 = function hasNativeSymbols() {
89613
+ var hasSymbolSham = shams$1;
89614
+ var hasSymbols$2 = function hasNativeSymbols() {
89595
89615
  if (typeof origSymbol !== "function") {
89596
89616
  return false;
89597
89617
  }
@@ -89607,11 +89627,12 @@ var hasSymbols$3 = function hasNativeSymbols() {
89607
89627
  return hasSymbolSham();
89608
89628
  };
89609
89629
  var test = {
89630
+ __proto__: null,
89610
89631
  foo: {}
89611
89632
  };
89612
89633
  var $Object$1 = Object;
89613
89634
  var hasProto$1 = function hasProto() {
89614
- return { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object$1);
89635
+ return { __proto__: test }.foo === test.foo && !(test instanceof $Object$1);
89615
89636
  };
89616
89637
  var ERROR_MESSAGE = "Function.prototype.bind called on incompatible ";
89617
89638
  var toStr$2 = Object.prototype.toString;
@@ -89726,7 +89747,7 @@ var ThrowTypeError = $gOPD$2 ? function() {
89726
89747
  }
89727
89748
  }
89728
89749
  }() : throwTypeError;
89729
- var hasSymbols$2 = hasSymbols$3();
89750
+ var hasSymbols$1 = hasSymbols$2();
89730
89751
  var hasProto2 = hasProto$1();
89731
89752
  var getProto$1 = Object.getPrototypeOf || (hasProto2 ? function(x2) {
89732
89753
  return x2.__proto__;
@@ -89738,7 +89759,7 @@ var INTRINSICS = {
89738
89759
  "%AggregateError%": typeof AggregateError === "undefined" ? undefined$1 : AggregateError,
89739
89760
  "%Array%": Array,
89740
89761
  "%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined$1 : ArrayBuffer,
89741
- "%ArrayIteratorPrototype%": hasSymbols$2 && getProto$1 ? getProto$1([][Symbol.iterator]()) : undefined$1,
89762
+ "%ArrayIteratorPrototype%": hasSymbols$1 && getProto$1 ? getProto$1([][Symbol.iterator]()) : undefined$1,
89742
89763
  "%AsyncFromSyncIteratorPrototype%": undefined$1,
89743
89764
  "%AsyncFunction%": needsEval,
89744
89765
  "%AsyncGenerator%": needsEval,
@@ -89769,10 +89790,10 @@ var INTRINSICS = {
89769
89790
  "%Int32Array%": typeof Int32Array === "undefined" ? undefined$1 : Int32Array,
89770
89791
  "%isFinite%": isFinite,
89771
89792
  "%isNaN%": isNaN,
89772
- "%IteratorPrototype%": hasSymbols$2 && getProto$1 ? getProto$1(getProto$1([][Symbol.iterator]())) : undefined$1,
89793
+ "%IteratorPrototype%": hasSymbols$1 && getProto$1 ? getProto$1(getProto$1([][Symbol.iterator]())) : undefined$1,
89773
89794
  "%JSON%": typeof JSON === "object" ? JSON : undefined$1,
89774
89795
  "%Map%": typeof Map === "undefined" ? undefined$1 : Map,
89775
- "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols$2 || !getProto$1 ? undefined$1 : getProto$1((/* @__PURE__ */ new Map())[Symbol.iterator]()),
89796
+ "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols$1 || !getProto$1 ? undefined$1 : getProto$1((/* @__PURE__ */ new Map())[Symbol.iterator]()),
89776
89797
  "%Math%": Math,
89777
89798
  "%Number%": Number,
89778
89799
  "%Object%": Object,
@@ -89785,11 +89806,11 @@ var INTRINSICS = {
89785
89806
  "%Reflect%": typeof Reflect === "undefined" ? undefined$1 : Reflect,
89786
89807
  "%RegExp%": RegExp,
89787
89808
  "%Set%": typeof Set === "undefined" ? undefined$1 : Set,
89788
- "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols$2 || !getProto$1 ? undefined$1 : getProto$1((/* @__PURE__ */ new Set())[Symbol.iterator]()),
89809
+ "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols$1 || !getProto$1 ? undefined$1 : getProto$1((/* @__PURE__ */ new Set())[Symbol.iterator]()),
89789
89810
  "%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined$1 : SharedArrayBuffer,
89790
89811
  "%String%": String,
89791
- "%StringIteratorPrototype%": hasSymbols$2 && getProto$1 ? getProto$1(""[Symbol.iterator]()) : undefined$1,
89792
- "%Symbol%": hasSymbols$2 ? Symbol : undefined$1,
89812
+ "%StringIteratorPrototype%": hasSymbols$1 && getProto$1 ? getProto$1(""[Symbol.iterator]()) : undefined$1,
89813
+ "%Symbol%": hasSymbols$1 ? Symbol : undefined$1,
89793
89814
  "%SyntaxError%": $SyntaxError$1,
89794
89815
  "%ThrowTypeError%": ThrowTypeError,
89795
89816
  "%TypedArray%": TypedArray,
@@ -90158,7 +90179,7 @@ var callBound$2 = function callBoundIntrinsic(name2, allowMissing) {
90158
90179
  }
90159
90180
  return intrinsic;
90160
90181
  };
90161
- var hasToStringTag$2 = shams$1();
90182
+ var hasToStringTag$2 = shams();
90162
90183
  var callBound$1 = callBound$2;
90163
90184
  var $toString$1 = callBound$1("Object.prototype.toString");
90164
90185
  var isStandardArguments = function isArguments2(value) {
@@ -90203,7 +90224,7 @@ hasPropertyDescriptors2.hasArrayLengthDefineBug = function hasArrayLengthDefineB
90203
90224
  };
90204
90225
  var hasPropertyDescriptors_1 = hasPropertyDescriptors2;
90205
90226
  var keys$1 = objectKeys$1;
90206
- var hasSymbols$1 = typeof Symbol === "function" && typeof Symbol("foo") === "symbol";
90227
+ var hasSymbols2 = typeof Symbol === "function" && typeof Symbol("foo") === "symbol";
90207
90228
  var toStr$1 = Object.prototype.toString;
90208
90229
  var concat = Array.prototype.concat;
90209
90230
  var defineDataProperty2 = defineDataProperty$1;
@@ -90230,7 +90251,7 @@ var defineProperty$3 = function(object2, name2, value, predicate) {
90230
90251
  var defineProperties = function(object2, map2) {
90231
90252
  var predicates = arguments.length > 2 ? arguments[2] : {};
90232
90253
  var props = keys$1(map2);
90233
- if (hasSymbols$1) {
90254
+ if (hasSymbols2) {
90234
90255
  props = concat.call(props, Object.getOwnPropertySymbols(map2));
90235
90256
  }
90236
90257
  for (var i2 = 0; i2 < props.length; i2 += 1) {
@@ -90281,10 +90302,6 @@ define$2(polyfill$1, {
90281
90302
  shim: shim$2
90282
90303
  });
90283
90304
  var objectIs = polyfill$1;
90284
- var hasSymbols2 = shams$2;
90285
- var shams = function hasToStringTagShams2() {
90286
- return hasSymbols2() && !!Symbol.toStringTag;
90287
- };
90288
90305
  var callBound = callBound$2;
90289
90306
  var hasToStringTag$1 = shams();
90290
90307
  var has$3;
@@ -90491,7 +90508,7 @@ var tryDateObject = function tryDateGetDayCall(value) {
90491
90508
  };
90492
90509
  var toStr = Object.prototype.toString;
90493
90510
  var dateClass = "[object Date]";
90494
- var hasToStringTag = shams$1();
90511
+ var hasToStringTag = shams();
90495
90512
  var isDateObject = function isDateObject2(value) {
90496
90513
  if (typeof value !== "object" || value === null) {
90497
90514
  return false;
@@ -123811,16 +123828,16 @@ function addDecoder(cases, importFn) {
123811
123828
  }
123812
123829
  cases.forEach((c2) => registry$1.set(c2, importFn));
123813
123830
  }
123814
- addDecoder([void 0, 1], () => import("./raw-61e39bd3.js").then((m2) => m2.default));
123815
- addDecoder(5, () => import("./lzw-857aa477.js").then((m2) => m2.default));
123831
+ addDecoder([void 0, 1], () => import("./raw-76bd4a80.js").then((m2) => m2.default));
123832
+ addDecoder(5, () => import("./lzw-f1763f1b.js").then((m2) => m2.default));
123816
123833
  addDecoder(6, () => {
123817
123834
  throw new Error("old style JPEG compression is not supported.");
123818
123835
  });
123819
- addDecoder(7, () => import("./jpeg-7e5e6ad5.js").then((m2) => m2.default));
123820
- addDecoder([8, 32946], () => import("./deflate-acef7820.js").then((m2) => m2.default));
123821
- addDecoder(32773, () => import("./packbits-f7f733c7.js").then((m2) => m2.default));
123822
- addDecoder(34887, () => import("./lerc-94ffa556.js").then((m2) => m2.default));
123823
- addDecoder(50001, () => import("./webimage-a60dfc27.js").then((m2) => m2.default));
123836
+ addDecoder(7, () => import("./jpeg-16205d41.js").then((m2) => m2.default));
123837
+ addDecoder([8, 32946], () => import("./deflate-2f9a6f39.js").then((m2) => m2.default));
123838
+ addDecoder(32773, () => import("./packbits-dba200ba.js").then((m2) => m2.default));
123839
+ addDecoder(34887, () => import("./lerc-88582bf6.js").then((m2) => m2.default));
123840
+ addDecoder(50001, () => import("./webimage-89fabb16.js").then((m2) => m2.default));
123824
123841
  function decodeRowAcc(row, stride) {
123825
123842
  let length2 = row.length - stride;
123826
123843
  let offset5 = 0;
@@ -150257,6 +150274,7 @@ const CELLS_LAYER_ID = "scatterplot";
150257
150274
  const LABEL_FONT_FAMILY = "-apple-system, 'Helvetica Neue', Arial, sans-serif";
150258
150275
  const NUM_FORCE_SIMULATION_TICKS = 100;
150259
150276
  const LABEL_UPDATE_ZOOM_DELTA = 0.25;
150277
+ const POINT_LAYER_Z_INDEX = 0;
150260
150278
  const makeDefaultGetCellColors = (cellColors, obsIndex, theme) => (object2, { index: index2 }) => {
150261
150279
  const [r2, g2, b, a2] = cellColors && obsIndex && cellColors.get(obsIndex[index2]) || getDefaultColor(theme);
150262
150280
  return [r2, g2, b, 255 * (a2 || 1)];
@@ -150274,7 +150292,7 @@ const makeFlippedGetObsCoords = (obsEmbedding) => (i2) => [
150274
150292
  const getPosition = (object2, { index: index2, data, target }) => {
150275
150293
  target[0] = data.src.obsEmbedding.data[0][index2];
150276
150294
  target[1] = -data.src.obsEmbedding.data[1][index2];
150277
- target[2] = 0;
150295
+ target[2] = POINT_LAYER_Z_INDEX;
150278
150296
  return target;
150279
150297
  };
150280
150298
  const contourGetWeight = (object2, { index: index2, data }) => data.src.featureValues[index2];
@@ -150284,7 +150302,6 @@ const contourGetPosition = (object2, { index: index2, data, target }) => {
150284
150302
  target[2] = 0;
150285
150303
  return target;
150286
150304
  };
150287
- const contourGetPolygonOffset = () => [0, 20];
150288
150305
  class Scatterplot extends AbstractSpatialOrScatterplot {
150289
150306
  constructor(props) {
150290
150307
  super(props);
@@ -150324,7 +150341,6 @@ class Scatterplot extends AbstractSpatialOrScatterplot {
150324
150341
  data: deckData,
150325
150342
  getWeight: contourGetWeight,
150326
150343
  getPosition: contourGetPosition,
150327
- getPolygonOffset: contourGetPolygonOffset,
150328
150344
  contours: contourThresholds.map((threshold, i2) => ({
150329
150345
  threshold: contoursFilled ? [threshold, threshold[i2 + 1] || Infinity] : threshold,
150330
150346
  // TODO: should the opacity steps be uniform? Should align with human perception.
@@ -150335,7 +150351,10 @@ class Scatterplot extends AbstractSpatialOrScatterplot {
150335
150351
  // a
150336
150352
  contoursFilled ? (i2 + 0.5) / contourThresholds.length * 255 : (i2 + 1) / contourThresholds.length * 255
150337
150353
  ],
150338
- strokeWidth: 2
150354
+ strokeWidth: 2,
150355
+ // We need to specify a greater z-index so that the contour layers
150356
+ // will render on top of the point layer.
150357
+ zIndex: POINT_LAYER_Z_INDEX + 1 + i2
150339
150358
  })),
150340
150359
  aggregation: "MEAN",
150341
150360
  gpuAggregation: true,
@@ -151356,7 +151375,7 @@ function GatingSubscriber(props) {
151356
151375
  const getCellIsSelected = useCallback((object2, { index: index2 }) => (cellSelectionSet || /* @__PURE__ */ new Set([])).has(obsIndex[index2]) ? 1 : 0, [cellSelectionSet, obsIndex]);
151357
151376
  const cellRadius = cellRadiusMode === "manual" ? cellRadiusFixed : dynamicCellRadius;
151358
151377
  const cellOpacity = cellOpacityMode === "manual" ? cellOpacityFixed : dynamicCellOpacity;
151359
- const [uint8ExpressionData] = useUint8FeatureSelection(expressionDataColor);
151378
+ const { normData: uint8ExpressionData } = useUint8FeatureSelection(expressionDataColor);
151360
151379
  const getExpressionValue = useExpressionValueGetter({
151361
151380
  instanceObsIndex: obsIndex,
151362
151381
  matrixObsIndex: obsIndex,
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { G } from "./index-c5949f9a.js";
1
+ import { G } from "./index-c5f7bda6.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-c5949f9a.js";
1
+ import { B as BaseDecoder } from "./index-c5f7bda6.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-68f84e2a.js";
2
- import { g as getDefaultExportFromCjs, B as BaseDecoder } from "./index-c5949f9a.js";
2
+ import { g as getDefaultExportFromCjs, B as BaseDecoder } from "./index-c5f7bda6.js";
3
3
  import "react";
4
4
  import "@vitessce/vit-s";
5
5
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-c5949f9a.js";
1
+ import { B as BaseDecoder } from "./index-c5f7bda6.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-c5949f9a.js";
1
+ import { B as BaseDecoder } from "./index-c5f7bda6.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-c5949f9a.js";
1
+ import { B as BaseDecoder } from "./index-c5f7bda6.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-c5949f9a.js";
1
+ import { B as BaseDecoder } from "./index-c5f7bda6.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -170,7 +170,7 @@ export function GatingSubscriber(props) {
170
170
  const getCellIsSelected = useCallback((object, { index }) => ((cellSelectionSet || new Set([])).has(obsIndex[index]) ? 1.0 : 0.0), [cellSelectionSet, obsIndex]);
171
171
  const cellRadius = (cellRadiusMode === 'manual' ? cellRadiusFixed : dynamicCellRadius);
172
172
  const cellOpacity = (cellOpacityMode === 'manual' ? cellOpacityFixed : dynamicCellOpacity);
173
- const [uint8ExpressionData] = useUint8FeatureSelection(expressionDataColor);
173
+ const { normData: uint8ExpressionData } = useUint8FeatureSelection(expressionDataColor);
174
174
  // Set up a getter function for gene expression values, to be used
175
175
  // by the DeckGL layer to obtain values for instanced attributes.
176
176
  const getExpressionValue = useExpressionValueGetter({
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vitessce/scatterplot-gating",
3
- "version": "3.4.12",
4
- "author": "Gehlenborg Lab",
3
+ "version": "3.5.0",
4
+ "author": "HIDIVE Lab at HMS",
5
5
  "homepage": "http://vitessce.io",
6
6
  "repository": {
7
7
  "type": "git",
@@ -20,11 +20,11 @@
20
20
  "d3-array": "^2.4.0",
21
21
  "lodash-es": "^4.17.21",
22
22
  "react-aria": "^3.28.0",
23
- "@vitessce/constants-internal": "3.4.12",
24
- "@vitessce/scatterplot": "3.4.12",
25
- "@vitessce/sets-utils": "3.4.12",
26
- "@vitessce/utils": "3.4.12",
27
- "@vitessce/vit-s": "3.4.12"
23
+ "@vitessce/constants-internal": "3.5.0",
24
+ "@vitessce/scatterplot": "3.5.0",
25
+ "@vitessce/sets-utils": "3.5.0",
26
+ "@vitessce/utils": "3.5.0",
27
+ "@vitessce/vit-s": "3.5.0"
28
28
  },
29
29
  "devDependencies": {
30
30
  "react": "^18.0.0",
@@ -325,7 +325,7 @@ export function GatingSubscriber(props) {
325
325
  const cellRadius = (cellRadiusMode === 'manual' ? cellRadiusFixed : dynamicCellRadius);
326
326
  const cellOpacity = (cellOpacityMode === 'manual' ? cellOpacityFixed : dynamicCellOpacity);
327
327
 
328
- const [uint8ExpressionData] = useUint8FeatureSelection(expressionDataColor);
328
+ const { normData: uint8ExpressionData } = useUint8FeatureSelection(expressionDataColor);
329
329
 
330
330
  // Set up a getter function for gene expression values, to be used
331
331
  // by the DeckGL layer to obtain values for instanced attributes.