- Added the optional
uid
property for view definitions in the view config.
- Fixed buggy view closing behavior by using the view
uid
rather than the index as the componentkey
. - Update code to reflect renaming of the default branch from
master
tomain
.
1.1.21 - 2022-04-27
- Adds new view config schema version
1.0.8
to support multipledataset
coordination scopes and dataset-specific coordination scope mappings for all other coordination typesdatasets: [ { uid: 'my-query', ... }, { uid: 'some-atlas', ... }, ], coordinationSpace: { dataset: { REFERENCE: 'some-atlas', QUERY: 'my-query', }, embeddingType: { common: 'UMAP', }, embeddingZoom: { refZoom: 2, qryZoom: 4, }, ..., }, layout: [ { component: 'qrComparisonScatterplot', coordinationScopes: { dataset: ['REFERENCE', 'QUERY'], embeddingType: 'common', embeddingZoom: { REFERENCE: 'refZoom', QUERY: 'qryZoom' }, }, x: 0, y: 0, w: 5, h: 12, }, ..., ], ...
- Add support for plugin view types, coordination types, and file types.
- Added more exports in
src/index.js
to better support plugin development. - Added data troubleshooting documentation page.
- Added more old presentation links to the README.
- Merged dependabot PRs.
- Allow
Description
component to render without a dataset.
1.1.20 - 2022-04-21
- Add a tutorial that describes how to deploy a Vitessce web app to GitHub pages.
- Support
var
alias for AnnData to display altenrative gene names via newgeneAlias
field.
- Use a hash table lookup instead of calling
indexOf
repeatedly for the heatmap component tiling. - Fix
molecules
layer sizing
1.1.19 - 2022-03-30
- Added a roadmap page to the documentation.
- Update README: Point users to vitessce.io, use smaller screenshots, drop low-level details.
- Upgrade Viv to 0.12.6 to fix shader compilation issue with interleaved RGB images
- Fixed layer controller raster channel slider bug, related to MUI slider issue.
- Started to update the documentation to use the term "view" rather than "component".
1.1.18 - 2022-02-14
- Added the
scoreName
property to the view config schema for theanndata-cell-sets.zarr
file type. - Added a new documentation site.
- Added the
./create-release.sh
Bash script to automate some steps of the release process.
- Fix selection issue for bitmasks in external applications.
- Update deployment scripts to push the documentation site to
vitessce.io
and the minimal demo todev.vitessce.io
. - Fix bug preventing user-defined colors provided via
cell-sets.json
from being used in the visualization. - Upgrade
@material-ui/core
dependency from4.8.3
to4.12.3
in package-lock.json. - Fix issues in the
LayerController
related to MUI's change fromExpansionPanel
toAccordion
. - Added support for OME-NGFF v0.3 by upgrading Viv to
0.12.0
- Bump dependency versions based on
npm audit
and dependabot pull requests. - Updated Heatmap
layerFilter
function to reflect changes between deck.gl 8.5 and 8.6 - Updated R package URLs (to reflect repo name change from
vitessce-r
tovitessceR
). - Bump deck.gl version from
8.6.0
to8.6.7
and bump viv version from0.12.0
to0.12.5
to fix GLSL errors for 3d on chrome issue.
1.1.17 - 2021-11-04
- Updated the
build-lib:prod
npm script inpackage.json
to generate theesm
build in addition to theumd
build. - Fixed bug preventing opening of the popper menu for channel colors in the spatial layer controller component.
- Fixed bug where the border of polygons did not show expression values. Needed to make sure instanced attributes were used when appropriate.
- Fixed tooltip z-index bug by switching a custom implementation to the MUI
<Popper/>
component. - Changed
Array(...new Set(x))
toArray.from(new Set(x))
inCellSetsZarrLoader.js
to prevent compilation of the former toArray.apply(void 0, new Set(x))
. - Updated styles of
<ChannelSelectionDropdown/>
to prevent text cutoff.
1.1.16 - 2021-10-26
- Added support for passing an array to
setNames
withinoptions
objects for theanndata-cell-sets.zarr
file type, which enables creating cell set hierarchies based on coarse-to-fine columns inadata.obs
. - Add esbuild script to generate ES Module library bundle
- Fix bitmask picking/highlighting.
- Upgrade
Viv
to 0.11.0 - Fixed radius size of "edit handle" points rendered by the nebula.gl
EditableGeoJsonLayer
withinSelectionLayer
. - Fixed incorrect cacheing of data sources by URL when URL is undefined (for instance, the
raster.json
data type may useoptions
in place ofurl
).
1.1.15 - 2021-09-21
- PR template including reminder for potential R and python package PR's when version schema changes.
- Fix channel settings consistency issue while channels are loading for 3D/large imaging datasets.
- deck.gl should be pinned to minor version
- Upgrade Viv to 0.10.6 and deck.gl to 8.5
- Don't show image layer buttons if there is only one layer.
- Fix spatial options to only show what is necessary and display at all if necessary.
- Fix bug introduced by #1037 that broke channel removal/addition.
- Fix setting default schema values for properties that are not in the current deck.gl view state (for example, the z direction for
target
). - Moved creation of
useViewConfigStore
anduseAuxiliaryStore
to theViewConfigProvider
andAuxiliaryProvider
contexts (rather than creating global stores).
1.1.14 - 2021-09-01
- Add loading callbacks for gene selection.
- Added cell opacity modes
- Auto mode (default)
- Manual mode
- Added cell radius modes
- Auto mode (default)
- Manual mode
- Added a slider for
geneExpressionColormapRange
to theScatterplotOptions
component.
- Prevent heatmap re-ordering when gene selection is made.
- Improve handling of large, thin volumes. Those that cannot be loaded at all should not be shown with volume options.
- Switched to performing quantitative color mapping on the scatterplot shaders to enable fast responses to the heatmap colormap slider interactions.
- Updated scatterplot and heatmap shaders to take the
geneExpressionColormap
coordination value into account.
1.1.13 - 2021-08-10
disableChannelsIfRgbDetected
prop for turning of channel controllers when rgb is detected.
- Introduce two-step data loaders for AnnData "files".
- Update README to have more info on using view configs via url parameters.
- Add a check for schema changes - schemas may not be updated once published, only new ones added.
- Make two-step data loaders universal for all file types.
- Upgrade
higlass-zarr-datafetchers
to 0.2.1 to prevent the latest Zarr.js from making failed HEAD requests. - Replace "hubmapconsortium/vitessce" with "vitessce/vitessce"
- Fixed performance issue involving selection of many cells by using
Set.has
rather thanArray.includes
.
1.1.12 - 2021-07-20
- Attach on load callbacks and loading indicators to layer controller when using (global) selection slider.
- Added a new view config version
1.0.2
with corresponding upgrade function to fix backwards compatibility of the layer controller. The upgrade function sets the propglobalDisable3d
for any layer controller components to keep the previous 2D-only functionality that older view configs would expect.
- Change bitmask rendering to only display a unique pixel value instead of blending.
- Use component height for determining 3D sizing.
- Use state rather than computing every render.
- Fix cell highlight bug with bitmask where tooltip information remains on screen after no longer highlighting.
- No selection of cells in bitmask now results in default "grey" color instead of the last selected cell set.
- Cache computation of internal data structures on
AnnData
zarr loaders. - Upgrade zarr.js to 0.4.0
- Make getting node size efficient by using
reduce
instead oflength
. - Fixed backwards-compatibility
spatialRasterLayers
bugs:- The layer
type
should not be used, since it is currently expected to be either"raster"
or"bitmask"
, but previously was allowed to be any string including"t"
. Instead, need to detect whether the layer is a bitmask layer usinglayerMeta.metadata.isBitmask
defined in theraster.json
file definition. - The
visible
property was previously only available for channels. Now, there is a per-layervisible
property, but old view configs may not contain this. Therefore, we need to explicitly check that the value is a boolean rather than simply falsyundefined
ornull
. - Enforce
type
ofspatialRasterLayers
layer asbitmask
orraster
.
- The layer
1.1.11 - 2021-06-25
- Global visibility button next to name in layer controller.
- Volumetric ray casting from
Viv
- Upgrade
Viv
to 0.10.4 - Add new coordination types
spatialRotationX
spatialRotationY
spatialRotationZ
spatialRotationOrbit
spatialOrbitAxis
and updatespatialRasterLayers
with new parts - Add spatial view state coordination types to
LayerController
- Update UI for
LayerController
- Upgrade
- Global visbiility prop per layer in
spatialRasterLayers
. - Add indication to Y axis title of cell set expression violin plot when log-transformation is active.
- Cache cell set polygon outputs and do not calculate them unless requested.
- Modify the cache to use an array of tuples, since using an array as an object key results in conversion to string.
- Clean up
getFlatArrDecompressed
fetching. - Fix bitmask remove button style.
- Offsets error message gives the URL that failed, and the HTTP status.
- Don't show 3D dropdown if only 2D is available.
- Don't show Volume tab (or any tabs) when 3D is not available.
1.1.10 - 2021-05-19
- Add support for bitmasks to
Spatial
component and raster schema. - Worker pool for processing heatmap tiles.
- Use GH Action for Cypress specifically due to random failures on OME-TIFF example.
- Use raster loader for initial view state when present instead of cells.
- Fix
VlenUtf8
parsing for zarr. - Fix bug where adding/removing layers only adds a
bitmask
controller. - Fix condition for showing lasso with bitmask and/or centroids.
- Fix 0's displaying when selection is not enabled for
Spatial
. - Fix bug where polygons or centroids would show under the
bitmask
. bitmask
color texture creation assumed thatcellColors
prop was only rgb, but it can be rgba.- Fix bug where quadtree wouldn't work with only scatterplot.
- Fix controller padding bug.
- Ensure
VlenUtf8
filter is only used/checked when necessary.
1.1.9 - 2021-05-07
- Add opacity slider when
layerController
is closed, with label.
- Fix
cellSetColor
null bug. - Improve violin plot performance by making
useExpressionByCellSet
faster. - Allow for autosizing
CellSetExpressionPlot
bottom margin depending on axis labels. - Make margin bottom of
CellSetExpressionPlot
proportional to the square root of the number of characters because thelabelAngle
is 45.
1.1.8 - 2021-03-31
- Don't request
zattrs
every time when runningloadGeneSelection
on the AnnData loader. - Fixed scale bar not displaying from
Viv
0.9.3
issue. - Fixed interleaved image not dispalying bug.
- Fix
raster
schema bug. - Cache initial load of image settings.
1.1.7 - 2021-03-24
- Added logo to README.
- Log2 (plus 1) scaling for Violin Plot
- Add gene name to expression violin plot.
- Added a new view config schema version
1.0.1
which splitsspatialLayers
intospatialRasterLayers
,spatialCellsLayer
,spatialMoleculesLayer
, andspatialNeighborhoodsLayer
.- Added an auto-upgrade function to upgrade from v1.0.0 to v1.0.1.
- Spatial layer definition objects in v1.0.1 do not have a
type
property.
- Added support for OME-Zarr raster files with the
OmeZarrLoader
class. - Added a
title
prop for all subscriber components, to allow users to override component titles through the view config. fetchOptions
for zarr loader viarequestInit
in config.
- Fix bug from #867 where the view config is temporarily invalid due to null values.
- Separate out hooks to allow for arbitrary gene slicing.
- Update AnnData loader to handle artbitrary gene slicing.
- Updated the data hook functions to handle coordination value initialization, rather than doing initialization at the subscriber component level.
useDevicePixels
for large datasets inAbstractSpatialOrScatterplot
.- Use
Array.from
instead ofnew Array
forBaseAnnDataLoader
- Use
concaveman
instead of@turf/concave
. - Fix
categories
parsing for AnnData withdtype=|O
. - Do not do call
makeDefaultGetCellIsSelected
if not necessary. - Upgrade
Viv
to 0.9.3. - Fix bug where formatting was required for image loader
metadata
.
1.1.6 - 2021-03-05
- Added a banner to the current minimal demo site, pointing to the beta version of the documentation and next iteration of the demo site.
- Used
DataFilterExtension
fromdeck.gl
to speed up filtering selections.
1.1.5 - 2021-02-25
- View state will automatically be set if it is not found for
Scatterplot
andSpatial
components.
- Added a check for undefined in the
nodeToSet
function incell-set-utils.js
. - Fix bug which previously caused
anndata-cells.zarr
file types to fail to load when lacking a"factors"
option. targetX
andtargetY
coordination values arenull
by default.
1.1.4 - 2021-02-11
- Added an optional
description
field to the dataset definition config object. Updated the<Description/>
component to prefer this value over the top-level description value, if available. - Add
transparentColor
toLayerController
for multi-modal imaging.
- Fix AnnData text decoding.
- Refactor AnnData flat array decoding and resolve bug.
- Upgrade viv to 0.8.3
- Fix non-string cell id parsing in AnnData.
- Add automatic physical size scaling for multi-modal imaging if sizes are found.
1.1.3 - 2021-01-07
- Added a windows OS build to the Github Actions test matrix.
- Upgrade Viv to 0.8.2 and deck.gl to 8.4.0-alpha.4
1.1.2 - 2020-12-31
- Allow for non-remote raster schemas.
- Upgrade Viv to 0.8.0 and deck.gl to 8.4.0-alpha.2
- Added GitHub Actions workflow to replace the Travis CI workflow.
- Fix
test.sh
branch variable again. - Fix deploy step again.
- Changed to using camelCase in the cell-sets-tabular schema.
- Fixed CSV and JSON file import / export bugs in the cell set manager component.
1.1.1 - 2020-12-27
- Implemented the view config API in JavaScript in a class called
VitessceConfig
. - Add searchable genes list.
- Support loading AnnData from zarr.
- Added scatterplot component options pane.
- Added a
TextLayer
to render cell set names over the corresponding cell set centroid in the scatterplot. - Added a gene expression histogram Vega-Lite component and a cell set by gene expression violin plot Vega component.
- Genes list is now a virtual scroll to allow for more performant rendering.
- Fix molecules highlight reversion - hovered molecules now appear in the status component.
- Remove "Add Channel" button for RGB images.
- Lazy load HiGlass (and PIXI.js) from absolute URLs (unpkg) to avoid dynamic script import issues with relative paths after bundling.
- When loading JS resources for HiGlass and PIXI.js, use the current environment (dev/prod) to determine
min.js
vsjs
extensions, and usepackage.json
to determine package versions.
- When loading JS resources for HiGlass and PIXI.js, use the current environment (dev/prod) to determine
- Make ability to do cell set operations (union, intersection, complement) less restrictive
- Implemented the
genomicZoomX
,genomicZoomY
,genomicTargetX
, andgenomicTargetY
coordination types for coordinating the zoom and pan interactions of multiple HiGlass views.- Simplified the
hgViewConfig
prop so that it supports only a single HiGlass view, and then allows Vitessce to handle the HiGlass view'sinitialXDomain
andinitialYDomain
properties (through the coordination space), as well as the rest of the view config. - Added the
genomicProfiles
component which abstracts away the HiGlass view config.
- Simplified the
1.1.0 - 2020-11-17
- Built-in support for encoding and decoding compressed conf as url param.
- Add heatmap controls state to saved view config.
- Add
spatialLayers
validation to config schema. - Add heatmap support to schema.
domainType
is now part of the raster spatial layers.domain
is now removed from raster spatial layer channel definition schema, since channel-level domain settings could conflict with layer-level domain type settings.
- Fixed schema validity as state updates.
- Expanded schema to allow null values which denote that these values can be auto-initialized.
- Note that we do not want the empty array to denote anything special.
- Expanded schema to allow null values which denote that these values can be auto-initialized.
- For demos, added a
&debug=true
GET parameter option, to enable logging and validating the published view config on every change. - Updated cell set functionality to support exporting state via view config:
- Added the
additionalCellSets
coordination type to store user-defined cell sets - Added the
cellSetColor
coordination type to store mappings from cell set paths to cell set colors (for both user-defined and dataset-defined cell sets). - Updated the code to avoid reliance on uuid "key" variables. Instead, we want to always use the "name path": the array of strings representing the path down the hierarchy to the node.
- Removed the distinction between "visible" sets and "selected" (i.e. checked) sets.
- Added the
- Upgrade deck.gl to 8.3 and viv to 0.5
- Fix build issues with nebula.
- Use URL fragment instead of query param for
export-utils
. - Store updates to the grid layout (removing / moving / resizing) in the view config zustand store.
- Clear the cell set selection when selecting a gene in
GenesSubsrciber
. Clear the gene selection when selecting cell set(s) inCellSetsManagerSubscriber
. - Don't require raster imagery for
layerController
. - Fix bug from removing
domain
from the config schema that prevented updates when loader selection changes. - Fix
additionalCellSets
having a tree without a version number. - Update Viv reference
1.0.0 - 2020-09-2
- Introduced a zustand store for managing the view config:
- coordination space
- layout
- component-level coordination scopes
- Introduced a provider component:
DatasetLoaderProvider
.DatasetLoaderProvider
sets up Loader objects for each file of each dataset in the view config.VitessceGrid
is a consumer ofDatasetLoaderProvider
and injects the mapping from datasets-to-loaders into the child___Subscriber
components. This functionality replaces theSourcePublisher
component.- The loading spinner was moved into a new
LoadingIndicator
component. - Added a new prop
isReady
for theTitleInfo
component (parent of theLoadingIndicator
component), so that each___Subscriber
component can handle its own loading spinner.
- The loading spinner was moved into a new
- Added a required
version
property to the view config schema. - Added the
initStrategy
property to thev1.0.0
view config schema, where the value can be one of"auto"
or"none"
(and potentially other things in the future).- This will determine how the coordination space is initialized.
"auto"
results in certain coordination types having "global" coordination (all components map to same scope) while the remaining coordination types have "independent" coordination (all components map to different scopes).- The
"auto"
strategy also respects any initial coordination setup, and only fills in missing values.
- The
- Added support for both
v0.1.0
("legacy") andv1.0.0
(coordination model) view configs via anupgrade()
function.v0.1.0
view configs will be validated against thev0.1.0
schema, then upgraded, and then validated again against thev1.0.0
schema.
- Added a unique name constraint for cell set names.
- Because
cellSetSelection
is now a coordination type, the value must be stored in the view config. Previously, multiple cell sets were allowed to exist with the same name because cell sets were identified with a random uuid key internally. We would not want a random uuid key to "leak" into the global state or view config, and instead want to use an externally-meaningful name when identifying cell sets in the view config. - Due to this constraint, the automatic naming for cell selections as
"Current selection"
(or"Current union"
,"Current intersection"
,"Current complement"
) have been changed to"Selection {i}"
(or"Union {i}"
,"Intersection {i}"
,"Complement {i}"
) where{i}
is the next integer that does not cause a conflict.
- Because
- Added the optional
onConfigChange
andonLoaderChange
callback props to theVitessce
component.- These allow a consumer app to be notified of all view config (and by extension coordination object) updates.
- Update README screenshots.
- Fixed bug in
Status
component in whichcellHighlight
andgeneHighlight
were incorrectly expected to be objects. - Moved the
Vitessce
component out ofsrc/app/app.js
intosrc/app/Vitessce.js
. - Moved the
Warning
component out ofsrc/app/app.js
intosrc/app/Warning.js
. - Renamed
VitessceGrid
toVitessceGridLayout
. - Renamed
PubSubVitessceGrid
toVitessceGrid
. - Moved utility functions that are common to both
src/components/
andsrc/app/
to a newsrc/utils.js
file. - Updated the view config schema to include a coordination space, which supports coordinated multiple view functionality. The coordination space holds coordination objects, each of which has a type, a set of scopes, and a value assigned to each scope.
- Updated the view config schema to handle multiple datasets, and added a
dataset
configuration object type for coordinated multi-dataset view configs. - Added a mapping from component type to coordination object types, streamlining the process of consuming and updating coordination object state in the
___Subscriber
components. - Removed the unnecessary
name
field from dataset file definitions (previously a property of thelayers
objects) in the view config. - Changed view config
layers[].type
(nowdatasets[].files[].type
) values to lowercase. - Renamed
staticLayout
tolayout
in the view config. - Changed the title text of
LayerController
from "Layer Controller" to "Spatial Layers". - Moved the Spatial layer initialization from
LayerControllerSubscriber
toSpatialSubscriber
.- Changed the
LayerControllerSubscriber
to a "controlled" component which obtains layer state information from thespatialLayers
coordination object. - Eliminated usage of randomly-generated uuids for layer and channel states.
- Changed the
- Changed the
Spatial
component implementation (back) to a React class component, after experiencing difficult-to-debug performance issues with the function component implementation. - Simplified the
GenesSubscriber
implementation such that it no longer handles converting gene expression data to colors. Instead, the plot components (spatial, scatterplot, and heatmap) must look up the gene expression data and handle color conversion themselves, de-coupling them fromGenesSubscriber
. - Added a file
src/components/data-hooks.js
containing React hook functions for initial data load (and data update subscriptions) for each data type.- Added error handling for data loading errors within the hook functions, which emit the
STATUS_WARN
event and subsequently call theVitessce
component'sonWarn
prop.
- Added error handling for data loading errors within the hook functions, which emit the
- Added a file
src/components/hooks.js
containing custom React hook functions which are un-related to dataset management (see above bullet).- Moved existing hook functions out of
src/components/utils.js
and into thissrc/components/hooks.js
file.
- Moved existing hook functions out of
- Removed the global app-level "please wait" spinner, and replaced with component-level spinners, to account for the multi-dataset support (for example if the dataset coordination object for a component changes then the component will need to obtain a different dataset, and this may occur at any time).
- Moved auto image layer initialization out of
LayerControllerSubscriber
and intoSpatialSubscriber
to allow initialization even when nolayerController
component exists. - Removed usage of random uuid values from image layer identifiers, and instead replace with the
index
property, which refers to the index of the layer within theraster.json
layer array. - Switched from a local layer controller state management approach (via local reducer functions) to a global coordination object layer state management approach.
- Switched from using the property
visibility
tovisible
in image channel state to be more consistent with DeckGL layervisible
convention. - Moved a
range()
function call out of a "hot" loop insrc/components/heatmap/utils.js
to cache the value and prevent calling every iteration (every row and column during heatmap tile creation). - Updated
___TooltipSubscriber
components and theStatus
component to use thecellHighlight
andgeneHighlight
coordination object values. This allows highlight functionality to be local to a particular coordination scope (rather than global to the whole app). - Updated the
DescriptionSubscriber
to use the image layer definitions in thespatialLayers
coordination object. - Refactored the
Status
andStatusSubscriber
components to move theTitleInfo
child component out ofStatus
and intoStatusSubscriber
to be consistent with the other subscriber components. - Separate out development from production builds.
- Only test/publish on production builds.
- Don't include dependencies in production ES build.
- Added terms and diagrams related to the coordination model to the
GLOSSARY.md
document. - Update README screenshots.
- Use a random
uuid
when upgradingv0.1.0
view configs tov1.0.0
to enable the data hookdataset
dependency to detect dataset updates resulting from passing new view configs. - Fixed bug in
Status
component in whichcellHighlight
andgeneHighlight
were incorrectly expected to be objects. - Fix
Spatial
initialization bug.
0.2.5 - 2020-08-31
- Add contributor information to homepage.
- Updated styling and text of homepage.
0.2.4 - 2020-08-24
- Added the
higlass-zarr-datafetchers
dependency. - Added a demo containing a HiGlass component with a
horizontal-multivec
track using azarr-multivec
plugin data fetcher. - Add auto-sliders to layer controller.
- In the SpatialSubscriber component, no longer display counts for cells, molecules, or locations if the count value is zero.
- Upgrade Viv to 0.4.2.
- Fix channel names bug (#721) where they do not show if they are not the first dimension.
- Make sliders nicer for 32 bit data.
0.2.3 - 2020-08-04
- Upgrade Viv to 0.3.3 to fix a tiff parsing issue.
- Removed the lines between the radio buttons in the cell set manager to make a more compact interface.
0.2.2 - 2020-08-03
- Upgrade
vitessce-grid
to 0.0.10 to fix problem switching view configurations. - Copied the
vitessce-grid
source files into thevitessce
repository to reduce friction when updating thevitessce-grid
code (avoids an extra NPM publish / pull-down). - Fixed tests in
VitessceGrid.test.js
.
0.2.1 - 2020-07-30
- Fixed a bug (typo in prop name) in which the heatmap axis title overrides were not passed correctly from HeatmapSubscriber to Heatmap.
0.2.0 - 2020-07-30
- Added the
fileType
property to the view configlayers
objects, which is used to choose a data loader class.
- Improved the heatmap by re-implementing using DeckGL layers.
- Update Download button style/action in
TitleInfo
as per #681. - Bump Viv to 0.3.2.
- Prevent CellSetManager leaf node "switcher icons" from calling the TreeNode component's
onNodeExpand
function.
0.1.10 - 2020-07-24
- Fix #674 bug around flipped scatterplots.
- Fix #645 bug around clearing genes and heatmap.
- Add heatmap label override.
- Fix #682
TitleInfo
spacing bug. - Remove Global dimensions when there is only one value (for OME-TIFF, mostly).
0.1.9 - 2020-07-23
- Add
labelOverride
prop for genes component. - Cell boundaries are visible when opacity drops below a cutoff.
- Add download lists for files to components that display data.
- Added
onWarn
callback to the<Vitessce/>
component to allow a consumer app to manage display of warning messages. - Set RGB defaults for Viv.
- Remove layers menu and add functionality to layer controller + opacity control.
- Update genes schema to take non-integer values.
- Changed the
SelectionLayer
picking approach to use a quadtree rather than the built-in deck.gl pixel-based method. - Flip y-axis for our graphics use-case.
- Clean up pubsub events in layer controller.
- Slider range remains as unchanged as possible under domain changes.
- Take away some spacing from
LayerController
. - Make
LayerControllerSubscriber
names booleans-questions. - Fix reisizing bug.
- Bump
vitessce-data
to 0.0.30. - Changed the "Please wait" modal to a spinner.
- Bump
viv
to 0.3.1. - Fix Heatmap regression/bug.
- Fix Cypress tests.
- Make cell boundaries depend on a pixel size setting.
- Fix small slider bug so the range stays the same.
- Filter our zarr from file list.
0.1.8 - 2020-07-02
- Trevor's slides from NLM conference to README.md.
- Added a
cell-sets.json
schema version0.1.3
to support probabilistic cell set assignments, with backwards compatibility with schema version0.1.2
. - Added a
RESET
event so that theSourcePublisher
can notify other components that a new viewconfig and dataset has been loaded. - Added a callback for the
RESET
event in theSpatialSubscriber
component to clear previous cells, molecules, neighborhoods, and imaging data. - Added a callback for the
RESET
event in theDescriptionSubscriber
component to clear previous imaging metadata tables. - Added a callback for the
RESET
event in theCellSetsManagerSubscriber
component to clear previous cell sets. - Added a publisher for
GRID_RESIZE
whenrowHeight
changes inPubSubVitessceGrid
to allow theuseGridItemSize
hook to update in this additional case.
- Updated the
cell-sets.json
schemas to allow both leaf nodes and non-leaf nodes in the same tree level. - Updated the
cell-sets.json
schemas to allow both leaf nodes and non-leaf nodes in the same tree level. - Update layer controller overflow.
- Updated the
Spatial
component data processing ofcells
,molecules
, andneighborhoods
withuseMemo
(rather thanuseRef
+useEffect
). - Temporarily removed the
React.lazy
wrapper for theVega
component fromreact-vega
, as a workaround for hubmapconsortium/portal-ui#571 (using Vitessce viewconfigs with React.lazy components is causing the HuBMAP portal interface to crash). - Increased the
isNarrow
threshold from300
to500
for theCellTooltip
component, to use a smaller font size at a wider plot width.
0.1.7 - 2020-06-25
- Testing protocol calls for all three browsers now.
- Fix Safari channel controller bug.
- Fix Safari heatmap display bug.
- Heatmap color canvas has precedence over selection canvas when resizing.
0.1.6 - 2020-06-23
- Added the
cellOpacity
prop for theScatterplot
andSpatial
components, to pass a value to theopacity
deck.glScatterplotLayer
andPolygonLayer
prop. - Imaging support for Safari via a new Viv version.
- Change one of the initial colors from red to magenta.
- Use kebab-case for cell sets files (
cell_sets
becomescell-sets
). - Upgraded HiGlass to v1.9.5 and scoped the HiGlass external CSS under the
vitessce-container
class using SCSS nesting. - Remove height css from color palette.
0.1.5 - 2020-06-15
- Initial slider/selection values and light theme for channel controller.
- Added a
VegaPlot
component, a Vega-Lite implementation of a cell set size bar plot, and auseGridItemSize
hook to enable responsive charts. - Compute the
cellRadiusScale
prop ofScatterplot
relative to the extent of thecells
mapping coordinates.
- Updated the selection coloring for the
Scatterplot
andSpatial
layers to take the theme background color into account. - Switched to a black background color for
Spatial
regardless of theme. - Pass the
height
prop toVitessceGrid
so that theWidthProvider
component can detectheight
changes. - Updated slider color for white slider with white theme.
0.1.4 - 2020-06-01
- Added
METADATA_REMOVE
event to facilitate removal of image layer metadata from theDescriptionSubscriber
upon layer removal. - Added support for providing cell sets files in view configs.
- Added support for responsive height in the
Welcome
andPubSubVitessceGrid
components.
- Refactored the Scatterplot and Spatial components. Removed the AbstractSelectableComponent class. Moved getter functions to props.
- Added
src/
to the list of directories to publish to NPM, and renamed build directories (build-lib/
todist/
andbuild-demo/
todist-demo/
). - Abstracted the CellTooltip components to allow any child element to be passed as the tooltip content.
- Updated the cell set hierarchy schema.
- Updated the cell set manager, to try to improve usability.
- Updated the default color palette to improve visibility when using the light theme.
- Increased the minimum & maximum scatterplot radius and added the
cellRadiusScale
prop.
0.1.3 - 2020-05-15
- Trevor's lab presentation on multimodal imaging (2020-05-14).
- Added support for displaying tables of metadata in the
Description
component by wrapping in aDescriptionSubscriber
component.
- Updated README to note a change to the development process: back to merging feature branches into
master
(rather than adev
branch). - Reduced global style creep by adding a
StylesProvider
with customgenerateClassName
function from mui. Temporarily commented out HiGlass styles. - Scrollable image layer popout.
- Upgrade
viv
to 0.2.5. - Theme for image layer button.
0.1.2 - 2020-05-12
- Added a Travis CI
deploy
step for publishing to NPM when on the master branch. - OMETIFF loading for raster imagery.
- Moved
demos.md
toDEMOS.md
. - Fixed the example JSON URL config in
TESTING.md
. - Fixed a horizontal scroll bug caused by overflow of the
{num} genes
subtitle in the Linnarsson demo. - Fixed a regression caused by the updated bundling scripts minifying HTML assets and removing intentional spaces.
- Upgrade LayerController to be more general.
- In
src/app/app.js
andsrc/demo/index.js
, separated rendering from validation. - Changed export method for components.
- Fixed backwards webpack
externals
object (react
andreact-dom
were not properly externalized previously). - Upgrade
viv
andvitessce-grid
to 0.2.4 and 0.0.7, respectively.
0.1.1 - 2020-05-05
- HiGlass integration
- Added multi-modal Spraggins example.
- Added a new event type
METADATA_ADD
for publishing layer metadata (image layer details, heatmap layer details, etc).
- Changed rectangle tool interaction to dragging (rather than clicking twice).
- Clicking while using the rectangle or lasso tool now clears the current selection by emitting a new empty selection.
- Upgrade vitessce-image-viewer to
0.2.2
- Changed
raster.json
schema. - Changed
Channels
component to more generalLayerController
component which publishesLAYER_ADD
,LAYER_REMOVE
, andLAYER_CHANGE
events.
0.1.0 - 2020-04-28
- Added a selectable table component with radio- and checkbox-like functionality.
- Changed the bundling process so that subsets of components are bundled into separate JS files by targeting the
src/components/{name}/index.js
files.
0.0.25 - 2020-03-26
- Removed nwb, added custom webpack configuration.
- Added glossary.
- Added theme props, with support for "light" and "dark". Added a URL theme parameter for the demo.
- Upgrade vitessce-image-viewer to 0.1.3 & use data loaders.
- Rename "LayerPublisher" to "SourcePublisher".
- Converted the polygon tool to a lasso tool.
- Loosened assumptions about cell info object properties when rendering cell hover messages to fix a
TypeError
bug.
0.0.24 - 2020-03-02
- Check that HTTP status is good before trying to parse response.
- Please-wait only applies to component.
- Make scatterplot dot size a constant 1px, and molecules 3px.
- Friendlier error if mapping in config doesn't match data.
- Test error handling in Cypress.
- Log a data-URI for the viewconf on load.
- Restore dark background to homepage.
- No more missing spaces when we spell out the acronym.
- Remove vestigial gh-pages.
0.0.23 - 2020-02-06
- HTTP headers to pass can be specified in the layers of the viewconf.
- Fix merge-to-master builds on Travis.
- Upgrade vitessce-grid to v0.0.6 to support pane closing.
- Removed bootstrap and moved the small set of bootstrap styles being used into an SCSS mixin.
- Fixed broken rectangular selection tool (broke due to a
nebula.gl
upgrade from v0.12.0 to v0.17.1), but switched the interaction from dragging to clicking.
0.0.22 - 2019-01-22
- Now, a plain scatterplot will also clear the please-wait.
0.0.21 - 2019-01-21
- Until UI is available, dump viewconf to console.
- Added styles to prevent unintentional text selection during grid item resize in Safari.
- Loosen the cells schema to accommodate data from HuBMAP.
0.0.20 - 2019-01-06
- Removed OpenSeadragon in favor of deckgl
0.0.19 - 2019-12-10
- Removed Docz and .mdx files and update package.json.
- Travis checks that changelog was updated.
- Links to component demos.
- Top-level CSS rule to keep component styles from leaking out.
- CSS filename in UMD no longer contains hash.
- Update to NodeJS 10 on Travis.
0.0.18 - 2019-11-18
- Initial zoom can be specified for scatterplots.
- Allow background imagery to be translated horizontally and vertically.
- Close cell set tabs.
- Color cell sets.
- Split long menu of cell operations into smaller menus from icons.
- Cell sets can be exported and imported as JSON.
- Union, intersection, and complement of cell sets.
- View all set descendants at a particular level.
- More public demos.
- Export
validateAndRender
for use as component.
- Gave up on CSS modules. We'll still split out CSS into separate files, but the extra name-munging was just confusing.
- Crosshairs are now full height and width.
- S3 data is now organized by dataset.
0.0.17 - 2019-07-19
- Polygon selection tool leveraging the Nebula.gl package.
- Tooltip in heatmap.
- WIP: Using CSS modules.
- Hierarchical cell set manager component with save, name, rename, delete, rearrange, and view functionality.
- PubSubVitessceGrid is now exported, and the registry lookup function is a parameter.
- A HiGlass demo no longer requires HiGlass to be checked in as part of this project.
0.0.16 - 2019-06-26
- Linked hover effect between spatial, scatterplot, and heatmap.
- Tooltip for cell status text upon hover in spatial and scatterplot views.
- Using Deck.gl's built in picking instead of quadtree.
0.0.15 - 2019-06-07
- The
<TitleInfo>
component now takes children, and our JSX is tidier. - Using docz for documentation, and add to the push script.
- Each JSON schema now checks that we are getting all and only the expected fields... and we have a sort-of schema for the schema to make sure these checks are in place.
- Handle arbitrary mappings, not just t-SNE. Now computing PCA in vitessce-data.
- Flexible configuration: load components by name, or have multiple instances of the same type of component.
- Half-baked proof-of-concept integration with HiGlass.
- Separate registry that holds Name -> Component mappings.
- Easy deployment to vitessce.io.
- Friendlier error page on AWS deployment.
- Display current version info in deployed demo.
- Can now specify the URL of a JSON config to load.
- Make Heatmap more usable as a standalone.
- Fix (?) the scrollbars which had spontaneously appeared.
- Factor out the grid machinery into a separate package,
vitessce-grid
. - More information on the Welcome page, so changed it to a two-column layout.
0.0.14 - 2019-04-29
- Add Cypress.io tests.
- Thank-you to NIH on the front page.
- Add Google Analytics to all pages.
- "Please wait" now waits for all layers.
- Use react-grid-layout for draggable panes; Layouts can be specified either responsively, or with fixed grid positions. Grid height is based on window height at load.
- Script (
push-demo.sh
) to push demo to S3, without making a new release. - Use OpenSeadragon for tiled imagery.
- Spatial viewport is part of the initial FAKE_API_RESPONSE, instead of being hardcoded.
- Neighborhoods are enabled, but hidden by default.
0.0.13 - 2019-03-26
- Lots of display tweaks to create a consistent dark color scheme.
0.0.12 - 2019-03-26
- Heatmap is row-normed. (This is a change in
vitessce-data
.) - Borders on heatmap components... but this will be reverted.
- Cells are visible on initial load.
- Dark color scheme, with better contrast when colored
- Heatmap spans the entire bottom.
0.0.11 - 2019-03-20
- Roll up the layers list when not hovered.
- Component titles give summary stats about data.
- Change color scales, styling of unselected cells, and marquee rendering, to improve contrast.
- Only update selected set at end of drag.
0.0.10 - 2019-03-19
- Heatmap: Gene expression levels occupy most of the space; Above, there are bands showing the currently selected cell set, and the current cell coloring.
- Spatial and t-SNE backgrounds are now black.
- Move the Factor radio buttons to their own component, above Genes.
0.0.9 - 2019-03-17
- Neighborhoods layer: no interactivity, and it's obvious that the source data has some problems.
- Got the image registration right, finally.
- Initial viewport is hardcoded: Data is no longer centered on (0, 0) origin.
0.0.8 - 2019-03-16
- Load and validate JSON for clusters, categorical factors, gene expression levels, and cell neighborhoods.
- Toggle between factor values: Spatial and t-SNE categorical colors are updated.
- Toggle between gene expression levels: Spatial and t-SNE continuous colors are updated.
- Toggle between multiple imagery layers.
- The stained imagery is positioned and scaled better, but still slightly off.
- No outlines on cell polygons.
0.0.7 - 2019-03-07
- Component diagram and minimal documentation of library.
- Make space for a brief description of the dataset on the welcome page.
- Load background imagery.
- More unit tests.
- Label each component, and identify the current dataset.
- Replace global selection tools with in-component tools.
- Toggle visibility of each layer.
- "Please wait" while molecules load.
- Add placeholder for genes component.
- Use a quadtree to identify the cells in the selected region.
0.0.6 - 2019-02-25
- Welcome screen where user picks dataset.
- All the cells are selected on start.
- No longer supports drag and drop to add file.
0.0.5 - 2019-02-20
- Distinguish pan and single-select mode from drag-to-select.
- Drag-to-select supported for both Spatial and Tsne: Selection state is linked.
- Set of selected cells is updated during drag; there is also a grey overlay.
- Add the strict AirBNB linting rules.
- Load Linnarsson cell data by default, rather than starting from a blank screen.
- Assume data has been scaled to fit a 2000 pixel-wide window, centered on the origin, and adjust line widths and dot sizes accordingly.
0.0.4 - 2019-02-08
- Drag and drop JSON files representing cells and molecules.
- There is a helpful link to the sample data download.
- JSON files are validated against schema, and detailed errors go to console.
- Flexbox CSS for clean columns.