空間轉(zhuǎn)錄組第六講:數(shù)據(jù)預(yù)處理么库、降維、聚類(seurat)

前面我們有介紹了利用10x Space Ranger軟件分析空間轉(zhuǎn)錄組原始數(shù)據(jù)得到可用于下游分析的矩陣和鏡像文件甘有。今天來介紹一下怎么利用Space Ranger的結(jié)果文件進(jìn)行后續(xù)分析诉儒,這里主要使用Seurat在進(jìn)行下游分析。

先來回顧一下跑完Space Ranger得到哪些結(jié)果文件:

Outputs:
- Run summary HTML:                         /opt/sample345/outs/web_summary.html
- Outputs of spatial pipeline:              /opt/sample345/outs/spatial
- Run summary CSV:                          /opt/sample345/outs/metrics_summary.csv
- BAM:                                      /opt/sample345/outs/possorted_genome_bam.bam
- BAM index:                                /opt/sample345/outs/possorted_genome_bam.bam.bai
- Filtered feature-barcode matrices MEX:    /opt/sample345/outs/filtered_feature_bc_matrix
- Filtered feature-barcode matrices HDF5:   /opt/sample345/outs/filtered_feature_bc_matrix.h5
- Unfiltered feature-barcode matrices MEX:  /opt/sample345/outs/raw_feature_bc_matrix
- Unfiltered feature-barcode matrices HDF5: /opt/sample345/outs/raw_feature_bc_matrix.h5
- Secondary analysis output CSV:            /opt/sample345/outs/analysis
- Per-molecule read information:            /opt/sample345/outs/molecule_info.h5
- Loupe Browser file:                       /opt/sample345/outs/cloupe.cloupe

用seurat進(jìn)行下游分析主要用到兩個(gè)結(jié)果文件亏掀。一個(gè)是filtered_feature_bc_matrix.h5文件忱反,一個(gè)是spatial鏡像結(jié)果目錄。

安裝R包

由于seurat分析空間轉(zhuǎn)錄組的R包satijalab-seurat是在GitHub 上的滤愕,如果我們需要直接安裝的話需要先安裝R包devtools温算,然后利用devtools工具中的install_github來安裝GitHub上的R包。

安裝devtools

install.packages('devtools')

安裝satijalab-seurat

devtools::install_github("satijalab/seurat",ref = "spatial")

考慮到直接安裝github上的R包速度是很慢的间影,非趁渍撸考驗(yàn)網(wǎng)速,可能需要多次才能安裝成功宇智,我們也可以直接下載安裝包蔓搞,本地安裝。

#下載
https://codeload.github.com/satijalab/seurat/legacy.tar.gz/spatial 
#安裝
install.packages("satijalab-seurat-v3.1.5-351-g85610bc.tar.gz", repos = NULL, type = "source")

注意該R包還在開發(fā)中随橘,不要和之前安裝的seurat包沖突喂分。

數(shù)據(jù)準(zhǔn)備

這里使用從10x官網(wǎng)下載的小鼠腦組織樣本MouseBrain Serial Section 1 (Sagittal-Posterior)。

下載網(wǎng)址:https://support.10xgenomics.com/spatial-gene-expression/datasets

image.png

點(diǎn)擊選擇的樣本机蔗,下載兩個(gè)數(shù)據(jù)就行
cell matrix HDF5 (filtered)和Spatial imaging data


image.png

導(dǎo)入R包讀取文件

library("Seurat")
library("ggplot2")
library("cowplot")
library("dplyr")
library("hdf5r")
##讀取矩陣文件
name='Posterior1'
expr <- "/data/Sagittal-Posterior1/V1_Mouse_Brain_Sagittal_Posterior_filtered_feature_bc_matrix.h5"
expr.mydata <- Seurat::Read10X_h5(filename =  expr )
mydata <- Seurat::CreateSeuratObject(counts = expr.mydata, project = 'Posterior1', assay = 'Spatial')
mydata$slice <- 1
mydata$region <- 'Posterior1' #命名
#讀取鏡像文件
imgpath <- "/data/Sagittal-Posterior1/spatial"
img <- Seurat::Read10X_Image(image.dir = imgpath)
Seurat::DefaultAssay(object = img) <- 'Spatial'
img <- img[colnames(x = mydata)]
mydata[['image']] <- img
mydata  #查看數(shù)據(jù)
An object of class Seurat
32285 features across 3355 samples within 1 assay
Active assay: Spatial (32285 features)

從mydata的輸出信息我們可以知道蒲祈,這個(gè)樣本包含3355個(gè)spot點(diǎn)、32285個(gè)基因萝嘁。

基礎(chǔ)統(tǒng)計(jì)作圖

##UMI統(tǒng)計(jì)畫圖
plot1 <- VlnPlot(mydata, features = "nCount_Spatial", pt.size = 0.1) + NoLegend()
plot2 <- SpatialFeaturePlot(mydata, features = "nCount_Spatial") + theme(legend.position = "right")
plot_grid(plot1, plot2)
image.png

UMI數(shù)大部分集中到10000-20000區(qū)間梆掸,最高不超過80000,并且組織中高UMI數(shù)的區(qū)域主要集中在左下角牙言。后面可以特意性關(guān)注一下左下角區(qū)域的基因的表達(dá)和主要的細(xì)胞類型酸钦。

##gene數(shù)目統(tǒng)計(jì)畫圖
plot1 <- VlnPlot(mydata, features = "nFeature_Spatial", pt.size = 0.1) + NoLegend()
plot2 <- SpatialFeaturePlot(mydata, features = "nFeature_Spatial") + theme(legend.position = "right")
plot_grid(plot1, plot2)
image.png

基因數(shù)目大部分處于2500-7500之間,結(jié)合UMI數(shù)據(jù)的分布可以發(fā)現(xiàn)UMI數(shù)目高的區(qū)域基因數(shù)也高咱枉,說明基因數(shù)和UMI數(shù)基本上是呈正相關(guān)的卑硫。

#線粒體統(tǒng)計(jì)
mydata[["percent.mt"]] <- PercentageFeatureSet(mydata, pattern = "^mt[-]")
plot1 <- VlnPlot(mydata, features = "percent.mt", pt.size = 0.1) + NoLegend()
plot2 <- SpatialFeaturePlot(mydata, features = "percent.mt") + theme(legend.position = "right")
plot_grid(plot1, plot2)

注意如果是人的數(shù)據(jù)pattern = "^mt[-]改成pattern = "^MT[-]

image.png

總體來說,這個(gè)樣本的線粒體比例不高蚕断,左邊中上區(qū)域有一處線粒體比例稍微高一點(diǎn)欢伏,后面也可以仔細(xì)研究一下這一塊區(qū)域到底是特定的細(xì)胞類型引起的還是組織活性的差異引起的。不過從這張圖我們還可以發(fā)現(xiàn)一個(gè)有意思的現(xiàn)象亿乳,基因和UMI高表達(dá)的區(qū)域往往線粒體比例更低硝拧。

數(shù)據(jù)過濾

做單細(xì)胞RNAseq我們都會(huì)根據(jù)UMI、基因數(shù)、線粒體比例等進(jìn)行過濾障陶,那么做空間轉(zhuǎn)錄組數(shù)據(jù)分析其實(shí)我們也可以按這樣的方式來過濾滋恬。具體的過濾條件需要根據(jù)具體樣本數(shù)據(jù)來定,沒有固定的標(biāo)準(zhǔn)咸这。
比如這個(gè)樣本我們可以設(shè)置過濾條件:
① 基因數(shù)大于200夷恍,小于7500
② UMI數(shù)大于1000魔眨,小于60000
③ 線粒體比例小于25%

mydata2 <- subset(mydata, subset = nFeature_Spatial > 200 & nFeature_Spatial <7500 & nCount_Spatial > 1000 & nCount_Spatial < 60000 & percent.mt < 25)
mydata2
An object of class Seurat
32285 features across 2977 samples within 1 assay
Active assay: Spatial (32285 features)

過濾后還剩2977個(gè)spot點(diǎn)媳维。過濾后我們?cè)诶L制一下UMI分布圖。

plot1 <- VlnPlot(mydata2, features = "nCount_Spatial", pt.size = 0.1) + NoLegend()
plot2 <- SpatialFeaturePlot(mydata2, features = "nCount_Spatial") + theme(legend.position = "right")
plot_grid(plot1, plot2)

image.png

那么現(xiàn)在問題來了遏暴,過濾之后組織圖像里面缺了幾塊侄刽,顯得特別丑。那么我們到底應(yīng)不應(yīng)該過濾呢朋凉?過濾數(shù)據(jù)可以減少利群的點(diǎn)州丹,減少對(duì)后面聚類結(jié)果的影響,不過濾數(shù)據(jù)可以讓組織圖像保持完整性杂彭,繪圖更好看一點(diǎn)墓毒,所以這個(gè)還真不好決斷。

數(shù)據(jù)歸一化

Seurat官方推薦使用sctransform 歸一化方法亲怠,它構(gòu)建了基因表達(dá)的正則化負(fù)二項(xiàng)模型所计,以便在保留生物差異的同時(shí)考慮技術(shù)因素。
Sctransform函數(shù)同時(shí)實(shí)現(xiàn)了NormalizeData团秽、ScaleData主胧、FindVariableFeatures三個(gè)函數(shù)的功能。

