An interactive explorer for single-cell transcriptomics data

Overview

an interactive explorer for single-cell transcriptomics data

DOI PyPI PyPI - Downloads GitHub last commit Push Tests Compatibility Tests Code Coverage

cellxgene (pronounced "cell-by-gene") is an interactive data explorer for single-cell transcriptomics datasets, such as those coming from the Human Cell Atlas. Leveraging modern web development techniques to enable fast visualizations of at least 1 million cells, we hope to enable biologists and computational researchers to explore their data.

Whether you need to visualize one thousand cells or one million, cellxgene helps you gain insight into your single-cell data.

Getting started

The comprehensive guide to cellxgene

The cellxgene documentation is your one-stop-shop for information about cellxgene! You may be particularly interested in:

Quick start

To install cellxgene you need Python 3.6+. We recommend installing cellxgene into a conda or virtual environment.

Install the package.

pip install cellxgene

Launch cellxgene with an example anndata file

cellxgene launch https://cellxgene-example-data.czi.technology/pbmc3k.h5ad

To explore more datasets already formatted for cellxgene, check out the Demo data or see Preparing your data to learn more about formatting your own data for cellxgene.

Supported browsers

cellxgene currently supports the following browsers:

  • Google Chrome 61+
  • Edge 15+
  • Firefox 60+
  • Safari 10.1+

Please file an issue if you would like us to add support for an unsupported browser.

Finding help

We'd love to hear from you! For questions, suggestions, or accolades, join the #cellxgene-users channel on the CZI Science Slack and say "hi!".

For any errors, report bugs on Github.

Developing with cellxgene

Contributing

We warmly welcome contributions from the community! Please see our contributing guide and don't hesitate to open an issue or send a pull request to improve cellxgene. Please see the dev_docs for pull request suggestions, unit test details, local documentation preview, and other development specifics.

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].

Reuse

This project was started with the sole goal of empowering the scientific community to explore and understand their data. As such, we encourage other scientific tool builders in academia or industry to adopt the patterns, tools, and code from this project. All code is freely available for reuse under the MIT license.

Before extending cellxgene, we encourage you to reach out to us with ideas or questions. It might be possible that an extension could be directly contributed, which would make it available for a wider audience, or that it's on our roadmap and under active development.

See the cellxgene extensions section of our documentation for examples of community use and cellxgene extensions.

Security

If you believe you have found a security issue, we would appreciate notification. Please send email to [email protected].

Inspiration

We've been heavily inspired by several other related single-cell visualization projects, including the UCSC Cell Browser, Cytoscape, Xena, ASAP, GenePattern, and many others. We hope to explore collaborations where useful as this community works together on improving interactive visualization for single-cell data.

We were inspired by Mike Bostock and the crossfilter team for the design of our filtering implementation.

We have been working closely with the scanpy team to integrate with their awesome analysis tools. Special thanks to Alex Wolf, Fabian Theis, and the rest of the team for their help during development and for providing an example dataset.

We are eager to explore integrations with other computational backends such as Seurat or Bioconductor

