為什么要以數據庫的思維來理解單細胞數據

在我們涉足單細胞數據分析不久之后就會發現,我們在和一套新的理念打交道。在這套理念中,對象是常見的,數據是多維的,往往是一張核心表及其附屬。我們對一張表是熟悉的,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閱讀 230,578評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容