為什么要以數(shù)據(jù)庫的思維來理解單細(xì)胞數(shù)據(jù)

在我們涉足單細(xì)胞數(shù)據(jù)分析不久之后就會發(fā)現(xiàn)众眨,我們在和一套新的理念打交道。在這套理念中娩梨,對象是常見的,數(shù)據(jù)是多維的矫俺,往往是一張核心表及其附屬。我們對一張表是熟悉的厘托,Excel極大地普及了這種熟悉,但是如何管理表的附屬铅匹?在這套理念中,每個cell都是不同的流礁。

注:這里的cell是一語雙關(guān)罗丰,既指表中的單元格,又指細(xì)胞萌抵。細(xì)胞就是單元格。

單細(xì)胞數(shù)據(jù)格式

為了記錄每個細(xì)胞的信息霎桅,人們發(fā)展了相應(yīng)的數(shù)據(jù)結(jié)構(gòu)如seurat的S4類讨永,monocle的CDS滔驶,SingleCellExperiment的sce,scanpy的anndata等卿闹,可見單細(xì)胞的故事遠(yuǎn)大于一張二維的表達(dá)譜。

seurat的S4類

Seurat 是我們熟悉的單細(xì)胞數(shù)據(jù)分析工具了插佛,也許已經(jīng)用seurat分析數(shù)據(jù)了量窘,或者已經(jīng)發(fā)表了文章氢拥,你確你已經(jīng)了解seurat的邏輯了嗎:以存儲記錄過程。


我就是這么大

