Bruce Martin 1269e188be Redux refactor (#1571)
* refactor categorical controls state

* lint

* fix race condition in tests

* fix typo

* add missing update on subset

* remove obsolete code

* update jest and puppeteer major version; update all minors

* update when label changes

* remove lint from tests; increase timeouts in e2e tests

* initial refactoring to new async annomatrix

* refine error handling

* fix bad merge

* add continuous legend

* lint

* fix memoization in color table creators

* partial implementation of user defined annotations

* add new annotations action creator file

* first pass at user annotations

* additional user annotation bug fixes

* user annotation auto-save

* unit test cleanup

* lint

* refactor into multiple files

* cleanup

* add column GC

* fix several bugs in user annotations

* remove debug code

* no anonymous functions

* undo redo cleanup

* file cleanup

* scatterplot

* performance

* cleanup

* remove old code

* render in parallel with load

* fix race condition

* simply graph rendering

* render throttle DRY

* fix category label order

* fix typo in e2e test setup

* re-fix the e2e test setup

* be more tolerant of races

* anno matrix unit tests

* temp disable reembedding

* pilot port continuous histo to react-async

* name change

* lint

* fix repaint bug

* typo fix

* update snap to match new ids

* world/universe name cleanup

* move annoMatrix to src dir

* use private underscore naming convention

* fix corner case in all selected

* name cleanup

* add layout control

* init edge case

* lint

* port scatterplot

* fix label indexing bug and improve tests

* port category to react-async

* fix user annotation labelling while subset

* select all of prev layout on layout switch

* fix race with crossfilter update

* prettier lint

* fix misleading comment

* fix url composition in loader

* first pass at crossfilter tests

* lint

* lint

* fix typo

* improved error handling for network errors

* fix memoization bug

* add memo

* refactor for performnce

* add missing single-value handling in select exact parser

* small bugs discovered by tests

* lint

* additional crossfilter unit tests

* remove extraneous comment

* add support for automatic category determination

* lint

* fix render bug in category

* take advantage of schema categories guarantee

* lint

* do not clear history when resetting

* enhanced annomatrix gc

* lint

* finish renaming to follow conventions; fix clone race bug

* lint

* add priority based loading to improve initial data load UX

* crossfilter cache perf

* perf tuning

* remove timers

* documentation

* PR review changes

* PR review changes

* more PR review edits

* improve clarity of comment

* more PR review fixes

* port centroidLabels to use react-async

* remove dead code

* pr review updates

* oops, remove logging
2020-07-14 13:53:33 -07:00
2020-07-14 13:53:33 -07:00
2020-07-10 14:55:55 -07:00
2020-02-26 14:57:46 -08:00
2018-12-11 10:18:10 -08:00
2020-07-07 16:27:08 -07:00
2019-11-05 08:57:29 -08:00
2017-08-23 16:28:01 -07:00
2020-02-19 10:22:35 -08:00
2020-03-16 09:47:01 -07:00
2020-03-13 13:11:12 -07:00

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.

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.

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to opensource@chanzuckerberg.com.

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, and reach out to us with ideas or questions. All code is freely available for reuse under the MIT license.

Security

If you believe you have found a security issue, we would appreciate notification. Please send email to security@chanzuckerberg.com.

About

Core team

The current core team:

  • Colin Megill, frontend & product design
  • Bruce Martin, software engineer
  • Sidney Bell, computational biologist
  • Lia Prins, designer
  • Severiano Badajoz, software engineer

We would also like to gratefully acknowledge contributions from past core team members:

  • Charlotte Weaver, software engineer

Inspiration

We've been heavily inspired by several other related single-cell visualization projects, including the UCSC Cell Browswer, Cytoscape, Xena, ASAP, Gene Pattern, 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

S
Description
An interactive explorer for single-cell transcriptomics data
Readme MIT
729 MiB
Languages
JavaScript 68.4%
Python 30.1%
Makefile 0.7%
HTML 0.4%
CSS 0.2%