• Stars
    star
    158
  • Rank 237,131 (Top 5 %)
  • Language
    R
  • License
    GNU General Publi...
  • Created over 5 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Clone of the Bioconductor repository for the SingleR package.

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.

More Repositories

1

SingleCellThoughts

Assorted thoughts, explanations and justifications for code in the scran package and the simpleSingleCell workflow.
TeX
41
star
2

umappp

UMAP C++ implementation
C++
38
star
3

celldex

Collection of cell type reference datasets.
R
35
star
4

scRNAseq

Clone of the Bioconductor repository for the scRNAseq package.
R
21
star
5

batchelor

Clone of the Bioconductor repository for the batchelor package.
R
16
star
6

knncolle

Collection of KNN algorithms in C++
C++
11
star
7

scran.chan

A slimmed down version of scran, based on the C++ library of the same name.
R
10
star
8

CppIrlba

A C++ port of the IRLBA algorithm, based on the C code in the R package.
C++
10
star
9

TileDBArray

Clone of the Bioconductor repository for the TileDBArray package.
R
10
star
10

SingleRBook-base

See https://github.com/LTLA/SingleRBook for the latest version of this content.
TeX
10
star
11

PseudoCount2018

Some thoughts on choosing an appropriate pseudo-count for log-transformation of scRNA-seq counts.
TeX
9
star
12

archive-beachmat

An archived version of the beachmat repository, see https://github.com/LTLA/beachmat for the active version.
C++
8
star
13

Counterspell2018

UU: Counter target spell.
TeX
8
star
14

CppWeightedLowess

A standalone C++ implementation of limma::weightedLowess.
C++
8
star
15

MoeDCPLogo

Making the DCP logo moe-r.
8
star
16

libscran

scran, but in C++.
C++
7
star
17

scuttle

Clone of the Bioconductor repository for the scuttle package.
R
7
star
18

qdtsne

A quick-and-dirty t-SNE implementation as a header-only library
C++
7
star
19

HumanCellAtlasData

R/Bioconductor-based access to single-cell genomics data generated by the Human Cell Atlas Project.
R
7
star
20

rds2cpp

Read and write RDS files in C++
C++
6
star
21

HVGDetection2018

Justification for the variance modelling and HVG detection methods in scran.
TeX
6
star
22

BiocSingular

Clone of the Bioconductor repository for the BiocSingular package.
R
6
star
23

BiocNeighbors

Clone of the Bioconductor repository for the BiocNeighbors package.
C++
6
star
24

ParquetDataFrame

Bioconductor-friendly bindings for Parquet files.
R
5
star
25

CppKmeans

C++ port of R's Hartigan-Wong implementation
C++
5
star
26

artsc

Single-cell-related art, which may or may not be scientifically useful. But hey, it's pretty.
R
5
star
27

SingleRBook

The package wrapping the book, for deployment via the Bioconductor build system.
TeX
5
star
28

tatami

C++ API for various matrix types.
C++
5
star
29

bakana

Backend compute for kana
JavaScript
5
star
30

gesel.js

Client-side gene set queries.
JavaScript
5
star
31

archive-csaw

An archived version of the csaw repository, see https://github.com/LTLA/csaw for the active version.
R
5
star
32

uzuki

Safely saving R lists to JSON
C++
4
star
33

CppMnnCorrect

A C++ implementation of the MNN correction algorithm
C++
4
star
34

yaumap

Yet Another UMAP package for R
C++
4
star
35

PCSelection2018

Some comments on how to determine the number of PCs to retain.
TeX
4
star
36

csawUsersGuide

Clone of the Bioconductor repository for the csawUsersGuide workflow.
4
star
37

MatrixEval2017

Evaluating access and memory usage of different matrix types
TeX
4
star
38

SummarizedExperiments.jl

Julia implementation of Bioconductor's SummarizedExperiment class
Julia
4
star
39

rebook

Clone of the Bioconductor repository for the rebook package.
R
4
star
40

beachmat

Clone of the Bioconductor repository for the beachmat package.
C++
3
star
41

scran-cli

A command line interface to scran
C++
3
star
42

MultiAssayExperiments.jl

Julia implementation of Bioconductor's MultiAssayExperiment.
Julia
3
star
43

gesel-feedstock

Generate pre-built gesel indices for client-side gene set search.
R
3
star
44

