单细胞数据挖掘(7)-QC之double droplet及细胞周
2021-01-15 本文已影响0人
北欧森林
本笔记来源于B站@生信技能树-jimmy;学习视频链接: 「生信技能树」单细胞数据挖掘
- Empty and double droplets
load("../../scRNA.Rdata")
library(Seurat)
# 1.1 empty droplet
# BiocManager::install("DropletUtils")
library(DropletUtils)
e.out <- emptyDrops(GetAssayData(scRNA,slot="counts",assay="RNA"))
# Error in testEmptyDrops(m, lower = lower, ...) :
# no counts available to estimate the ambient profile
## https://support.bioconductor.org/p/123554/#123562
# 如上回答所说,empty droplet往往在第一步就已经过滤掉了,而一般上传到GEO的也都是过滤掉空液滴的。
# 1.2 double droplet
# https://osca.bioconductor.org/doublet-detection.html
# BiocManager::install("scran")
head(scRNA@meta.data)
library(scran)
# GetAssayData(scRNA,slot="counts",assay="RNA")[1:8,1:4]
?doubletCluster #检查有无double droplet聚在一起的类
db.test <- doubletCluster(GetAssayData(scRNA,slot="counts",assay="RNA"),
clusters=scRNA@meta.data$seurat_clusters)
head(db.test)
table(scRNA@meta.data$seurat_clusters)
library(scater)
chosen.doublet <- rownames(db.test)[isOutlier(db.test$N,
type="lower", log=TRUE)]
chosen.doublet #结果显示没有:character(0)
# 还有其它多种方法
2.周期判断
# 在挑选hvg gene那一步里,可能会找到一些细胞周期相关基因;
# 它们会导致细胞聚类发生一定的偏移,即相同类型的细胞在聚类时会因为细胞周期的不同而分开。
# 因此有必要查看是否有细胞周期相关基因的存在;若有,则剔除
# 细胞周期有关基因
?cc.genes
head(c(cc.genes$s.genes,cc.genes$g2m.genes))
length(c(cc.genes$s.genes,cc.genes$g2m.genes))
# [1] "MCM5" "PCNA" "TYMS" "FEN1" "MCM2" "MCM4"
# 97
# 查看我们选择的高变基因中有哪些细胞周期相关基因,并打分
CaseMatch(c(cc.genes$s.genes,cc.genes$g2m.genes),VariableFeatures(scRNA))
SingleCell7_1.jpeg
# 在scRNA@meta.data中添加S.Score、G2M.Score和Phase三列有关细胞周期的信息。
g2m_genes = cc.genes$g2m.genes
g2m_genes = CaseMatch(search = g2m_genes, match = rownames(scRNA))
s_genes = cc.genes$s.genes
s_genes = CaseMatch(search = s_genes, match = rownames(scRNA))
scRNA <- CellCycleScoring(object=scRNA, g2m.features=g2m_genes, s.features=s_genes)
head(scRNA@meta.data) #此时可以看到,meta.data增加了3列
# 观察细胞周期相关基因是否影响聚类
scRNA <- RunPCA(scRNA, features = c(s_genes, g2m_genes))
p1 <- DimPlot(scRNA, reduction = "pca", group.by = "Phase")
p1
ggsave("../../out/3.2cell-cycle.pdf", plot = p1)
# 影响不大,基本重合在一起了
SingleCell7_2.jpeg