如Seurat會記錄所執(zhí)行的計算及其信息嫩海,有了seurat對象其實就知道人們在什么時候?qū)?shù)據(jù)做了哪些操作以及參數(shù)是什么。

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對象的擴(kuò)展审葬。這是一個S4類開發(fā)用于Bioconductor 包,其主要部分是一組中央矩陣“assays”痴荐,以及提供關(guān)于行和列的額外信息的表官册。還有一個元數(shù)據(jù)槽,它是一個包含與實驗相關(guān)的任何其他信息的列表膝宁。

  • A : 最小的sce對象是通過提供數(shù)據(jù)來構(gòu)建的,比如每個細(xì)胞的計數(shù)矩陣(藍(lán)色方框)合蔽,由特征組成介返,比如基因(行)和細(xì)胞(列)。還可以提供描述單元格的元數(shù)據(jù)映皆,其中單元格表示為行,單元格的已知特征為列(橙色框)捅彻。類似地,也可以添加描述特性的元數(shù)據(jù)(綠色框)从隆。這些不同類型的數(shù)據(jù)都存儲在sce對象的不同部分中缭裆,這些部分稱為槽(slots)。每個槽中的數(shù)據(jù)可以通過以各自的槽(箭頭)命名的訪問器以編程方式訪問澈驼,比如rowRanges指的是特征元數(shù)據(jù),colData指的是樣本元數(shù)據(jù)缝其,assay指的是數(shù)據(jù)挎塌。

  • B : 使用sce (singlecellexper, sce)兼容的工作流進(jìn)行分析内边,將數(shù)據(jù)附加到初始sce對象。例如嘴高,計算每個單元格的庫規(guī)范化因子將創(chuàng)建一個新槽(粉色框)。這些可以用來推導(dǎo)一個歸一化計數(shù)矩陣拴驮,它與初始計數(shù)數(shù)據(jù)(深藍(lán)色方框)一起存儲在同一個檢測槽中。因此莹汤,分析槽能夠存儲任意數(shù)量的數(shù)據(jù)轉(zhuǎn)換。單元質(zhì)量度量(描述單元特征)被附加到樣例元數(shù)據(jù)槽colData中抹竹。最后止潮,以與分析槽類似的方式,可以存儲任意數(shù)量的維數(shù)縮減的數(shù)據(jù)表示形式喇闸,駐留在它們自己的槽中,reducedDim唆樊。

  • C : sce對象在典型分析的整個過程中不斷發(fā)展刻蟹,存儲來自初始數(shù)據(jù)的各種度量和表示。有關(guān)singlecellexper類的更多信息舆瘪,請參見singlecellexper(https://bioconductor.org/packages/singlecellexper)。

anndata

單細(xì)胞轉(zhuǎn)錄組的核心就是一個cell X gene的二維表淀衣,但是分群后要存儲cell的分群結(jié)果召调,特征選擇是要記錄gene的信息膨桥,降維后要存儲降維后的結(jié)果某残。所以陵吸,這張表.X的對象cell相關(guān)的信息記錄在.obs中,屬性gene的信息記錄在.var中澳厢,其他的信息在.uns中。

記得初中時學(xué)習(xí)立體幾何老師要求我們要有空間想象力剩拢,把思維提高到一個新的維度。在單細(xì)胞數(shù)據(jù)分析的過中徐伐,我們也要挑起我們的想象力,比如在RNA速率的分析中,anndata存儲的內(nèi)容是這樣的:

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'

我們不僅要知道每一部分存儲的內(nèi)容角雷,還要知道各部分之間的關(guān)系性穿。

h5

h5文件是層次格式的第5代版本,用于存儲科學(xué)數(shù)據(jù)的一種文件格式和庫文件,由美國超級計算中心與應(yīng)用中心研發(fā)的文件格式,用以存儲和組織大規(guī)模數(shù)據(jù).

H5將文件結(jié)構(gòu)簡化成兩個主要的對象類型:
1 數(shù)據(jù)集dataset,就是同一類型數(shù)據(jù)的多維數(shù)組
2 組group,是一種容器結(jié)構(gòu),可以包含數(shù)據(jù)集和其他組,若一個文件中存放了不同種類的數(shù)據(jù)集,這些數(shù)據(jù)集的管理就用到了group

直觀的理解,可以參考我們的文件系統(tǒng),不同的文件存放在不同的目錄下:
目錄就是hdf5文件中的group,描述了數(shù)據(jù)集DataSet的分類信息,通過group有效的將多種dataset進(jìn)行管理和劃分文件就是hdf5文件中的dataset,表示具體的數(shù)據(jù)

下圖就是數(shù)據(jù)集和組的關(guān)系:


h5文件簡介

為什么是數(shù)據(jù)庫

隨著單細(xì)胞多模態(tài)數(shù)據(jù)的豐富需曾,目前只是轉(zhuǎn)錄組的數(shù)據(jù)結(jié)構(gòu)就這么豐富了,想想一下每個細(xì)胞還有表觀信息呆万,以后還有空間信息,多組學(xué)的發(fā)展一定會再次豐富數(shù)據(jù)結(jié)構(gòu)的炊汹。

另一個層面的是,數(shù)據(jù)結(jié)構(gòu)是和算法結(jié)合在一起的讨便。算法就是處理某一問題的解法以政,過程和步驟,不同的數(shù)據(jù)結(jié)構(gòu)會簡化算法復(fù)雜度盈蛮。數(shù)據(jù)結(jié)構(gòu)是描述問題,算法是解決問題抖誉,二者是緊密聯(lián)系在一起的。

而數(shù)據(jù)庫的概念把我們從數(shù)據(jù)表的狹小空間中解放出來:數(shù)據(jù)庫系統(tǒng)是為適應(yīng)數(shù)據(jù)處理的需要而發(fā)展起來的一種較為理想的數(shù)據(jù)處理系統(tǒng)旁理,也是一個為實際可運行的存儲我磁、維護(hù)和應(yīng)用系統(tǒng)提供數(shù)據(jù)的軟件系統(tǒng)驻襟,是存儲介質(zhì) 、處理對象和管理系統(tǒng)的集合體沉衣。

其實數(shù)據(jù)庫在單細(xì)胞數(shù)據(jù)分析中已經(jīng)很常見了减牺,除了上面我們提到的常見的數(shù)據(jù)格式之外,有不少研究者會把數(shù)據(jù)放到公用數(shù)據(jù)庫中拔疚。只是這類的大數(shù)據(jù)庫,初學(xué)者會覺得離自己很遙遠(yuǎn)草雕。

數(shù)據(jù)庫之外

我們花大力氣去存儲數(shù)據(jù),描述數(shù)據(jù)嘱巾,是為了什么呢诫钓?或者回到問題的開始,就是一張二維表菌湃,我們能得到什么信息呢?所以很多時候熱鬧是他們的惧所,我們的關(guān)注點還是應(yīng)該放在生物學(xué)的問題上。以技術(shù)為舟帆去游弋生物學(xué)的海洋纽绍。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末势似,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子履因,更是在濱河造成了極大的恐慌,老刑警劉巖站故,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霞篡,死亡現(xiàn)場離奇詭異端逼,居然都是意外死亡污淋,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門寸爆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盐欺,“玉大人,你說我怎么就攤上這事冗美。” “怎么了节预?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵属韧,是天一觀的道長。 經(jīng)常有香客問我宵喂,道長,這世上最難降的妖魔是什么拙泽? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任裸燎,我火速辦了婚禮,結(jié)果婚禮上顺少,老公的妹妹穿的比我還像新娘。我一直安慰自己脆炎,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布袱蚓。 她就那樣靜靜地躺著几蜻,像睡著了一般喇潘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上絮吵,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天忱屑,我揣著相機(jī)與錄音,去河邊找鬼莺戒。 笑死,一個胖子當(dāng)著我的面吹牛瘪校,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阱扬,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼吉嫩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了自娩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤脐彩,失蹤者是張志新(化名)和其女友劉穎姊扔,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恰梢,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年嗅回,在試婚紗的時候發(fā)現(xiàn)自己被綠了摧茴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖焚虱,靈堂內(nèi)的尸體忽然破棺而出懂版,到底是詐尸還是另有隱情鹃栽,我是刑警寧澤定续,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布禾锤,位于F島的核電站,受9級特大地震影響倡鲸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜峭状,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一逼争、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧誓焦,春花似錦、人聲如沸杂伟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽越平。三九已至频蛔,卻和暖如春秦叛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背书闸。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留嫌术,地道東北人。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓割按,卻偏偏與公主長得像,于是被迫代替她去往敵國和親适荣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容