基因分析基因表达除了移除低质量的细胞,也会排除受技术操作影响较大的一部分基因。而且查看基因表达结果,可以帮助改进实验操作。 通常会看top 50 表达的基因占据了多少reads。 plotHighestExprs(umi, exprs_values = "counts")
表达最高的50个基因的reads分布相对平缓,且比例不大,在一定程度上反应了测序对整个转录组覆盖较好。但是最高表达的15个基因里面有4个ERCC spikein ,表明下次重复时可以稀释下spike in 的浓度,把测序的机会更多留给内源性基因。
基因过滤通常建议移除那些表达水平极低以至于可以视为”未检测出”的基因。这里针对UMI数据,“检出”定义为至少有2个细胞检测到某个基因存在多于一个转录本。如果是reads counts数据, “检出”可以定义为至少有2个细胞检测到某个基因有至少5个reads count支持。请注意,对两种表达量计算方式,阈值的选择都与测序深度有关。自己的数据可以做相应的修改。另外一个需要注意的点是基因的过滤必须在细胞过滤后面,因为部分基因可能只在低质量细胞中能检测的到 (注意下面的colData(umi)$use 过滤). keep_feature <- nexprs(umi[,colData(umi)$use], byrow=TRUE, detection_limit=1) >= 2 rowData(umi)$use <- keep_feature
table(keep_feature)
## keep_feature ## FALSE TRUE ## 4660 14066
细胞类型,建库方案,测序深度都会影响阈值选择,勿硬套。 存储过滤后的数据查看过滤后的数据集中保留的基因数和细胞数: dim(umi[rowData(umi)$use, colData(umi)$use])
## [1] 14066 657
获取对数转换的原始count值,供下一章节使用,并且移除PCA的结果: assay(umi, "logcounts_raw") <- log2(counts(umi) + 1) reducedDim(umi) <- NULL
存储过滤后的数据 saveRDS(umi, file = "tung/umi.rds")
|