Comments
  • better error display for unsupported browsers

    better error display for unsupported browsers

    We see occasional users attempt to use cellxgene with unsupported browsers (eg, IE on Win 7). It would be nice if the front-end could present the user with something other than a hard failure.

    epic 
    opened by bkmartinjr 27
  • How to specify custom palette for a category?

    How to specify custom palette for a category?

    Hello! cellxgene is looking great! I just got a brief demo from @colinmegill and one of my questions is, how can one specify a custom color palette for a particular category? For example, for the paper we had this palette in a centralized place that we could grab, but could also have as a column in the scanpy anndata object. If there was e.g. cell_ontology_class and cell_ontology_class_color columns, would that work? Warmest, Olga

    enhancement 
    opened by olgabot 20
  • Opening a dataset on hosted should default to coloring by the first category in LSB

    Opening a dataset on hosted should default to coloring by the first category in LSB

    Hi cellxgene-Team!

    A small, but effective addition would be to allow a cell label to be colored by default. This would aid a user that visits the (hosted) instance for the first time by directly pointing him/her to an important aspect of the data (e.g. coloring by a celltype label).

    Along this line, the toggle to show labels (btw an amazing addition from 0.14!) could be allowed to be switched on by default as well.

    Let me know what you think!

    Best, Jens

    estimate me! P3 
    opened by jenzopr 19
  • [BUG] Cellxpose returns 400 Bas request for some requests if data is 16-bit

    [BUG] Cellxpose returns 400 Bas request for some requests if data is 16-bit

    Describe the bug

    Try saving test file after converting to fp16:

    adata.X = adata.X.astype('float16')
    

    Server normally starts when given this data (but prints some warnigns about conversion from 64bits).

    However when you select gene or run differential expression, 400 appears.

    Version affected: 0.17.0, within docker

    In my case cellxgene first downloads file from the cloud, so 16bit format for storage is very reasonable - almost halves the space.

    bug 
    opened by arogozhnikov 17
  • http error in cellxgene 16,02 (docker)

    http error in cellxgene 16,02 (docker)

    Hello everyone,

    I am trying to load a .h5ad with a lot of columns (all categorical).

    However, I get an http error when I try to load cellxgene (see screenshot attached).

    cellxgene_error

    This issue already occurred to me with 16.02 on a smaller dataset and I found that it was an issue with a single column that had to be renamed and reparsed (i.e.: changing the column name to "Cluster rather than "Orig_Cluster" and changing the values from Cluster_X to X )

    I wonder whether this is an issue that occurred only to me or it is a known bug.

    PS: I am running cellXgene in a docker container

    Cheers,

    Daniele

    bug 
    opened by wariobrega 17
  • Ability to plot embeddings that NaN values

    Ability to plot embeddings that NaN values

    In working with [email protected] to remix his neuronal AD dataset for Corpora, we came upon the issue of visualizing subcluster embeddings that only have coordinate values for a subpopulation of cells. The solution we would like is to fill the other cell coordinates with NaNs and cellxgene would plot only the cells with numerical coordinates for each embedding. Currently, cellxgene shows a blank plot if there are any np.nan or np.inf in the embedding.

    Previous issue identifying the "bug": #1118


    Update: cellxgene will now accept embeddings containing a NaN value. +/- Inf continue to be rejected. This issue is left open as we are still working out how to improve the UX experience for embeddings with NaN values.

    opened by mattcai 17
  • Create Truncation Component

    Create Truncation Component

    Across the app, we practice truncating large strings by taking a slice of some size out of the middle of the string and replacing it with ellipses. The number of truncations needed throughout the app has begun to grow and the work associated with keeping the methodology between instances has been growing with it.

    This PR introduces a Truncation component in the new dir: client/src/components/util/. Given a single child holding text and a width style, the component calculates whether the text needs truncation and truncates to the largest fitting size.

    h/t @tihuan for providing a CSS solution and steering me along the way 🎉


    This PR implements the following changes:

    • client/src/components/util/truncate.js
      • Created the truncate component
    • client/src/components/categorical/category/index.js + client/src/components/categorical/value/index.js + client/src/components/leftSidebar/topLeftLogoAndTitle.js
      • Refactor in Truncate component
    • client/src/components/graph/overlays/centroidLabels.js + client/src/components/categorical/value/occupancy.js
      • Remove fontFamily style declarations
    • client/configuration/eslint/eslint.js
      • Removal of redundant/conflicting manual ESLint rules
    • client/configuration/lint-staged/lint-staged.config.js
      • Correctly lint only staged files instead of all of src

    Closes #1489

    opened by seve 17
  • --layout CLI param help confusing

    --layout CLI param help confusing

    the help text for --layout is confusing - it should clearly state that not specifying a layout will make all embeddings in the dataset available, and that specifying layout names will restrict options to those specified.

    Changes to be made:

    • [x] CLI parameter --layout modified to accept N embedding names (rather than the current restriction of one). Any specified will present in the web UI. Default, if not specified, is to present all embeddings.
    • [x] CLI parameter --layout changes to --embedding. Help and error text in the CLI change corresponding.
    • [x] UI text changes from layout to embedding (eg, in the menu used to select an embedding)
    system 
    opened by bkmartinjr 17
  • Gene sets design & implementation staging

    Gene sets design & implementation staging

    Appetite: 10

    Requirements:

    • [x] Completed design that enables stories in chanzuckerberg/single-cell#15 (refine & update stories if needed)
    • [x] First two implementation stages are outlined as sub-epics
    • [ ] Reviewed and approved by product

    Existing issues:

    • chanzuckerberg/cellxgene#1538
    • chanzuckerberg/cellxgene#1539
    • chanzuckerberg/cellxgene#1540
    • chanzuckerberg/cellxgene#1541

    Design work:

    design ux 
    opened by ambrosejcarr 16
  • Regraph/Reset user story

    Regraph/Reset user story

    We need to nail down user stories for Regraph/Reset in the first release.

    Issues to consider:

    • should there be async / batch compute triggered by front-end (web UI), or should it all be done on the CLI with the cellxgene wrapper script?
    • what are the core use cases for regraph/reset and what workflow do we want for those use cases?
    • how much persistent state do we mandate for re-layout (vs. on-demand compute)?

    Scanpy re-layout is fast when NN are already computed. Very slow when not. Should the web UI drive both, or make assumptions about some already existing & persisted?

    ^ @freeman-lab - please add your thoughts.

    P4 
    opened by bkmartinjr 16
  • Error with launching cellxgene after manually adding metadata to AnnData file (.h5ad)

    Error with launching cellxgene after manually adding metadata to AnnData file (.h5ad)

    Hi,

    I have an AnnData file adata.h5ad file with certain columns in adata.obs. I have some more metadata that I would like to add to adata.obs. I follow some simple steps and recommendations provided online to add these columns to adata.obs

    # df_annot - pandas dataframe with annotations/columns I would like to add
    # df_annot has identical index as adata.obs
    adata.obs = pd.concat([adata.obs,df_annot],axis=1)
    

    Note: I am using cellxgene==0.14.1 The launching of original adata.h5ad using cellxgene works using the following command - cellxgene launch adata.obs --port 8000 --disable-diffexp

    However, when I try to launch adata.h5ad after having added additional columns (metadata) to adata.obs using the same command, I get the following error -

    Error: 'dict' object has no attribute 'dtype' - file not found or is inaccessible.  File must be an .h5ad object.  Please check your input and try again.
    

    Initially, I thought there might be an issue with how I am adding metadata/columns to AnnData file - adata.obs. I explored further by re-reading the modified h5ad file using scanpy (sc.read_h5ad) and processing it further by performing steps like ranking gene groups (sc.tl.rank_genes_groups). These steps were successful, so it seems unlikely that this is an AnnData (.h5ad) file issue.

    Would love to hear your thoughts on where the issue might be arising from and what would be the best way to debug and getting it to work.

    cellxgene installed in a conda environment with the following dependency versions -

    python==3.7.3
    numpy==1.16.3
    pandas==0.24.2
    numba==0.43.1
    
    cellxgene==0.14.1
    anndata==0.6.22post1
    scanpy==1.4.5.1
    

    Update (Mar 10, 2020):

    To clarify, I am using different environments for cellxgene, and processing the AnnData file. CELLXGENE CONDA ENVIRONMENT

    python==3.7.3
    numpy==1.16.3
    pandas==0.24.2
    numba==0.43.1
    cellxgene==0.14.1
    anndata==0.6.22post1
    

    ANNDATA PROCESSING CONDA ENVIRONMENT

    python==3.8.1
    numpy==1.18.1
    pandas==1.0.1
    numba==0.48.0
    anndata==0.7.1
    scanpy==1.4.5.1
    
    opened by shahnirav1005 15
  • [BUG] GET http://localhost:5005/api/v0.2/colors: 404 (NOT FOUND)

    [BUG] GET http://localhost:5005/api/v0.2/colors: 404 (NOT FOUND)

    Describe the bug Just installed cellxgene, and tried to load a dataset of mine, got this error and fails to load.

    Version (please complete the following information):

    • Desktop or hosted?: pip installed on local machine
    • Browser (if hosted) [e.g. chrome, safari]: chrome
    • Version [e.g. 0.13.0]: cellxgene-1.1.1
    bug 
    opened by alexlenail 4
  • differential expression with low number of genes

    differential expression with low number of genes

    Dear cellxgene team, first of all, thank you for developing and maintaining such a nice tool!

    I am trying to analyze a citeseq dataset with cellxgene. The difference here is that instead of cells vs. genes, I have cells vs. a low number of antibodies. In my case 42. Anyway, whenever I try to do a differential analysis on the data I get the following popup: grafik The number of selected cells doesn't seem to make a difference and everything else works fine.

    With a bit of trial and error on a different dataset I could confirm that differential expression only seems to work for > 50 genes. Also, I found this pull request #2130 which might be related.

    Versions:

    • hosted
    • Firefox developer edition
    • Cellxgene 1.1.1

    Best, Hendrik

    bug 
    opened by hschult 1
Releases(1.1.1)
  • 1.1.1(Sep 21, 2022)

    What's Changed

    • chore: fix unit tests by @atarashansky in https://github.com/chanzuckerberg/cellxgene/pull/2562
    • docs: updating readme and display version for rebranding by @ashin-czi in https://github.com/chanzuckerberg/cellxgene/pull/2550
    • chore: updating Annotate favicon and logo icon by @ashin-czi in https://github.com/chanzuckerberg/cellxgene/pull/2556
    • feat: annotate command improvements by @atolopko-czi in https://github.com/chanzuckerberg/cellxgene/pull/2568
    • fix: fix static file serving in webpack by @seve in https://github.com/chanzuckerberg/cellxgene/pull/2574

    New Contributors

    • @atarashansky made their first contribution in https://github.com/chanzuckerberg/cellxgene/pull/2562
    • @ashin-czi made their first contribution in https://github.com/chanzuckerberg/cellxgene/pull/2550

    Full Changelog: https://github.com/chanzuckerberg/cellxgene/compare/1.1.0...1.1.1

    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Aug 23, 2022)

    What's Changed

    • add cloud storage support for annotations by @bkmartinjr in https://github.com/chanzuckerberg/cellxgene/pull/2512
    • fix: remove unnecessary postgres req by @MDunitz in https://github.com/chanzuckerberg/cellxgene/pull/2524
    • chore: replace optimize-css-assets-webpack-plugin with css-minimizer-webpack-plugin by @roaga in https://github.com/chanzuckerberg/cellxgene/pull/2525
    • chore(webpack): remove script-ext-html-webpack-plugin by @seve in https://github.com/chanzuckerberg/cellxgene/pull/2534
    • chore: skip failing tests to unblock adding of new features by @atolopko-czi in https://github.com/chanzuckerberg/cellxgene/pull/2545
    • fix embedding selection by @atolopko-czi in https://github.com/chanzuckerberg/cellxgene/pull/2543
    • fix: s3 user annotations by @atolopko-czi in https://github.com/chanzuckerberg/cellxgene/pull/2541
    • fix: update actions/setup-python version by @roaga in https://github.com/chanzuckerberg/cellxgene/pull/2528
    • use fsspec.download for S3 artifacts + additional logging by @ebezzi in https://github.com/chanzuckerberg/cellxgene/pull/2536
    • feat: add cli annotation subcommand by @atolopko-czi in https://github.com/chanzuckerberg/cellxgene/pull/2539
    • fix test by @atolopko-czi in https://github.com/chanzuckerberg/cellxgene/pull/2549

    New Contributors

    • @roaga made their first contribution in https://github.com/chanzuckerberg/cellxgene/pull/2525

    Full Changelog: https://github.com/chanzuckerberg/cellxgene/compare/1.0.1...v1.1.0

    Source code(tar.gz)
    Source code(zip)
  • 1.0.1(Feb 28, 2022)

    What's Changed

    Bug Fix

    • Fix float16 support [#2379] by @blrnw3 in https://github.com/chanzuckerberg/cellxgene/pull/2483

    Minor Changes

    • Update license to 2022. by @maniarathi in https://github.com/chanzuckerberg/cellxgene/pull/2478
    • chore(deps): bump follow-redirects from 1.14.2 to 1.14.8 in /client by @dependabot in https://github.com/chanzuckerberg/cellxgene/pull/2484
    • chore(deps): bump simple-get from 3.1.0 to 3.1.1 in /client by @dependabot in https://github.com/chanzuckerberg/cellxgene/pull/2489
    • chore(deps): bump tmpl from 1.0.4 to 1.0.5 in /client by @dependabot in https://github.com/chanzuckerberg/cellxgene/pull/2490
    • chore(deps): bump axios from 0.21.1 to 0.21.4 in /client by @dependabot in https://github.com/chanzuckerberg/cellxgene/pull/2491
    • chore(deps): bump nanoid from 3.1.25 to 3.3.1 in /client by @dependabot in https://github.com/chanzuckerberg/cellxgene/pull/2488
    • release version 1.0.1 by @seve in https://github.com/chanzuckerberg/cellxgene/pull/2497

    Full Changelog: https://github.com/chanzuckerberg/cellxgene/compare/1.0.0...1.0.1

    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Nov 2, 2021)

  • 0.19.0(Sep 28, 2021)

    New features

    • Python 3.9 support
    • The latest gene added appears at the top of the list of genes in Quick Gene Search
    • Updated front end package dependencies
    • Assorted maintenance

    Bug fixes

    • Fixed a bug when renaming gene sets
    Source code(tar.gz)
    Source code(zip)
  • 0.18.0(Aug 31, 2021)

    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
    Source code(tar.gz)
    Source code(zip)
  • 0.17.0(Jul 7, 2021)

    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.

    Source code(tar.gz)
    Source code(zip)
  • 0.16.8(May 14, 2021)

    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).

    Source code(tar.gz)
    Source code(zip)
  • 0.16.7(Feb 16, 2021)

    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).

    Source code(tar.gz)
    Source code(zip)
  • 0.16.6(Nov 6, 2020)

  • 0.16.5(Oct 22, 2020)

  • 0.16.4(Aug 28, 2020)

    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.

    Source code(tar.gz)
    Source code(zip)
  • 0.16.2(Aug 17, 2020)

    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.

    Source code(tar.gz)
    Source code(zip)
  • 0.16.0(Aug 12, 2020)

    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 cellxgene.cziscience.com. While it is not yet feature complete, any feedback would be welcome.

    Added

    • 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.

    Changed

    • 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

    Fixed

    • 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

    Security

    • Removed client package that introduced security vulnerabilities #1248
    Source code(tar.gz)
    Source code(zip)
  • 0.15.0(Mar 13, 2020)

    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.

    Added:

    • 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.

    Changed:

    • 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.

    Fixed:

    • 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)

    Source code(tar.gz)
    Source code(zip)
  • 0.14.1(Jan 31, 2020)

  • 0.14.0(Jan 28, 2020)

    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.

    Added:

    • 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 PyPi.org. This check may be bypassed with the new --no-upgrade-check command line option.

    Changed:

    • 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).

    Fixed:

    • 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
    Source code(tar.gz)
    Source code(zip)
  • 0.13.0(Nov 27, 2019)

    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.

    Added:

    • 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.

    Changed:

    • 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 https://chanzuckerberg.github.io/cellxgene/.
    • Javascript and Python package dependencies updated.
    • Dockerfile now contains python-requests package (#1019).
    • Migrate from deprecated Pandas API (#1021).

    Fixed:

    • Various layout issues resolved throughout app.
    Source code(tar.gz)
    Source code(zip)
  • 0.12.0(Oct 8, 2019)

    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.

    Added

    • 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.

    Changed

    • 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)

    Fixed

    • 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.
    Source code(tar.gz)
    Source code(zip)
  • 0.11.2(Aug 14, 2019)

  • 0.11.0(Jul 16, 2019)

    Summary

    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

    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)

    Changed

    Updated roadmap (#825) Menu bar code cleanup, logo (#804)

    Fixed

    Fixed broken URL in docs (#801, #802) Fixed jest tests by removing async (#805)

    Source code(tar.gz)
    Source code(zip)
  • 0.10.1(May 30, 2019)

    Changed

    • Pinned python requirement 'tables==3.5.1' to work around installation failure in recently release of tables 3.5.2

    Fixed

    • Improved main graph scaling and centering of embedding (#784)
    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(May 30, 2019)

    Added

    • 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)

    Changed

    • 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

    • 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)
    Source code(tar.gz)
    Source code(zip)
  • 0.9.3(May 17, 2019)

  • 0.9.2(May 7, 2019)

  • 0.9.1(May 6, 2019)

  • 0.9.0(May 4, 2019)

    Added

    • “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)

    Changed

    • 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)

    Fixed

    • 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)
    Source code(tar.gz)
    Source code(zip)
  • 0.8.0(Apr 1, 2019)

    Added

    • Python 3.7 support
    • Redo/Undo
    • (@falexwolf) Support additional graph layouts
    • Menu with FAQ, etc

    Changed

    • When selected embedding has more than two components cellxgene UI truncates to the first two instead of failing

    Fixed

    • Various UI bug fixes
    • Histograms no longer allow tiny/invisible selections
    Source code(tar.gz)
    Source code(zip)
  • 0.7.0(Mar 1, 2019)

    This is largely a performance and refactoring release, with a few small bug fixes.

    Changes:

    • 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
    Source code(tar.gz)
    Source code(zip)
  • 0.6.1(Feb 14, 2019)

