defaultDrops: Call cells from number of UMIs

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/defaultDrops.R

Description

Call cells according to the number of UMIs associated with each barcode, as implemented in CellRanger.

Usage

1
defaultDrops(m, expected=3000, upper.quant=0.99, lower.prop=0.1)

Arguments

m

A real sparse matrix object, either a dgTMatrix or dgCMatrix. Columns represent barcoded droplets, rows represent cells. The matrix should correspond to an individual sample.

expected

A numeric scalar specifying the expected number of cells in this sample, as specified in the call to CellRanger.

upper.quant

A numeric scalar between 0 and 1 specifying the quantile of the top expected barcodes to consider for the first step of the algorithm

lower.prop

A numeric scalar between 0 and 1 specifying the fraction of molecules of the upper.quant quantile result that a barcode must exceed to be called as a cell

Details

The defaultDrops function will call cells based on library size similarly to the CellRanger software suite from 10X Genomics. Default arguments correspond to an exact reproduction of CellRanger's algorithm, where the number of expected cells was also left at CellRanger default value.

The method computes the upper.quant quantile of the top expected barcodes, ordered by decreasing number of UMIs. Any barcodes containing more molecules than lower.prop times this quantile is considered to be a cell, and is retained for further analysis.

This method may be vulnerable to calling very well-captured background RNA as cells, or missing real cells with low RNA content. See ?emptyDrops for an alternative approach for cell calling.

Value

defaultDrops will return a logical vector of length ncol(m). Each element of the vector reports whether each column of m was called as a cell.

Author(s)

Jonathan Griffiths

References

10X Genomics (2017). Cell Ranger Algorithms Overview. https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/algorithms/overview

See Also

emptyDrops

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Mocking up some data: 
set.seed(0)
my.counts <- DropletUtils:::simCounts()

# Identify likely cell-containing droplets. 
called <- defaultDrops(my.counts)
table(called)

# Get matrix of called cells.
cell.counts <- my.counts[, called]

DropletUtils documentation built on Feb. 4, 2021, 2:01 a.m.