【R>>scRNA】单细胞交响乐1-理解SingleCellEx

2022-08-22  本文已影响0人  高大石头

清楚的记得2019年12月初次接触scRNA-seq就是感觉好玩,在自己的小笔记本上鼓捣了一阵子后就放弃了。现在好像依然要过了scRNA-seq的红利期,竟然又要开始学习了,怎么讲呢?就用一句话来安抚躁动的内心吧,

一直在路上,人生才会充满无限可能。


先定个小目标,系统的学习完刘小泽老师的《单细胞交响乐1-31》


单细胞分析大致可分为上半场和下半场分析:


大体流程清楚后,我们就来引出今天的主角→SingleCellExperiment或者sce,他是S4对象,简直是保罗万象。原内容出处:
https://osca.bioconductor.org/data-infrastructure.html

示意图

  • 核心部分:蓝色的assays;
  • 基因注释信息:绿色的rowData,Feature Metadata;
  • 细胞注释信息:橙色的colData,Cell Metadata;
    以上是sce的三大件,当然还包含一些下游分析结果,比如PCA、tSNE降维结果就会保存在紫色的reduceDims

这个sce来自SingleCellExperiment R包,据说目前市面上70多个关于单细胞的R包都使用的sce这个对象,可见sce是scRNA-seq的通用货币嘛,还是要好好掌握的。

图片来自于网络
sce就相当于一艘货船,装满了各种各样的集装箱,每个集装箱又是独立的。

核心部分-assays

创建一个sce只需要一个assays即可:这是一个列表,行是基因,列是样本。

library(SingleCellExperiment)

counts_matrix <- data.frame(cell_1=rpois(10,10),
                            cell_2=rpois(10,10),
                            cell_3=rpois(10,30))
rownames(counts_matrix) <- paste0("gene",1:10)

sce <- SingleCellExperiment(assays=list(counts=counts_matrix))
sce

下面来提取表达矩阵:

# 提取表达矩阵
assay(sce,"counts")
counts(sce) #只能提取counts

标准函数拓展:使用R包(scranscater等)的包装函数对counts进行处理

sce <- scran::computeSumFactors(sce)
sce <- scater::logNormCounts(sce)
sce

还可以自定义拓展:

# 自定义拓展
count_100 <- assay(sce)+100
assay(sce,"count_100") <- count_100
assays(sce)

是不是神奇的发现多了一个counter_100

类似的我们可以向rowDatacolData, reducedDims等模块添加信息。

感悟:
不得不佩服刘小泽老师写推文的功力,感觉写了他弄的1/3已经干不动了。继续加油!

参考链接:

上一篇下一篇

猜你喜欢

热点阅读