Owner
Chan Zuckerberg Initiative
Finding new ways to leverage technology, community-driven solutions, and collaboration to accelerate progress in science, education, and justice & opportunity.
Chan Zuckerberg Initiative
PennyLane is a cross-platform Python library for differentiable programming of quantum computers.

PennyLane is a cross-platform Python library for differentiable programming of quantum computers. Train a quantum computer the same way as a neural network.

PennyLaneAI 1.6k Jan 04, 2023
Metaflow is a human-friendly Python/R library that helps scientists and engineers build and manage real-life data science projects

Metaflow Metaflow is a human-friendly Python/R library that helps scientists and engineers build and manage real-life data science projects. Metaflow

Netflix, Inc. 6.3k Jan 03, 2023
AnuGA for the simulation of the shallow water equation

ANUGA Contents ANUGA What is ANUGA? Installation Documentation and Help Mailing Lists Web sites Latest source code Bug reports Developer information L

Geoscience Australia 147 Dec 14, 2022
3D visualization of scientific data in Python

Mayavi: 3D visualization of scientific data in Python Mayavi docs: http://docs.enthought.com/mayavi/mayavi/ TVTK docs: http://docs.enthought.com/mayav

Enthought, Inc. 1.1k Jan 06, 2023
Doing bayesian data analysis - Python/PyMC3 versions of the programs described in Doing bayesian data analysis by John K. Kruschke

