Bruce Martin 3660a6cc27 Experimental - manual annotations (#837)
* icons, partway

* redux for values

* onChange

* cancel

* annotations lifecycle for category names

* copy categorical

* edit category

* add Dataframe.withColsFrom

* render user annotations; default add/delete annotation category

* add label name to actions

* category name edit

* error checking improvements

* change schema field isUserAnnotation to writable

* always have an unassigned label; implement delete label

* implement add new label and edit label name

* label current cell selection

* fix select exact bug in crossfilter

* clean up categorical reducer

* fix tests

* remove debugging printf

* implement subset/reset for user annotations

* undo redo support for user annotations

* remove duplicate button from categories

* add modal

* remove obsolete duplicate annotation reducers

* remove old debugging printf

* connect modal to annotation create and dup

* initial full-stack wiring

* finish up end-to-end wiring

* fix existing unit tests

* fix pytests to match new schema API

* remove debugging printfs

* add label file rotation

* remove obsolete comment

* add fbs encode/decode tests

* add tests for writable annotations

* simplify code

* fix hashing bug with FBS encoding

* lint

* fix smoke tests

* improve error checking in Dataframe.withColsFrom

* add unit test for Dataframe.withColsFrom

* add unit test for Dataframe.columns and Dataframe.renameCol

* fix bug in FBS encode, add better error checks, refactor

* add FBS encode/decode test

* add clarifying comment

* clean up action type names; fix state inconsistency in crossfilter update

* change autosave timer to 2.5sec

* sort categorical metadata render order so it remains consistent

* add temporary autogenerated label for add-new-label operation

* fix hover-over label menu interference with cell highlighting

* remove debugging code

* add missing reducer cases & fix typo

* make dataframe memoize more general purpose

* add dev mode for annos

* fix error on select duplicate

* handle zero occupancy categories

* correctly maintain unclipped AND clipped world

* correctly handle zero length FBS matrix and label files

* ensure all writable categorical schema contains an unassigned category

* handle case where building occupancy stack for category with no members

* dialog for creating label, disable button if duplicate or empty

* visually separate writeable

* edit category

* fix edit category name

* remove debugging code

* fix edit annotation label

* visually define unassigned, change options

* Pull in requirements.txt from `master`

* label currently selected cells

* duplicate label

* lint

* fix pytest merge issues

* rename --label-file to --experimental-label-file

* remove debugging console log

* spelling error fix; fix bug found in PR review.

* lint
2019-09-18 07:33:41 -04:00
2019-05-21 13:57:34 -07:00
2019-07-19 12:40:54 -07:00
2018-12-11 10:18:10 -08:00
2019-04-30 12:52:15 -07:00
2019-05-18 10:50:17 -07:00
2019-07-12 12:29:22 -07:00
2019-07-12 12:29:22 -07:00
2018-12-11 10:18:10 -08:00
2017-08-23 16:28:01 -07:00
2019-07-12 12:29:22 -07:00
2019-08-12 12:56:26 -07:00
2019-06-26 09:47:37 -07:00
2019-06-27 17:30:57 -07:00
2019-03-14 12:08:46 -07:00

an interactive explorer for single-cell transcriptomics data

DOI

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.

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

Download an example anndata file

curl -O https://cellxgene-example-data.czi.technology/pbmc3k.h5ad.zip
unzip pbmc3k.h5ad

Launch cellxgene

cellxgene launch pbmc3k.h5ad --open

To learn more about what you can do with cellxgene, see the Getting Started guide.

get in touch

Have questions, suggestions, or comments? You can come hang out with us by joining the CZI Science Slack and posting in the #cellxgene-users channel. Have feature requests or bugs? Please submit these as Github issues. We'd love to hear from you!

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.

core team

  • Colin Megill, frontend & product design
  • Charlotte Weaver, software engineer
  • Bruce Martin, software engineer
  • Sidney Bell, computational biologist
  • Justin Kiggins, product manager
  • Lia Prins, designer

where we are going

Our goal is to enable teams of computational and experimental biologists to collaboratively gain insight into their single-cell RNA-seq data.

There are 4 key features we plan to implement in the near term.

  • Click install and launch
  • Manual annotation workflows
  • Toggle embeddings
  • Gene information

For more detail on these features and where we are going, see our roadmap.

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

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.

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%