SignacFast {SignacX}R Documentation

Fast classification of cellular phenotypes

Description

SignacFast uses pre-computed neural network models to classify cellular phenotypes in single cell data: these models were pre-trained with the HPCA training data. Any features that are present in the training data and absent in the single cell data are set to zero. This is a factor of ~5-10 speed improvement over Signac.

Usage

SignacFast(
  E,
  Models = "default",
  spring.dir = NULL,
  num.cores = 1,
  threshold = 0,
  smooth = TRUE,
  impute = TRUE,
  verbose = TRUE,
  do.normalize = TRUE,
  return.probability = FALSE,
  graph.used = "nn"
)

Arguments

E

a gene (rows) by cell (column) matrix, sparse matrix or a Seurat object. Rows are HUGO symbols.

Models

if 'default', as returned by GetModels_HPCA. An ensemble of 1,800 neural network models.

spring.dir

If using SPRING, directory to categorical_coloring_data.json. Default is NULL.

num.cores

number of cores to use for parallel computation. Default is 1.

threshold

Probability threshold for assigning cells to "Unclassified." Default is 0.

smooth

if TRUE, smooths the cell type classifications. Default is TRUE.

impute

if TRUE, gene expression values are imputed prior to cell type classification (see KSoftImpute). Default is TRUE.

verbose

if TRUE, code will report outputs. Default is TRUE.

do.normalize

if TRUE, cells are normalized to the mean library size. Default is TRUE.

return.probability

if TRUE, returns the probability associated with each cell type label. Default is TRUE.

graph.used

If using Seurat object by default, Signac uses the nearest neighbor graph in the graphs field of the Seurat object. Other options are "wnn" to use weighted nearest neighbors, as well as "snn" to use shared nearest neighbors.

Value

A list of character vectors: cell type annotations (L1, L2, ...) at each level of the hierarchy as well as 'clusters' for the Louvain clustering results.

See Also

Signac for another classification function.

Signac

Examples

## Not run: 
# download single cell data for classification
file.dir = "https://cf.10xgenomics.com/samples/cell-exp/3.0.0/pbmc_1k_v3/"
file = "pbmc_1k_v3_filtered_feature_bc_matrix.h5"
download.file(paste0(file.dir, file), "Ex.h5")

# load data, process with Seurat
library(Seurat)
E = Read10X_h5(filename = "Ex.h5")
pbmc <- CreateSeuratObject(counts = E, project = "pbmc")
pbmc <- SCTransform(pbmc)
pbmc <- RunPCA(pbmc, verbose = FALSE)
pbmc <- RunUMAP(pbmc, dims = 1:30, verbose = FALSE)
pbmc <- FindNeighbors(pbmc, dims = 1:30, verbose = FALSE)

# classify cells
labels = SignacFast(E = pbmc)
celltypes = GenerateLabels(labels, E = pbmc)

# add labels to Seurat object, visualize
lbls <- factor(celltypes$CellStates)
levels(lbls) <- sort(unique(lbls))
pbmc <- AddMetaData(pbmc, metadata=celltypes$CellStates, col.name = "celltypes")
pbmc <- SetIdent(pbmc, value='celltypes')
DimPlot(pbmc, label = T)

# save results
saveRDS(pbmc, "pbmcs.rds")
saveRDS(celltypes, "celltypes.rds")

## End(Not run)

[Package SignacX version 2.2.5 Index]