单细胞seurat对象x,在质控(去掉线粒体基因表达比例>10%的细胞等)之后,想去除线粒体基因和核糖体基因等,应该如何操作呢?尝试了如下代码:mito_genes <- grep("^mt-", rownames(x), value = TRUE)
x <- subset(x, features = !rownames(x) %in% mito_genes)没有成功
3 回答
如果你的不是人的话,上面的应该不行,建议从gtf里面提取线粒体的基因来做,我这个是猴子的
mt.genes <- c("ND1","ND2","COX1","COX2","ATP8","ATP6","COX3","ND3","ND4L","ND4","ND5","ND6","CYTB")
obj[["percent.mt"]] <- PercentageFeatureSet(obj, features = mt.genes[mt.genes %in% rownames(RTT4)])
obj[["percent.ribo"]] <- PercentageFeatureSet(obj, pattern = "^RP[L|S]")
你的代码有问题啊。应该是 x <- susbet(x, features = features_to_retain) 吧。
为了过滤掉单细胞Seurat对象中的线粒体基因和核糖体基因,您可以使用以下代码:
# 获取线粒体基因和核糖体基因的名称
mitogenes <- grep("^MT-", rownames(x), value = TRUE) ribogenes <- grep("^RPS|^RPL", rownames(x), value = TRUE)
# 过滤掉线粒体基因和核糖体基因
x <- subset(x, features = !(rownames(x) %in% c(mitogenes, ribogenes)))
在这里,我们使用了grep函数来获取线粒体基因和核糖体基因的名称。
然后,我们使用subset函数来过滤掉Seurat对象中的这些基因。
最后,我们可以将过滤后的Seurat对象用于后续的分析。
请注意,上述代码中的正则表达式可能需要根据您的数据进行修改。如果您的线粒体基因或核糖体基因不是以"MT-"或"RPS/RPL"开头,您需要相应地更改正则表达式。
这家伙很懒,还没有设置简介