Changelogs » Cellxgene

PyUp Safety actively tracks 362,670 Python packages for vulnerabilities and notifies you when to upgrade.



New features
  - Introduced CLI parameter [--X-approximate-distribution]( for users to specify the distribution of their data, and override the default heuristic determination
  - For categories with the number of labels over the number set by --max-category-items (default 1000), we now include a label that aggregates all labels over the limit instead of truncating the list of labels
  Breaking changes
  - Removed support for experimental features (--experimental-annotations-ontology, --experimental-annotations-ontology-obo and --experimental-enable-reembedding)
  Bug fixes
  - Fixed a [bug]( in differential expression calculation by changing the t-test calculation to consistently assume normally distributed data, and to log data when data is not normally distributed based on a heuristic
  - Fixed a [bug]( in --max-category-items


This release contains a new major feature: gene sets! A gene set is a list of genes. You will now be able to visualize the mean expression of a gene set and create and edit gene sets from the UI. Check out our user guide under docs for more information and how to get started.
  We’ve also improved differential expression functionality. Now when you run differential expression, 2 lists will be created: one list of 50 highly expressed genes in group 1 and one list of 50 highly expressed genes in group 2.
  Please note we will be deprecating Safari support with this release. Please use Chrome, Edge, or Firefox for the best experience.


**Summary**: There were two packages that had major updates that caused incompatibility issues with cellxgene: `flatbuffers` and `Flask`. In this release, we have pinned both packages to be below the latest 2.0 versions to avoid these incompatibilities (issue 2197).


**Summary:** This release contains bug fixes for a few issues with mismatched colors between the left sidebar and the main canvas (issues 2007 and 2011), and improved error handling for —experimental-annotations-ontology (issue 2024).


**Summary:** We fixed [an issue]( caused by a h5py major version change. As a result, [h5py is now restricted to < 3.0.0](


**Summary**: We fixed an [issue]( where some of the continuous attributes of cell data were not visible in the right hand side bar as well as an [issue]( with experimental re-embeddings failing.


**Summary:** We fix an issue with colors in the left sidebar not matching the colors in the main canvas area. The Docker contained was updated following a breaking change. We updated the way that static assets are served such that cellxgene can be used behind a proxy. We also corrected an issue with re-embeddings that was broken was small gene counts.


**Summary**: 0.16.2 corrects a couple of breaking changes from 0.16.0. We fix the bug with gene expression scatterplots where the x and y axes were swapped and we also fix the support of launching cellxgene with the `--experimental-enable-reembedding` flag.


**Summary**: 0.16.0 introduced a number of refinements to the cellxgene application. We have added a number of UI enhancements such as histogram coloring, improvements to the differential expression user experience, and re-embeddings. This release also includes a large number of bug fixes and small performance improvements.
  *We are currently testing an alpha version of a hosted cellxgene at []( While it is not yet feature complete, any feedback would be welcome.*
  - Support for coloring right-side histograms 1218
  - Config file that provides the ability to set various parameters of launching cellxgene via either the server or the launch CLI command. 1264
  - Tooltip for category names 1278
  - Compression of HTTP responses for servers launched via the CLI 1285
  - Differential expression UI and config visibility improvements 1336
  - Support for user-defined category-label colors 1402
  - Added ability to select labels for differential expression instead of only subsets 1494
  - Improvement to lasso “can close” visual feedback 1550
  - Categorial UI improvements including support for renaming the annotations file 1649, 1660
  - Support for re-embedding 1679 - experimental. Functionality may change in the future.
  - Show single value instead of entire histogram if the minimum and the maximum are the same 1554
  - Major refactor to use lazy data loading from the server side using react-async 1571
  - Added a workaround to accommodate a bug in AnnData `make_index_unique` that does not work under certain conditions. 1260
  - Assorted small UI fixes: proper truncation 1320
  - Various histogram fixes like x-axis labeling 1363, performance improvement 1390
  - Fix for brushing subset of a gene distribution after subsetting data 1409
  - Fix to cache crossfilter when embedding type is changed 1493
  - De-duping gene sets 1490
  - Removed `client` package that introduced security vulnerabilities 1248

0.15.0 not secure

Summary: 0.15 resolves incompatibilities with the current anndata/scanpy releases, improves ontology-driven label input in user annotations, moves annotations to a supported feature, and resolves a number of miscellaneous bugs and UI issues.
  * User annotations feature has moved to a fully supported feature, and is no longer experimental (nb. command line params have changed, and annotations are enabled by default - see documentation for more information).
  * Experimental support for ontology-driven annotation/label input was further enhanced. Users can now pick from an ontology or define their own label in a single dialog, and ontologies are available for both label and category creation and editing.
  * Code coverage reports added to the github repo CI pipeline
  * Significant additions to unit & smoke tests and configuration testing in the CI pipeline
  * Added experimental support computed re-embedding on user-selected cell sets.
  * Better handling of annotations with very large number of categorical values.
  * Resolved incompatibility with annata 0.7 and remove pinned Python dependencies for anndata, h5py and tables modules.  This resolves several compatibility issues with H5AD files.  1157, 1202
  * Reset UI replaced with Subset and Unsubset (1183), and unsubset no longer deletes genes in the right side bar (fixes 1171).
  * Work in preparation for a web-hosted cellxgene (not yet available or complete), including:
  * Incremental loading of data on the front end
  * Refactoring the back-end to support a cloud-native data format built upon tiledb.
  * 1140, 1163, 1200
  * Javascript and Python package dependencies updated.
  * Variety of small UI improvements throughout the application, including more readable data labels on the main graph (1141, 1160), better handling of long strings (1206), improved enable/disable state on buttons, etc.
  * Datasets with more than 32 annotations would occasionally cause the crossfilter to get confused, and selection state to be lost (1162)
  * Undo/redo was not working correctly with color-by-annotation and other UI actions (1165)

0.14.1 not secure

  * 1137 - labels do not correctly pan/zoom

0.14.0 not secure

**Summary:** 0.14.0 adds ontology-based autosuggestions to the experimental annotation feature, category labeling in the main graph/embedding, and a number of bug fixes and incremental improvements.
  * The experimental annotations feature is augmented with the ability to autosuggest labels from an ontology.   Ontology is specified from an `.obo` file.   See the `--experimental-annotations-ontology` command line flag.
  * Main embedding (graph) display enhanced with the ability to display category names over the center of the constituent cells.  Enabled/disabled by a new UI button in the button bar.
  * When launched, cellxgene will inform users when a new version is available on  This check may be bypassed with the new `--no-upgrade-check` command line option.
  * Labels / names in the user interface will now display in a sorted order, including embedding names, annotation names, and categorical annotation values.
  * Various internal build updates and improvements.
  * Fonts needed by the application are now served by the internal web server, rather than relying on internet connectivity.
  * Javascript and Python package dependencies updated.
  * FAQ link removed from Info menu
  * All large histograms will now have a consistent number of bins (PR 1086)
  * User-created annotations may now contain additional characters (now allow alphanumeric, plus -_.() and single spaces.  Fixes issue 1113.
  * The recent `0.7.*` release of the anndata module is incompatible with cellxgene. This release pins the anndata dependency to 0.6.22post1 (the most recent compatible version).
  * A significant number of bug fixes to experimental annotations, including 1050, 1057, 1036, 1055 and others.
  * Annotation file name, specified by `--experimental-annotations-file`, will now allow file names containing a hyphen.   Fixes issue 1072
  * Fixed bug which would cause user-created annotations to lose the (mandatory) `unassigned` category.  Fixes issue 1090
  * Various layout and whitespace improvements throughout the app.
  * Added missing python `requests` package to requirements.
  * Fixed bug that would crash if the user created an annotation name which was the same as another existing annotation name.  Fixes issue 1112
  * Ensure that all user-created annotation labels are correctly saved, without transformation, to the annotations CSV file.  There were several labels (eg, 'nan') which would not be saved correctly to the annotations CSV file.  Fixes issue 1111.
  * Some sequences of actions caused the `undo` button to behave unpredictably. This is fixed by 1099

0.13.0 not secure

Summary: 0.13.0 introduces a layout change, moving all continuous data histograms into a dedicated panel: the "right side bar".  In addition, 0.13.0 includes significant improvements and bug fixes to the experimental "user annotation" feature.
  * Introduced a "right side bar" containing all continuous metadata and gene expression histograms.
  * _[Experimental feature, may be incomplete or unstable]_ Significant improvements to the user annotation functionality, allowing users to annotate groups of cells with categorical metadata:
  * Command line options related to annotation renamed and reorganized -- see `cellxgene launch --help` for usage.
  * Added simple multi-user support for hosted instances of cellxgene, to avoid the possibility of users over-writing each others’ metadata.
  * Add a provenance header to the annotations output CSV file.
  * Many bug fixes, usability and stability improvements.
  * Command line option `--skip-qc/--run-qc` (a toggle) changed to a flag named `--skip-qc`.
  * Command line help (via the `--help` option) improved.
  * Reorganized and improved cellxgene documentation, available at
  * Javascript and Python package dependencies updated.
  * Dockerfile now contains `python-requests` package (1019).
  * Migrate from deprecated Pandas API (1021).
  * Various layout issues resolved throughout app.

0.12.0 not secure

Summary: this release adds three major features, in addition to a number of bug fixes and other features:
  * The location of the H5AD file may be specified as a URL, in addition to the currently supported file path
  * Anndata "backed" mode is supported via `--backed` command line option
  * A new experimental feature: the ability to create new categorical metadata for cells, aka cell annotations.
  * `cellxgene launch` command now accepts a URL as well as file paths. Example: "cellxgene launch http://…" Supports HTTP, HTTPS, and with optional package installations, S3 and GS URLs. (#920)
  * New command line option, --backed, will load H5AD file in "backed" mode.  This uses less memory, and loads faster.  However, it will dramatically increase the time required to load expression histograms or compute differential expression. This feature is most useful to explore metadata and embeddings for very large datasets, or to load only the embedding and metadata on computers with limited memory.  This mode is diabled by default.
  * New command line option, `--about`, provides a means to link out to more information about the dataset. The link provided on the command line will appear in the application info menu, and as a link in the dataset title (upper left, next to logo) (907)
  * New command line option, `--disable-diffexp`, will cause on-demand differential expression (top N gene finding) to be disabled in the application. This is useful when exploring very large datasets, where the differential expression calculation is likely to be extremely slow or unusable due to memory exhaustion. Differential expression is enabled by default.
  * Hovering the cursor over a category name will highlight cells in the gene expression scatterplot (previously only highlighted cells in the embedding graph).   (900)
  * [_Experimental feature, may be incomplete or unstable_] Added capability to label cells with new metadata (categorical annotations).  This feature is enabled with the "--experimental-label-file" command line option, which requires a CSV file name.  User-created metadata will be saved to this file.  We would love feedback on this feature - please submit via GitHub issues.
  * Pip install for `prepare` sub-command is now separate from default installation. If you wish to use prepare, install via `pip install cellxgene[prepare]`.   See getting started guide for more info. (887, 889)
  * Improved layout when strings are long.  Will now break/truncate data set title, category name, etc. (858, 909)
  * Improved the formatting for histogram axis labels, better handling of large numbers (913)
  * Significant improvements to the embedding and gene expression plots, including reduction in CPU usage, zoom/pan constraints, a new rendering method designed to highlight meaningful data and improve overall usability/visibility (893)
  * Miscellaneous improvements to documentation and README (878, 857, 880)
  * Python and Javascript package updates, for both security and performance
  * Rename "layout" to "embedding" in the UI (921)
  * Category-specific mini histograms were computed incorrectly in some cases (869)
  * Remove pinned matplotlib version, and resolve incompatibility by installing scanpy earlier in the dependency list (so it specifies the matplotlib dependency).
  * H5py dependency pinned to 2.9.0 to temporarily work around regression reading older anndata files (scanpy issue 832).  This will be removed in a future release.  (916).
  * Fixed several bugs in gene adding (both in bulk and autosuggest).
  Improved performance for datasets with a very large number of continuous metadata fields.

0.11.2 not secure

  * FIx matplotlib incompatibility error(877)

0.11.0 not secure

  This release implements a requested cellxgene feature: histograms on categorical values vis a vis continuous (see: 762, 616). Color by any continuous variable, like a gene, and see the breakdown of distributions by opening any categorical menu item. This answers questions such as “which clusters expressed which gene?” “What was the breakdown of total gene counts by tissue?” among others.
  Added mini histograms to categorical selection, displaying continuous metadata distribution (827)
  Added prepare example, updated demo dataset (810, 803, 547, 529)
  Documentation regarding hosted instances (807)
  Hover on label increases point size of associated cells in graph (809 833)
  Updated roadmap (825)
  Menu bar code cleanup, logo (804)
  Fixed broken URL in docs (801, 802)
  Fixed jest tests by removing async (805)

0.10.1 not secure

  * Pinned python requirement 'tables==3.5.1' to work around installation failure in recently release of tables 3.5.2
  * Improved main graph scaling and centering of embedding (784)

0.10.0 not secure

  * Switch between multiple embedding visualizations in the UI (eg, tsne, umap, etc). (776, 766)
  * To add guardrails around very large datasets, CLI will generate a warning if a large sparse non-CSC dataset loaded. (723)
  * If a specific port is chosen on the CLI (--port), the app will use it and fail if not able to do so.  If no port is specified, the application will scan for an unused port number (698, 761)
  * Add logo to UI (782)
  * Python anndata version dependency updated to >= 0.6.20, resolving the incompatibility with the most recent SciPy release (see anndata issue 146 for details).  Also removed the temporary work-around on scipy version requirements introduced in 0.9.3.
  * Updated most javascript package dependencies (765)
  * Use anndata to read h5ad files in `launch`, rather than the ScanPy API wrapper around AnnData.  Improves startup speed.  (763)
  * Layout of embedding visualization improved.  All points will display upon load, and scaling behavior is improved when the window size changes. (655, 768, 776, 789)
  * Pan/zoom scaling is now 1:1 (722)
  * Various testing & CI framework improvements (777, 772, 757)
  * CLI --debug option will generate an error if used with --port option.  If you just want verbose error logging, try --verbose.
  * Fixed several bugs relating to categorical metadata with large (>100) number of categories. (764, 781, 721, 737)
  * Undo/redo bug fix (787)
  * Correctly handle datasets which use a column name "name" in `var` or `obs` metadata. (785)

0.9.3 not secure

  * Fixed `ImportError: cannot import name 'IndexMixin'` by excluding conflicting scipy version (770)

0.9.2 not secure

  * Correctly handle column slicing of csr data (754)

0.9.1 not secure

  * file missing from new module (748)


  * “Clip” to percentile range for continuous data - (metadata and expression) outside of range will be excluded from histograms and grayed out on layout. This improves handling of zero-heavy distributions, or other cases where outliers need to be suppressed (570, 672)
  * Prepare calculates and adds QC metrics as to continuous metadata (uses new ScanPy 'calculate_qc_metrics') (697)
  * Documentation updates (691, 706, 649, 702)
  * Color-by buttons toggle if clicked twice (693)
  * ScanPy requirements updated to 1.3.7(688)
  * Server-side refactoring in prep for PyQt & notebook support (711)
  * Performance improvements accessing large sparse expression data (719)
  * Undo/redo improvements - histogram and graph selection now correctly interacts with undo/redo (679, 663)
  * Selection of continuous data dimensions containing NaN values would select incorrect cells (715)
  * Graph pan/zoom and selection now stay in sync (622)
  * Graph selection paints correctly when window resized (203)
  * Gene name type-ahead no longer clears text on blur (573)
  * Would fail if simplejson was installed in python environment (700)

0.8.0 not secure

  * Python 3.7 support
  * Redo/Undo
  * (falexwolf) Support additional graph layouts
  * Menu with FAQ, etc
  * When selected embedding has more than two components cellxgene UI truncates to the first two instead of failing
  * Various UI bug fixes
  * Histograms no longer allow tiny/invisible selections

0.7.0 not secure

This is largely a performance and refactoring release, with a few small bug fixes.
  * Performance improvements throughout application, due to introduction of a new internal data model and other refactoring (588, 590, 611)
  * 610 fixed - Reset slow for large datasets
  * 617 fixed - negative scalar annotation and expression values were incorrectly displayed

0.6.1 not secure

  * Failed pypi upload due to previously deleted version


  * Lasso selection tool
  * Add list of genes
  * (ivirshup) Serving cellxgene through reverse proxy
  * Does not error if Content-Type header also include charset
  * De-duped -d CLI option alias for launch: kept the alias for --diffexp, removed from --debug

0.5.1 not secure

  * ModuleNotFoundError: No module named ''

0.5.0 not secure

  * Performance improvements facilitated by switching to binary (using flatbuffers) for data transport
  * Scatterplot any two genes
  * Async busy indicators on slow operations
  * Non-finite values displayed as gray on graph when coloring by a field and elided from histograms
  * Can now run cellxgene container on remote host
  * Disable cell set buttons until differential expression is cleared
  * CLI param --nan-to-num removed (non-finite values can be serialized after switching to binary transport)

0.4.0 not secure

  * Add cluster occupancy - when coloring by categorical metadata, stacked barchart shows proportional breakdown of other categorical fields. E.g. color by gender, evaluate gender makeup of each cluster
  * Add Docker support

0.3.0 not secure

  - Add a typeahead, with fuzzy string search, on the Selected Gene text box
  - Improve error handling and detection of ScanPy data containing NaN or Infinite values.
  - Add `--nan-to-num` command line parameter to convert NaN/Infinite to finite floating point values.
  - Minor improvements to startup speed
  Breaking changes:
  - Added `--host` command line option, replacing `--listen-all`.  The equivalent of `--listen-all` can now be accomplished with `--host`