diffHic

Clone of the Bioconductor repository for the diffHic package.
R
3
star
45

LazyAssayVectors

Lazily materialized assay vectors based on ALTREP.
C++
2
star
46

bluster

Clone of the Bioconductor repository for the bluster package.
R
2
star
47

tsvd

Truncated SVD algorithms in C++
2
star
48

IndependentFilter2015

Some work detailing the independence of the NB mean as a filter statistic.
R
2
star
49

DropletTestFiles

Clone of the Bioconductor repository for the DropletTestFiles package.
R
2
star
50

subpar

Substitutable parallelization for C++ libraries
C++
2
star
51

TrojanBookBuilder

Sneak books onto the Bioconductor build system with a trojan package.
R
2
star
52

wasmarrays.js

Memory-management wrapper around arrays on the Wasm heap.
JavaScript
2
star
53

byteme

C++ utilities for simple buffered inputs.
C++
2
star
54

csaw

Clone of the Bioconductor repository for the csaw package.
R
2
star
55

acceptable-anime-gifs

A curated set of GIFs that are reasonably SFW, primarily used to power annoying Slackbots.
2
star
56

aarand

Aaron's random distributions for C++
C++
2
star
57

metapod

Clone of the Bioconductor repository for the metapod package.
R
2
star
58

archive-InteractionSet

An archived version of the InteractionSet repository, see https://github.com/LTLA/InteractionSet for the active version.
R
2
star
59

InteractionSet

Clone of the Bioconductor repository for the InteractionSet package, see https://bioconductor.org/packages/devel/bioc/html/InteractionSet.html for the official development version.
R
2
star
60

HDF5Arrays.jl

Julia implementation of Bioconductor's HDF5Array class.
Julia
1
star
61

igraph-wasm

Compiled Wasm binaries for the igraph C library
CMake
1
star
62

crio

CellRanger input/output
R
1
star
63

kana-feature-sets

Prebuilt feature sets for use in kana's GSEA
R
1
star
64

bioconductor.js

Javascript implementations of common Bioconductor classes
JavaScript
1
star
65

DebuggingSpectra

Various files for debugging the Spectra library.
C++
1
star
66

chipseqDB

Clone of the Bioconductor repository for the chipseqDB workflow.
1
star
67

kaori

C++ library for barcode counting
C++
1
star
68

CRUKtools

Assorted scripts for running server jobs at CRUK CI
Shell
1
star
69

raticate

R bindings for tatami matrices
C++
1
star
70

gesel-app

A demonstration UI for the gesel library.
JavaScript
1
star
71

main2master

Convert your main branch back to its rightful name.
Shell
1
star
72

actions-anime-gif-slackbot

Post anime GIFs to Slack as a GitHub Action. What better way to annoy your co-workers?
Python
1
star
73

gesel-manuscript

Manuscript for the gesel NPM package.
TeX
1
star
74

anime-slack-cronjob

Hosts GitHub Actions that posts anime GIFs to my various slack channels.
1
star
75

uzuki2

R lists to HDF5... or JSON, I suppose
C++
1
star
76

scran.jl

Julia bindings for the libscran library.
Julia
1
star
77

aggregate-demonstrator

Demonstration of how to vendor aggregateAcrossCells
C++
1
star
78

TravelsAroundTheWorld

Aaron's tips, tricks and general reminders for travelling around the world. Or at least to civilized places with internet connectivity.
1
star
79

BumpyMatrix

Clone of the Bioconductor repository for the BumpyMatrix package.
R
1
star
80

OddsAndEnds

Miscellaneous code fragments that don't belong anywhere else.
Shell
1
star
81

csawBook

The book of the package.
TeX
1
star
82

singlepp

Pure C++ implementation of the SingleR method for cell type annotation
C++
1
star
83

ResidualMatrix

Clone of the Bioconductor repository for the ResidualMatrix package.
R
1
star
84

ChIPSeqThoughts

Assorted thoughts on ChIP-seq practices and software, see https://ltla.github.io/ChIPSeqThoughts for the compiled version.
Makefile
1
star
85

GenomicFeatureVectors.jl

Julia implementation of Bioconductor's GenomicRanges(List) infrastructure.
Julia
1
star
86

acceptable-anime-gifs-api

REST API for serving anime GIFs on a Cloudflare Worker
JavaScript
1
star