为什么要以数据库的思维来理解单细胞数据

在我们涉足单细胞数据分析不久之后就会发现,我们在和一套新的理念打交道。在这套理念中,对象是常见的,数据是多维的,往往是一张核心表及其附属。我们对一张表是熟悉的,Excel极大地普及了这种熟悉,但是如何管理表的附属?在这套理念中,每个cell都是不同的。

注:这里的cell是一语双关,既指表中的单元格,又指细胞。细胞就是单元格。

单细胞数据格式

为了记录每个细胞的信息,人们发展了相应的数据结构如seurat的S4类,monocle的CDS,SingleCellExperiment的sce,scanpy的anndata等,可见单细胞的故事远大于一张二维的表达谱。

seurat的S4类

Seurat 是我们熟悉的单细胞数据分析工具了,也许已经用seurat分析数据了,或者已经发表了文章,你确你已经了解seurat的逻辑了吗:以存储记录过程。


我就是这么大

如Seurat会记录所执行的计算及其信息,有了seurat对象其实就知道人们在什么时候对数据做了哪些操作以及参数是什么。

pbmc_small@commands
$NormalizeData.RNA
Command: NormalizeData(object = pbmc_small)
Time: 2018-08-28 04:32:17
assay : RNA 
normalization.method : LogNormalize 
scale.factor : 10000 
verbose : TRUE 

$RunPCA.RNA
Command: RunPCA(object = pbmc_small, features = VariableFeatures(object = pbmc_small),     verbose = FALSE)
Time: 2018-08-28 04:34:56
assay : RNA 
features : PPBP IGLL5 VDAC3 CD1C AKR1C3 PF4 MYL9 GNLY TREML1 CA2 SDPR PGRMC1 S100A8 TUBB1 HLA-DQA1 PARVB RUFY1 HLA-DPB1 RP11-290F20.3 S100A9 
compute.dims : 20 
rev.pca : FALSE 
weight.by.var : TRUE 
verbose : FALSE 
print.dims : 1 2 3 4 5 
features.print : 30 
reduction.name : pca 
reduction.key : PC 
seed.use : 42 

$BuildSNN.RNA.pca
Command: BuildSNN(pbmc_small, features = VariableFeatures(object = pbmc_small))
Time: 2018-08-28 04:43:31
assay : RNA 
features : PPBP IGLL5 VDAC3 CD1C AKR1C3 PF4 MYL9 GNLY TREML1 CA2 SDPR PGRMC1 S100A8 TUBB1 HLA-DQA1 PARVB RUFY1 HLA-DPB1 RP11-290F20.3 S100A9 
reduction : pca 
dims : 1 2 3 4 5 6 7 8 9 10 
k.param : 30 
prune.SNN : 0.06666667 
nn.eps : 0 
verbose : TRUE 
force.recalc : FALSE 
do.plot : FALSE 
graph.name : RNA_snn 

......

SingleCellExperiment