Doing_bayesian_data_analysis This repository contains the Python version of the R programs described in the great book Doing bayesian data analysis (f

Osvaldo Martin 851 Dec 27, 2022
🍊 :bar_chart: :bulb: Orange: Interactive data analysis

Orange Data Mining Orange is a data mining and visualization toolbox for novice and expert alike. To explore data with Orange, one requires no program

Bioinformatics Laboratory 3.9k Jan 05, 2023
Discontinuous Galerkin finite element method (DGFEM) for Maxwell Equations

DGFEM Maxwell Equations Discontinuous Galerkin finite element method (DGFEM) for Maxwell Equations. Work in progress. Currently, the 1D Maxwell equati

Rafael de la Fuente 9 Aug 16, 2022
An open-source application for biological image analysis

CellProfiler is a free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure

CellProfiler 734 Jan 08, 2023
Mathics is a general-purpose computer algebra system (CAS). It is an open-source alternative to Mathematica

Mathics is a general-purpose computer algebra system (CAS). It is an open-source alternative to Mathematica. It is free both as in "free beer" and as in "freedom".

Mathics 535 Jan 04, 2023
A computer algebra system written in pure Python

SymPy See the AUTHORS file for the list of authors. And many more people helped on the SymPy mailing list, reported bugs, helped organize SymPy's part

SymPy 9.9k Jan 08, 2023
A modular single-molecule analysis interface

MOSAIC: A modular single-molecule analysis interface MOSAIC is a single molecule analysis toolbox that automatically decodes multi-state nanopore data

National Institute of Standards and Technology 35 Dec 13, 2022
Validated, scalable, community developed variant calling, RNA-seq and small RNA analysis

Validated, scalable, community developed variant calling, RNA-seq and small RNA analysis. You write a high level configuration file specifying your in

Blue Collar Bioinformatics 915 Dec 29, 2022
Algorithms covered in the Bioinformatics Course part of the Cambridge Computer Science Tripos

Bioinformatics This is a repository of all the algorithms covered in the Bioinformatics Course part of the Cambridge Computer Science Tripos Algorithm

16 Jun 30, 2022
A mathematica expression evaluator with PokemonTypes

A simple mathematical expression evaluator that uses Pokemon types to replace symbols.

Arnav Jindal 2 Nov 14, 2021
artisan: visual scope for coffee roasters

Artisan Visual scope for coffee roasters WARNING: pre-release builds may not work. Use at your own risk. Summary Artisan is a software that helps coff

Artisan – Visual Scope for Coffee Roasters 705 Jan 05, 2023
SCICO is a Python package for solving the inverse problems that arise in scientific imaging applications.

Scientific Computational Imaging COde (SCICO) SCICO is a Python package for solving the inverse problems that arise in scientific imaging applications

Los Alamos National Laboratory 37 Dec 21, 2022
OPEM (Open Source PEM Fuel Cell Simulation Tool)

Table of contents What is PEM? Overview Installation Usage Executable Library Telegram Bot Try OPEM in Your Browser! MATLAB Issues & Bug Reports Contr

ECSIM 133 Jan 04, 2023
PsychoPy is an open-source package for creating experiments in behavioral science.

PsychoPy is an open-source package for creating experiments in behavioral science. It aims to provide a single package that is: precise enoug

PsychoPy 1.3k Dec 31, 2022
Animation engine for explanatory math videos

Manim is an engine for precise programatic animations, designed for creating explanatory math videos. Note, there are two versions of manim. This repo

Grant Sanderson 48.9k Jan 03, 2023
A logical, reasonably standardized, but flexible project structure for doing and sharing data science work.

Cookiecutter Data Science A logical, reasonably standardized, but flexible project structure for doing and sharing data science work. Project homepage

6.4k Jan 02, 2023