文章目的
随着单细胞的研究越来越火热,利用转录组学对单细胞进行聚类命名的需求也越来越高,基因在不同细胞中选择性表达造成了细胞的多样性,因此,对细胞进行命名关键点在于分析这些选择性表达的基因在单个细胞的表达水平。例如,T细胞是CD3+细胞群,需要表达出构成CD3表面蛋白的三个支链CD3E,CD3D和CD3G。根据这些标记基因的表达水平来对单细胞群进行区分和命名。在原有基础上,增加了对细胞群的cluster id的筛选。
操作方法
在此,以R 的Seurat的工具包为例,来解释如何获得目的细胞群。
Seurat 目前在用的有两个版本,Seurat 2.4和Seurat 3.0。这两个版本的区别大家可以去官网上进行学习,不是本章的重点。详情见https://satijalab.org/seurat/,建议大家使用最新版的进行分析。
Seurat 2.4 版本的使用方法
线粒体基因为例:
1 获得基因列表。
mito.genes <- grep(pattern = c("^MT-") , ignore.case=TRUE, x = rownames(x = object@data), value = TRUE)
print(mito.genes)
注: object为seurat对象,对指定的基因,可以将HB_m.genes换成你关注的基因列表或基因名。
2 计算基因列表对应的在所有细胞中的表达比例。
percent.mito <- Matrix::colSums(object@raw.data[mito.genes, ]) / Matrix::colSums(object@raw.data)
3 在seurat对象中添加线粒体基因的比例
object <- AddMetaData(object = object, metadata =percent.mito, col.name = "percent.mito")
4 对细胞按照指定阈值进行筛选
percent.mito <- 0.2 ### 若为0则表明所获得的的细胞不表达该基因
object <- FilterCells(object = object, subset.names = c("nGene", "percent.mito"), low.thresholds = c(1000, -Inf),high.thresholds = c(Inf, percent.mito))
注:low.thresholds和high.thresholds是对nGene,percent.mito这两个对象设置最小值和最大值。nGene为一个细胞中最少表达的基因数,需根据实际情况自行设定。
5 查看
head(object@meta.data)
另外:对指定细胞群的筛选可以采用SubsetData的方法进行。
rds <-SubsetData(object =spleen, ident.use=c(1,2.3)) ###这里的 ident.use是按照cluster的顺序截取的。如果是从0开始编号,取n的编号的cluster,ident.use=n+1
unique(rds@meta.data$res.0.6) ###0.6为分辨率,查看筛选后的cluster的分布。
Seurat 3.0 版本的使用方法
1 获得基因列表
mito.genes <- grep(pattern = c("^MT-"), ignore.case=TRUE, x = rownames(object@assays$RNA), value = TRUE)
print(mito.genes)
2 计算基因列表对应的在所有细胞中的表达比例。并在对象中添加percent.mt列。
object[["percent.mt"]] <- PercentageFeatureSet(object,features=mito.genes)
2 设置筛选条件
object <- subset(object, subset = nFeature_RNA > 500 & percent.mt >0)
3 查看
head(object@meta.data)
另外:对指定细胞群的筛选可以采用subset的方法进行。
subset(object,idents=c(1,2,3),invert = TRUE) ###invert 表示反选,若为TRUE,则表示选择除了该列表细胞群外的细胞群。
网友评论