關(guān)于Seurat對象的構(gòu)建請參考:
01.單細胞入門-Seurat對象創(chuàng)建
Seurat對象結(jié)構(gòu)及信息存儲
我們使用seurat官方pbm3k
數(shù)據(jù)集作為示例,強烈建議直接閱讀官方文檔說明脚线,有構(gòu)建-整合拆分-質(zhì)控全套流程和代碼脐区。
我們首先讀取上一教程里構(gòu)建好的pbm3k數(shù)據(jù)集的seurat對象
library(Seurat)
load(file = "pbmc.rdata") #讀取保存的.Rdata
Seurat我們可以把他比作一個大容器佃牛,幾乎存儲了一切項目相關(guān)信息,包括每個細胞的barcodes
床未,所有定量的基因
和每個細胞的UMI矩陣
竭翠。我們后面的大量分析包括對數(shù)據(jù)的降維、聚類分群薇搁、注釋斋扰、等都是可以寫入到Seurat對象來保存。
我們不用過度的去解讀Seurat的數(shù)據(jù)結(jié)構(gòu)啃洋,結(jié)果導(dǎo)向的去學(xué)會調(diào)取你所需要的數(shù)據(jù)即可传货。接下來通過對pbm3k
數(shù)據(jù)集的一些示例來熟悉這些操作
使用 pbmc@
來訪問pbmc這個大容器中的數(shù)據(jù)
可以看到自動補全中出現(xiàn)了一些Seurat對象中的二級數(shù)據(jù),其中最為關(guān)鍵的就是前兩個assays
和meta.data
宏娄。
我們對assays
進行調(diào)取
pbmc@assays
可以看到assays
下是主要保存了所有細胞的UMI矩陣
而結(jié)果中也提示輸出結(jié)果來自于assays
下的RNA
,并且直接對RNA
進行調(diào)取的方式改變?yōu)槭褂?code>$问裕,因此我們就大概知道了對pbmc這個seurat對象不同層級數(shù)據(jù)調(diào)取的方法,@
和$
孵坚。
我們進行一下嘗試驗證
pbmc@assays$RNA
可見結(jié)果是與上方一致的粮宛。
接下來我們對meta.data
也進行相同的嘗試
pbmc@meta.data
可以看到meta.data
的結(jié)果是一個保存了各種信息的數(shù)據(jù)框,我們可以用class()
進行確認卖宠。
因此我們對meta.data
的下級數(shù)據(jù)進行調(diào)用時巍杈,也是和data.frame
取列類似使用$
。
pbmc@meta.data$orig.ident
pbmc@meta.data$nCount_RNA
pbmc@meta.data$nFeature_RNA
這里我們對這三列數(shù)據(jù)是什么進行說明:
orig.ident
:一般存儲細胞的樣本來源逗堵,但這不是100%的秉氧,每個人都有自己的習(xí)慣眷昆,Seurat對象里面的信息是可以根據(jù)細胞barcodes
匹配而自己修改的蜒秤,因此我們要根據(jù)獲取的數(shù)據(jù)自行判斷或根據(jù)自己的習(xí)慣自行更改汁咏。
而nCount_RNA
和nFeature_RNA
是Seurat創(chuàng)建時CreateSeuratObject()
生成并存儲在metadata
中的。
nCount_RNA
:每個細胞的UMI數(shù)量
nFeature_RNA
:基因數(shù)
實際上我們下游的處理結(jié)果大部分也會存儲在meta.data
中作媚,隨著后續(xù)的學(xué)習(xí)也會不斷認識到新的變量攘滩。
到這里我們就基本認識了Seurat對象的基本結(jié)構(gòu)和大概信息
接下來我們學(xué)習(xí)一下對Seurat對象中數(shù)據(jù)的提取
不同于上一部分,有些數(shù)據(jù)是通過seurat包的函數(shù)來讀取纸泡。詳見代碼
Idents(pbmc) #提取細胞的標識/來源,取出的為因子向量
#等效于
pbmc$orig.ident
#不同于
pbmc@meta.data$orig.ident#這種提取方法不包含細胞barcodes
#不同于
pbmc[["orig.ident"]] #取出的為data.frame
dat=GetAssayData(pbmc,slot='counts',assay='RNA')#提取當前保存的單細胞表達矩陣
dat[1:5,1:5]
可見讀取的數(shù)據(jù)為單細胞的表達矩陣漂问,但pbmc數(shù)據(jù)集使用了稀松矩陣儲存所以.
代替了0
也擁有配套函數(shù)來對保存的矩陣進行修改
主要應(yīng)用場景:在進行其他分析之前的標準化
#這里我們對所有表達量+1作為演示
count.data <- as.matrix(x = dat + 1) #對取出來的矩陣+1
count.data[1:5,1:5]
pbmc <- SetAssayData(pbmc, slot = "counts", new.data = count.data,assay = "RNA") #寫回pbmc
dat=GetAssayData(pbmc,slot='counts',assay='RNA') #再次讀取
dat[1:5,1:5]
到這里我們對Seurat對象就有了基本的認識和基礎(chǔ)的數(shù)據(jù)操作理解。我們接下來的分析中會涉及到很多這種操作的重復(fù)和嵌套女揭,這里介紹的只是冰山一角蚤假,還是需要靠自己的嘗試和帶著問題去檢索
參考來源:
https://blog.csdn.net/qazplm12_3/article/details/105588174
問題交流:
Email: xuran@hrbmu.edu.cn