Web application for exploration of large scale scRNA-seq datasets
Project description
cellxgene
an interactive explorer for single-cell transcriptomics data
cellxgene (pronounced "sell-by-jean") 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, and to demonstrate general, scalable, and reusable patterns for scientific data visualization.
- Want to install and use cellxgene? Visit the cellxgene docs.
- Want to see where we are going? Check out our roadmap.
- Want to contribute? See our contributors guide
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 pbmc3k.h5ad https://raw.githubusercontent.com/chanzuckerberg/cellxgene/master/example-dataset/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. As mentioned above, please submit any feature requests or bugs as Github issues. We'd love to hear from you!
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.
contributing
We warmly welcome contributions from the community! Please submit any bug reports and feature requests through Github issues. Please submit any direct contributions by forking the repository, creating a branch, and submitting a Pull Request. It'd be great for PRs to include test cases and documentation updates where relevant, though we know the core test suite is itself still a work in progress. And all code contributions and dependencies must be compatible with the project's open-source license (MIT). If you have any questions about this stuff, just ask!
developer guide
This project has made a few key design choices
- The front-end is built with
regl
(a webgl library),react
,redux
,d3
, andblueprint
to handle rendering large numbers of cells with lots of complex interactivity - The app is designed with a client-server model that can support a range of existing analysis packages for backend computational tasks (currently built for scanpy)
- The client uses fast cross-filtering to handle selections and comparisons across subsets of data
Depending on your background and interests, you might want to contribute to the frontend, or backend, or both!
If you are interested in working on cellxgene
development, we recommend cloning the project from Gitub. First you'll need the following installed on your machine
- python 3.6+
- node and npm (we recommend using nvm if this is your first time with node)
Then clone the project
git clone https://github.com/chanzuckerberg/cellxgene.git
Build the client web assets by calling make
from inside the cellxgene
folder
make
Install all requirements (we recommend doing this inside a virtual environment)
pip install -e .
You can start the app while developing either by calling cellxgene
or by calling python -m server
. We recommend using the --debug
flag to see more output, which you can include when reporting bugs.
If you have any questions about developing or contributing, come hang out with us by joining the CZI Science Slack and posting in the #cellxgene-dev
channel.
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
core team
- Colin Megill, frontend & product design
- Charlotte Weaver, software engineer
- Bruce Martin, software engineer
- Sidney Bell, computational biologist
- Justin Kiggins, product manager
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file cellxgene-0.9.1.tar.gz
.
File metadata
- Download URL: cellxgene-0.9.1.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | faeef68727cdd719f5a54551cafe68249d92cbdc148c8de479aad3df1f6de25f |
|
MD5 | f7c2191f8c8fd64f7f6628b61adb3373 |
|
BLAKE2b-256 | b7d9e16797e0b9e1fdcda29fb7192e5af44019e07cb593ceeb58d064963f2e86 |