介绍
文章对已知的多种细胞系混合后进行单细胞10X RNA测序,研究多克隆之间的互作模式。我们这里介绍里面的单细胞测序基因表达细胞分类操作。不过文章选用的是已知固有SNP进行分类,基因表达分类用于和SNP分类进行比较。
代码讲解
读入QC后的seurat obj,过滤代码见之前的博客http://www.thecodesearch.com/2021/01/28/%e5%8d%95%e7%bb%86%e8%83%9erna%e6%b5%8b%e5%ba%8fqc%e5%b7%b2%e7%9f%a5%e6%a0%b7%e6%9c%acsnp/
根据测序的细胞系个数设定参数, n_pcs是主成分分析时主成分个数, clust_res是运行FindCluster函数的resolution参数
n_cls <- nlevels(seuObj)
n_pcs <- 2*n_cls
if(n_cls > 25-param_range & n_cls < 25+param_range) {
clust_res <- 1
} else if(n_cls > 50-param_range & n_cls < 50+param_range) {
clust_res <- 2
} else if(n_cls > 100-param_range & n_cls < 100+param_range) {
clust_res <- 4
} else {
stop('Not implemented')
}
根据之前QC时的标记,选择过质控的细胞
#use just good singlets
cq <- Seurat::FetchData(seuObj, vars = c('cell_quality'))
seuObj <- seuObj[, which(cq$cell_quality == 'normal')]
进行细胞分类
seuObj <- Seurat::ScaleData(object = seuObj, vars.to.regress = vtr)
seuObj <- Seurat::FindVariableFeatures(object = seuObj,
nfeatures = 1e5,
selection.method = 'vst')
seuObj <- Seurat::RunPCA(object = seuObj,
features = Seurat::VariableFeatures(seuObj),
seed.use = 1,
npcs = n_pcs,
verbose = FALSE)
seuObj <- Seurat::RunTSNE(object = seuObj,
dims = 1:n_pcs,
check_duplicates = FALSE,
seed.use = 1,
perplexity = 30,
verbose = FALSE)
#cluster cells
seuObj <- Seurat::FindNeighbors(seuObj, reduction = 'pca',
dims = 1:n_pcs,
k.param = 10,
force.recalc = TRUE,
verbose = FALSE)
seuObj <- Seurat::FindClusters(seuObj, resolution = clust_res, verbose = FALSE)