Giter Club home page Giter Club logo

cellbender's Introduction

CellBender

License Documentation Status PyPI Downloads Stars

CellBender Logo

CellBender is a software package for eliminating technical artifacts from high-throughput single-cell RNA sequencing (scRNA-seq) data.

The current release contains the following modules. More modules will be added in the future:

  • remove-background:

    This module removes counts due to ambient RNA molecules and random barcode swapping from (raw) UMI-based scRNA-seq count matrices. Also works for snRNA-seq and CITE-seq.

Please refer to the documentation for a quick start tutorial.

Installation and Usage

CellBender can be installed via

$ pip install cellbender

(and we recommend installing in its own conda environment to prevent conflicts with other software).

CellBender is run as a command-line tool, as in

(cellbender) $ cellbender remove-background \
      --cuda \
      --input my_raw_count_matrix_file.h5 \
      --output my_cellbender_output_file.h5

See the usage documentation for details.

Using The Official Docker Image

A GPU-enabled docker image is available from the Google Container Registry (GCR) as:

us.gcr.io/broad-dsde-methods/cellbender:latest

Available image tags track release tags in GitHub, and include latest, 0.1.0, 0.2.0, 0.2.1, 0.2.2, and 0.3.0.

WDL Users

A workflow written in the workflow description language (WDL) is available for CellBender remove-background.

For Terra users, a workflow called cellbender/remove-background is available from the Broad Methods repository.

There is also a version available on Dockstore.

Advanced installation

From source for development

Create a conda environment and activate it:

$ conda create -n cellbender python=3.7
$ conda activate cellbender

Install the pytables module:

(cellbender) $ conda install -c anaconda pytables

Install pytorch via these instructions, for example:

(cellbender) $ pip install torch

and ensure that your installation is appropriate for your hardware (i.e. that the relevant CUDA drivers get installed and that torch.cuda.is_available() returns True if you have a GPU available.

Clone this repository and install CellBender (in editable -e mode):

(cellbender) $ git clone https://github.com/broadinstitute/CellBender.git
(cellbender) $ pip install -e CellBender

From a specific commit

This can be achieved via

(cellbender) $ pip install --no-cache-dir -U git+https://github.com/broadinstitute/CellBender.git@<SHA>

where <SHA> must be replaced by any reference to a particular git commit, such as a tag, a branch name, or a commit sha.

Citing CellBender

If you use CellBender in your research (and we hope you will), please consider citing our paper in Nature Methods:

Stephen J Fleming, Mark D Chaffin, Alessandro Arduini, Amer-Denis Akkad, Eric Banks, John C Marioni, Anthony A Phillipakis, Patrick T Ellinor, and Mehrtash Babadi. Unsupervised removal of systematic background noise from droplet-based single-cell experiments using CellBender. Nature Methods, 2023. https://doi.org/10.1038/s41592-023-01943-7

See also our preprint on bioRxiv.

cellbender's People

Contributors

sjfleming avatar mbabadi avatar nfancy avatar alecw avatar jacobkimmel avatar mxposed avatar prete avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.