Giter Club home page Giter Club logo

singler's Introduction

SingleR - Single-cell Recognition

Bioconductor Time Bioconductor Downloads Support posts

Current build status

  • release Bioconductor Availability Bioconductor Dependencies Bioconductor Commits Bioconductor Release Build
  • development Bioconductor Availability Bioconductor Dependencies Bioconductor Commits Bioconductor Devel Build

Recent advances in single cell RNA-seq (scRNA-seq) have enabled an unprecedented level of granularity in characterizing gene expression changes in disease models. Multiple single cell analysis methodologies have been developed to detect gene expression changes and to cluster cells by similarity of gene expression. However, the classification of clusters by cell type relies heavily on known marker genes, and the annotation of clusters is performed manually. This strategy suffers from subjectivity and limits adequate differentiation of closely related cell subsets. Here, we present SingleR, a novel computational method for unbiased cell type recognition of scRNA-seq. SingleR leverages reference transcriptomic datasets of pure cell types to infer the cell of origin of each of the single cells independently.

For more informations please refer to the manuscript: Aran, Looney, Liu et al. Reference-based analysis of lung single-cell sequencing reveals a transitional profibrotic macrophage. Nature Immunology (2019)

This repository contains a simplified, more performant version of SingleR. The original repository containing the legacy version can be found here. This version does not support the browser application that accompanied the original version.

Installation

This is the development version of the R/Bioconductor package SingleR. It may contain unstable or untested new features. If you are looking for the release version of this package please go to its official Bioconductor landing page and follow the instructions there to install it.

If you were really looking for this development version, then you can install it via:

install.packages("BiocManager")
BiocManager::install("SingleR", version = "devel")

Alternatively, you can install it from GitHub using the devtools package.

install.packages("devtools")
library(devtools)
install_github("LTLA/SingleR")

Usage

The SingleR() function annotates each cell in a test dataset given a reference dataset with known labels. Documentation and basic examples can be accessed with ?SingleR.

Both basic and advanced examples can be found in the SingleR book.

Usage with Seurat/SingleCellExperiment objects

SingleR() is made to be workflow/package agnostic - if you can get a matrix of normalized counts, you can use it. SingleCellExperiment objects can be used directly. Seurat objects can be converted to SingleCellExperiment objects via Seurat's as.SingleCellExperiment() function or their normalized counts can be retrieved via GetAssayData or FetchData.

SingleR results labels can be easily added back to the metadata of these objects as well:

seurat.obj[["SingleR.labels"]] <- singler.results$labels

# Or if `method="cluster"` was used:
seurat.obj[["SingleR.cluster.labels"]] <- 
        singler.results$labels[match(seurat.obj[[]][["my.input.clusters"]], rownames(singler.results))]

Scalability

SingleR performs well on large numbers of cells - annotating 100k cells with fine-grain labels typically takes under an hour using a single processing core. Using broad labels can reduce the time to under 15 minutes, though run times will vary between datasets and the reference dataset used.

Contributors

SingleR was originally developed by Dvir Aran. This refactor was initiated by Aaron Lun, with additional contributions from Daniel Bunis, Friederike Dündar, and Jared Andrews.

Issues and pull requests are welcome.

singler's People

Contributors

alexvpickering avatar dtm2451 avatar friedue avatar j-andrews7 avatar ltla avatar nturaga avatar zhihua-chen avatar

Watchers

 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.