前面已经得到了10x的细胞数据(samples_raw_data),下面开始进行创建Seurat对象及质控;这一步主要是复现一下文献中的Supplementary Table 2的质控过滤情况。
一、批量创建Seurat对象
批量创建Seurat对象,同时添加condition,为文章后续样本选择做准备。
samples_objects <- lapply(seq_along(samples_raw_data), function(i) {
seurat_object <- CreateSeuratObject(counts = samples_raw_data[[i]],
project = paste0("mm.gam.gender.", names(samples_raw_data)[i]),
min.cells = 5)
# 通过样本名称添加condition
if(grepl("ctrl", names(samples_raw_data)[i])) {
seurat_object$condition <- "ctrl"
} else {
seurat_object$condition <- "tumor"
}
seurat_object
})
names(samples_objects) <- names(samples_raw_data)
检查一下Seurat对象数据是否与文献一致
dim(samples_objects$`GSM4039241-F-ctrl-1`)
#[1] 12520 5223
1.png
文献补充表2中与GSM4039241-F-ctrl-1的数据一致。
二、质控
计算线粒体基因比例,注意这里是小鼠样本,线粒体基因以mt-开头;
查看一下线粒体基因
mt.gene = rownames(samples_objects$`GSM4039241-F-ctrl-1`)[grep("^mt-",rownames(samples_objects$`GSM4039241-F-ctrl-1`))]
mt.gene
#[1] "mt-Nd1" "mt-Nd2" "mt-Co1" "mt-Co2" "mt-Atp8" "mt-Atp6" "mt-Co3"
#[8] "mt-Nd3" "mt-Nd4l" "mt-Nd4" "mt-Nd5" "mt-Nd6" "mt-Cytb"
批量计算线粒体基因比例
for (i in seq_along(samples_objects)){
samples_objects[[i]] <- PercentageFeatureSet(samples_objects[[i]],
pattern = "^mt-",
col.name = "percent_mito")
}
names(samples_objects) <- names(samples_raw_data)
head(samples_objects[[1]]$percent_mito)
#AAACCTGAGAGGTTAT-1 AAACCTGCAATGGATA-1 AAACCTGCACAGATTC-1
# 2.2007515 0.9986505 0.4046945
#AAACGGGAGGTGACCA-1 AAACGGGCATCGGACC-1 AAACGGGTCAGGATCT-1
# 2.2660099 2.3625844 2.6066351
画个图可视化一下线粒体基因比例
VlnPlot(samples_objects[[1]],features = c("nFeature_RNA", "nCount_RNA", "percent_mito"),
pt.size = 0, ncol = 3)
2.png
质控过滤(基因200-3000,线粒体基因占比<5%)
3.png
samples_objects <- lapply(seq_along(samples_objects), function(i) {
samples_objects[[i]] <- subset(x = samples_objects[[i]],
subset = nFeature_RNA > 200 & nFeature_RNA < 3000 & percent_mito < 5)
samples_objects[[i]] <- NormalizeData(object = samples_objects[[i]], verbose = FALSE)
})
names(samples_objects) <- names(samples_raw_data)
dim(samples_objects$`GSM4039241-F-ctrl-1`)
#[1] 12520 5167
4.png
这里检查了一下GSM4039241-F-ctrl-1这个样本过滤后的情况,与文献补充表2的数据一致,细胞由原来的5223过滤后剩下5167个细胞。其它7个样本可以用dim()函数进行查看,这里就不再赘述。
往期单细胞数据挖掘实战: