標準的seurat流程可以這樣進行含滴,包括創(chuàng)建對象痰哨,標準化胶果,尋找高突變特征,歸一化斤斧,聚類等
①創(chuàng)建 Seurat 對象
首先要明白 Seurat 對象的構(gòu)成。Seurat 對象進一步細分為: Assay Object 對象和DimReduc Object 對象。Assay Object 對象存放的多組學的表達數(shù)據(jù)叁怪, DimReduc Object 對象存放的是對 Assay Object 對象進行降維分析后的結(jié)果。
②專門下載和管理 Seurat示例數(shù)據(jù)對象的軟件包:SeuratData
SeuratData 先把 datasets 變成 Seurat 對象悬垃,再把 Seurat 對象以軟件包的形式分發(fā)和管理。
③以pbmc為例甘苍,展開Seurat流程尝蠕。
對pbmc這個seurat對象不同層級數(shù)據(jù)調(diào)取的方法,@和$载庭。
pbmc@assays
pbmc@assays$RNA
在Seurat對象后面加個@可以查看Seurat對象的內(nèi)容看彼。彈出小窗口,可以查看里面的內(nèi)容囚聚。
Assays:assays里有一個元素“RNA”靖榕,訪問assays對象的內(nèi)部結(jié)構(gòu),例如pbmc[['RNA']]顽铸。
? ? ? ? ? ? ? ? ?RNA:是assay序矩,其可以包含多個matrix:
? ? ? ? ? ? ? ? ?Counts:原始的表達量count矩陣;
? ? ? ? ? ? ? ? ?Data:原始數(shù)據(jù)經(jīng)過normalized的數(shù)據(jù)跋破;
? ? ? ? ? ? ? ? ?Scale.data:數(shù)據(jù)經(jīng)過scaling后簸淀,存放位置;
? ? ? ? ? ? ? ? ?Key:每個assay對象都有一個key毒返,例如‘rna_’租幕;
? ? ? ? ? ? ? ? ?Var.features:普通向量,高表達變異的基因拧簸。
Meta.data:是細胞的注釋信息的數(shù)據(jù)框劲绪,行是細胞,列是細胞的屬性盆赤。
對meta.data的下級數(shù)據(jù)進行調(diào)用時贾富,也是和data.frame取列類似使用$。
pbmc@meta.data$orig.ident
pbmc@meta.data$nCount_RNA
pbmc@meta.data$nFeature_RNA
orig.ident:一般存儲細胞的樣本來源牺六,但這不是100%的颤枪,每個人都有自己的習慣,Seurat對象里面的信息是可以根據(jù)細胞barcodes匹配而自己修改的淑际,因此我們要根據(jù)獲取的數(shù)據(jù)自行判斷或根據(jù)自己的習慣自行更改畏纲。
而nCount_RNA和nFeature_RNA是Seurat創(chuàng)建時CreateSeuratObject()生成并存儲在metadata中的。
nCount_RNA:每個細胞的UMI數(shù)量
nFeature_RNA:基因數(shù)
Active.assay:當前激活的assay對象春缕。
④一些不同
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ù)來對保存的矩陣進行修改
主要應(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]
⑥對象信息使用標準R函數(shù)可以快速輕松地獲得有關(guān)Seurat對象的摘要信息盗胀。
可以使用dim,ncol和nrow函數(shù)找到對象的形狀/尺寸锄贼。細胞和特征名稱可以分別使用colnames和rownames函數(shù)或dimnames函數(shù)找到票灰。通過使用names,可以找到Seurat對象中包含的Assay,DimReduc和Graph對象的名稱向量屑迂。
R語言中的?rownames()?函數(shù)用于為矩陣的行設(shè)置名稱浸策。
R語言中的?colnames()?函數(shù)用于為矩陣的列設(shè)置名稱。
語法:
rownames(x) <- value
輸入
# Creating a 3X3 Matrix
A = matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), 3, 3, byrow = TRUE)
?# Calling rownames() Function
rownames(A) <- letters[1:3]??
print(A)
輸出
? ? [, 1] [, 2] [, 3]
a? ? 1? ? 2? ? 3
b? ? 4? ? 5? ? 6
c? ? 7? ? 8? ? 9
語法:
colnames(x) <- value
輸入
# Creating a 3X3 Matrix
A = matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), 3, 3, byrow = TRUE)
?# Calling colnames() Function
colnames(A) <- letters[1:3]??
print(A)
輸出
? ? ? ?a? ? b? ? c
[1, ] 1? ? 2? ? 3
[2, ] 4? ? 5? ? 6
[3, ] 7? ? 8? ? 9