mydata <- SCTransform(mydata, assay = "Spatial", verbose = FALSE)

基因表達(dá)可視化

Seurat的SpatialFeaturePlot功能擴(kuò)展了FeaturePlot习勤,可以將表達(dá)數(shù)據(jù)覆蓋在組織組織上踪栋。這里展示的Hpca基因是一個(gè)強(qiáng)的海馬marker ,Ttr是一個(gè)脈絡(luò)叢marker 图毕∫亩迹可以通過基因的表達(dá)分布來初步判斷一下海馬區(qū)和脈絡(luò)叢區(qū)處于組織切片的哪個(gè)位置。

image.png

從結(jié)果的展示來看予颤,這兩個(gè)marker基因的分布還是挺集中的损肛,這也說明理由空間轉(zhuǎn)錄組數(shù)據(jù)來分析小鼠腦的不同區(qū)域的表達(dá)差異應(yīng)該還是比較準(zhǔn)確的。另外荣瑟,海馬區(qū)的分布可以大概分成3大塊治拿,從上之下第一塊弧形區(qū)域似乎處于線粒體高表達(dá)區(qū)域,而最下面一塊弧形區(qū)處于基因高表達(dá)區(qū)笆焰。后面可以把這三個(gè)不同區(qū)域的數(shù)據(jù)進(jìn)行差異基因和功能的比較也許會(huì)發(fā)現(xiàn)一些有意思的東西劫谅。

降維、聚類和可視化

先進(jìn)行PCA降維,再選擇前30個(gè)維度進(jìn)行聚類和umap降維捏检。

降維荞驴、聚類和可視化

mydata <- RunPCA(mydata, assay = "SCT", verbose = FALSE)
mydata <- FindNeighbors(mydata, reduction = "pca", dims = 1:30)
mydata <- FindClusters(mydata, verbose = FALSE)
mydata <- RunUMAP(mydata, reduction = "pca", dims = 1:30)
mydata <- RunTSNE(mydata, reduction = "pca",dims = 1:30)

tsne展示結(jié)果:

image.png

Umap展示結(jié)果:
image.png

tsne和umap兩種展示方式在這次分析里差別不是特別大,tsne相對(duì)來說群于群之間分的更開贯城,而umap則單個(gè)亞群位置更集中熊楼。這個(gè)時(shí)候我們也可以結(jié)合前面marker基因的表達(dá)分布圖來大概判斷一下每個(gè)亞群大概處于小鼠腦的那個(gè)區(qū)。

由于亞群的顏色比較接近能犯,有時(shí)候不太好判斷鲫骗,我們可以是cells.highlight來標(biāo)記特定的亞群。

SpatialDimPlot(mydata, cells.highlight = CellsByIdentities(object = mydata, idents = c(1, 2, 3, 4, 
   5, 6)), facet.highlight = TRUE, ncol = 3)
image.png

當(dāng)然也可以利用LinkedDimPlot和LinkedFeaturePlot函數(shù)進(jìn)行交互式可視化踩晶,這里不再展示执泰。


image.png

掃碼關(guān)注公眾號(hào),內(nèi)容更精彩哦渡蜻!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末术吝,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子茸苇,更是在濱河造成了極大的恐慌排苍,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件学密,死亡現(xiàn)場(chǎng)離奇詭異淘衙,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)则果,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門幔翰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人西壮,你說我怎么就攤上這事遗增。” “怎么了款青?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵做修,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我抡草,道長(zhǎng)饰及,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任康震,我火速辦了婚禮燎含,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘腿短。我一直安慰自己屏箍,他們只是感情好绘梦,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赴魁,像睡著了一般卸奉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颖御,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天榄棵,我揣著相機(jī)與錄音,去河邊找鬼潘拱。 笑死疹鳄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泽铛。 我是一名探鬼主播尚辑,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼辑鲤,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼盔腔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起月褥,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤弛随,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后宁赤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舀透,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年决左,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了愕够。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡佛猛,死狀恐怖惑芭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情继找,我是刑警寧澤遂跟,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站婴渡,受9級(jí)特大地震影響幻锁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜边臼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一哄尔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧柠并,春花似錦岭接、人聲如沸置谦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽媒峡。三九已至,卻和暖如春葵擎,著一層夾襖步出監(jiān)牢的瞬間谅阿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國打工酬滤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留签餐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓盯串,卻偏偏與公主長(zhǎng)得像氯檐,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子体捏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359