scCAN {scCAN} | R Documentation |
scCAN
Description
This is the main function to perform sc-RNA seq data clustering clustering. scCAN is fully unsupervised scRNA-seq clustering framework that uses deep neural network and network fusion-based clustering algorithm. First, scCAN applies a non-negative autoencoder to filter scRNA-seq data. Second, the filtered data is passed to stacked Bayesian autoencoder to get multiple low-dimensional representations of input data. Subsequently, scCAN converts these compressed data into networks and unify those networks to a single graph. Then, scCAN uses a spectral clustering algorithm to obtain final clusters assignment.
Usage
scCAN(
data,
sparse = FALSE,
n.neighbors = 30,
alpha = 0.5,
n.iters = 10,
ncores = 10,
r.seed = 1,
subsamp = TRUE,
k = 2:15,
samp.size = 5000
)
Arguments
data |
Gene expression matrix, with rows represent samples and columns represent genes. |
sparse |
Boolen variable indicating whether data is a sparse matrix. The input must be a non negative sparse matrix. |
n.neighbors |
Number of neighboring cells that are used to caculate the edge's weight. The number of neighbors are set |
alpha |
A hyper parameter that control the weight of graph. This values is set to |
n.iters |
A hyper-parameter to set the number of network fusion iterations. It is set to |
ncores |
Number of processor cores to use. |
r.seed |
A parameter to set a seed for reproducibility. This values is set to |
subsamp |
Enable subsampling process for big data. This values is set to |
k |
A vector to search for optimal number of cluster. |
samp.size |
A parameter to control number of sub-sampled cells. |
Value
List with the following keys:
cluster - A numeric vector containing cluster assignment for each sample.
k - The optimal number of cluster.
latent - The latent data generated from autoencoders.
References
1. Duc Tran, Hung Nguyen, Bang Tran, Carlo La Vecchia, Hung N. Luu, Tin Nguyen (2021). Fast and precise single-cell data analysis using a hierarchical autoencoder. Nature Communications, 12, 1029. doi: 10.1038/s41467-021-21312-2
Examples
## Not run:
# Not run if scDHA has not installed yet.
# Load the package and the example data (SCE dataset)
library(scCAN)
#Load example data
data("SCE")
#Get data matrix and label
data <- t(SCE$data); label <- as.character(SCE$cell_type1)
#Generate clustering result, the input matrix has rows as samples and columns as genes
result <- scCAN(data, r.seed = 1)
#Get the clustering result
cluster <- result$cluster
#Calculate adjusted Rand Index
ari <- round(scCAN::adjustedRandIndex(cluster,label), 2)
message(paste0("ARI = ", ari))
## End(Not run)