SingleCellExperiment 对象是较老的SummarizedExperiment对象的扩展。这是一个S4类开发用于Bioconductor 包,其主要部分是一组中央矩阵“assays”,以及提供关于行和列的额外信息的表。还有一个元数据槽,它是一个包含与实验相关的任何其他信息的列表。

  • A : 最小的sce对象是通过提供数据来构建的,比如每个细胞的计数矩阵(蓝色方框),由特征组成,比如基因(行)和细胞(列)。还可以提供描述单元格的元数据,其中单元格表示为行,单元格的已知特征为列(橙色框)。类似地,也可以添加描述特性的元数据(绿色框)。这些不同类型的数据都存储在sce对象的不同部分中,这些部分称为槽(slots)。每个槽中的数据可以通过以各自的槽(箭头)命名的访问器以编程方式访问,比如rowRanges指的是特征元数据,colData指的是样本元数据,assay指的是数据。

  • B : 使用sce (singlecellexper, sce)兼容的工作流进行分析,将数据附加到初始sce对象。例如,计算每个单元格的库规范化因子将创建一个新槽(粉色框)。这些可以用来推导一个归一化计数矩阵,它与初始计数数据(深蓝色方框)一起存储在同一个检测槽中。因此,分析槽能够存储任意数量的数据转换。单元质量度量(描述单元特征)被附加到样例元数据槽colData中。最后,以与分析槽类似的方式,可以存储任意数量的维数缩减的数据表示形式,驻留在它们自己的槽中,reducedDim。

  • C : sce对象在典型分析的整个过程中不断发展,存储来自初始数据的各种度量和表示。有关singlecellexper类的更多信息,请参见singlecellexper(https://bioconductor.org/packages/singlecellexper)。

anndata

单细胞转录组的核心就是一个cell X gene的二维表,但是分群后要存储cell的分群结果,特征选择是要记录gene的信息,降维后要存储降维后的结果。所以,这张表.X的对象cell相关的信息记录在.obs中,属性gene的信息记录在.var中,其他的信息在.uns中。

记得初中时学习立体几何老师要求我们要有空间想象力,把思维提高到一个新的维度。在单细胞数据分析的过中,我们也要挑起我们的想象力,比如在RNA速率的分析中,anndata存储的内容是这样的:

adata

AnnData object with n_obs × n_vars = 7292 × 1999 
    obs: 'initial_size_unspliced', 'initial_size_spliced', 'initial_size', 'n_counts', 'velocity_self_transition', 'leiden', 'velocity_clusters'
    var: 'Accession', 'Chromosome', 'End', 'Start', 'Strand', 'means', 'dispersions', 'dispersions_norm', 'velocity_gamma', 'velocity_r2', 'velocity_genes', 'velocity_score', 'fit_alpha', 'fit_beta', 'fit_gamma', 'fit_t_', 'fit_scaling', 'fit_std_u', 'fit_std_s', 'fit_likelihood', 'fit_u0', 'fit_s0', 'fit_pval_steady', 'fit_steady_u', 'fit_steady_s', 'fit_alignment_scaling', 'fit_r2'
    uns: 'pca', 'neighbors', 'connectivities_key', 'distances_key', 'velocity_settings', 'velocity_graph', 'velocity_graph_neg', 'leiden', 'umap', 'leiden_colors', 'rank_velocity_genes', 'recover_dynamics'
    obsm: 'X_pca', 'X_umap', 'velocity_umap'
    varm: 'PCs', 'loss'
    layers: 'matrix', 'ambiguous', 'spliced', 'unspliced', 'Ms', 'Mu', 'velocity', 'variance_velocity', 'fit_t', 'fit_tau', 'fit_tau_', 'velocity_u'
    obsp: 'distances', 'connectivities'

我们不仅要知道每一部分存储的内容,还要知道各部分之间的关系。

h5

h5文件是层次格式的第5代版本,用于存储科学数据的一种文件格式和库文件,由美国超级计算中心与应用中心研发的文件格式,用以存储和组织大规模数据.

H5将文件结构简化成两个主要的对象类型:
1 数据集dataset,就是同一类型数据的多维数组
2 组group,是一种容器结构,可以包含数据集和其他组,若一个文件中存放了不同种类的数据集,这些数据集的管理就用到了group

直观的理解,可以参考我们的文件系统,不同的文件存放在不同的目录下:
目录就是hdf5文件中的group,描述了数据集DataSet的分类信息,通过group有效的将多种dataset进行管理和划分文件就是hdf5文件中的dataset,表示具体的数据

下图就是数据集和组的关系:


h5文件简介

为什么是数据库

随着单细胞多模态数据的丰富,目前只是转录组的数据结构就这么丰富了,想想一下每个细胞还有表观信息,以后还有空间信息,多组学的发展一定会再次丰富数据结构的。

另一个层面的是,数据结构是和算法结合在一起的。算法就是处理某一问题的解法,过程和步骤,不同的数据结构会简化算法复杂度。数据结构是描述问题,算法是解决问题,二者是紧密联系在一起的。

而数据库的概念把我们从数据表的狭小空间中解放出来:数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质 、处理对象和管理系统的集合体。

其实数据库在单细胞数据分析中已经很常见了,除了上面我们提到的常见的数据格式之外,有不少研究者会把数据放到公用数据库中。只是这类的大数据库,初学者会觉得离自己很遥远。

数据库之外

我们花大力气去存储数据,描述数据,是为了什么呢?或者回到问题的开始,就是一张二维表,我们能得到什么信息呢?所以很多时候热闹是他们的,我们的关注点还是应该放在生物学的问题上。以技术为舟帆去游弋生物学的海洋。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 193,812评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,626评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,144评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,052评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,925评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,035评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,461评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,150评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,413评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,501评论 2 307
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,277评论 1 325
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,159评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,528评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,868评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,143评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,407评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,615评论 2 335

推荐阅读更多精彩内容