Seurat 新版教程:分析空間轉(zhuǎn)錄組數(shù)據(jù)

思考題:

+ 如何將空間數(shù)據(jù)與表達數(shù)據(jù)關(guān)聯(lián)在一起?
+ 有了空間轉(zhuǎn)錄組數(shù)據(jù),如何與單細胞轉(zhuǎn)錄組數(shù)據(jù)聯(lián)用?
+ 做了多層切片如何展示真實的三維空間的轉(zhuǎn)錄本信息?

隨著轉(zhuǎn)錄組技術(shù)的發(fā)展跃洛,空間轉(zhuǎn)錄組已經(jīng)正式走向商業(yè)化時代,作為單細胞數(shù)據(jù)分析的工具箱的Seurat與時俱進玛追,也相應地開發(fā)了空間轉(zhuǎn)錄組分析的一套函數(shù)税课,讓我們跟隨卑微小王看看Seurat官網(wǎng)教程吧。

本教程演示如何使用Seurat v3.2分析空間解析的RNA-seq數(shù)據(jù)痊剖。雖然分析流程類似于Seurat的單細胞RNA-seq分析流程韩玩,但我們引入了交互可視化工具,特別強調(diào)了空間和分子信息的集成陆馁。本教程將介紹以下任務找颓,我們相信這些任務在許多空間分析中都很常見:

  • 歸一化
  • 降維與聚類
  • 檢測spatially-variable特性
  • 交互式可視化
  • 與單細胞RNA-seq數(shù)據(jù)集成
  • 處理多個片(multiple slices)

我們分析了使用來自10x Genomics 的Visium技術(shù)(Visium technology)生成的數(shù)據(jù)集。我們將在不久的將來擴展Seurat以處理其他數(shù)據(jù)類型叮贩,包括SLIDE-Seq击狮、STARmapMERFISH佛析。

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

這種方法,只能只能好運彪蓬。直接下載安裝包寸莫,本地安裝。在遇到問題的時候档冬,假裝這是你寫的R包參考《R包開發(fā)》這本書膘茎,嘗試本地重構(gòu):

devtools::load_all('H:\\singlecell\\Seurat\\seurat-master\\seurat')

但是,一般用不到這么復雜酷誓,下載安裝包披坏,本地安裝基本就可以了:

[https://codeload.github.com/satijalab/seurat/legacy.tar.gz/spatial](https://codeload.github.com/satijalab/seurat/legacy.tar.gz/spatial)  # 下載地址
install.packages("H:/singlecell/Seurat/satijalab-seurat-v3.1.1-302-g1cb8a3d.tar.gz", repos = NULL, type = "source")

注意,別和之前的包安裝沖突啦盐数,這個3.2還處在開發(fā)中(2019-12-19)

library(Seurat)
library(SeuratData)
library(ggplot2)
library(cowplot)
library(dplyr)
數(shù)據(jù)集

和以往一樣棒拂,seurat為了使其教程的可用,會提供測試的已發(fā)表的數(shù)據(jù)集玫氢。在這里帚屉,我們將使用最新發(fā)布的使用Visium v1化學生成的sagital小鼠大腦切片數(shù)據(jù)集。有兩個連續(xù)的前段和兩個(匹配的)連續(xù)的后段漾峡。

您可以在這里here下載數(shù)據(jù)涮阔,并使用Load10X_Spatial函數(shù)將其加載到Seurat。這將讀取spaceranger管道的輸出灰殴,并返回Seurat對象,該對象包含spot級別的表達數(shù)據(jù)以及相關(guān)的組織切片圖像掰邢。您還可以使用我們的SeuratData包方便地訪問數(shù)據(jù)牺陶,如下所示。安裝數(shù)據(jù)集之后辣之,可以鍵入?stxBrain以了解更多信息掰伸。

InstallData("stxBrain")

每次我在國內(nèi)直接用這種方法下載數(shù)據(jù)集都沒有成功,如上怀估,下載安裝包狮鸭,本地安裝:

 install.packages("H:/singlecell/Seurat/stxBrain.SeuratData_0.1.1.tar.gz", repos = NULL, type = "source")
brain <- LoadData("stxBrain", type = "anterior1")

當然,我們不推薦這種讀取數(shù)據(jù)的方法多搀,畢竟沒有人把我們的數(shù)據(jù)也打包成一個R包的樣子歧蕉,我們拿到的是10 X Space Ranger的輸出結(jié)果:

├── analysis
│?? ├── clustering
│?? ├── diffexp
│?? ├── pca
│?? ├── tsne
│?? └── umap
├── cloupe.cloupe
├── filtered_feature_bc_matrix
│?? ├── barcodes.tsv.gz
│?? ├── features.tsv.gz
│?? └── matrix.mtx.gz
├── filtered_feature_bc_matrix.h5
├── metrics_summary.csv
├── molecule_info.h5
├── possorted_genome_bam.bam
├── possorted_genome_bam.bam.bai
├── raw_feature_bc_matrix
│?? ├── barcodes.tsv.gz
│?? ├── features.tsv.gz
│?? └── matrix.mtx.gz
├── raw_feature_bc_matrix.h5
├── spatial  # 空間信息全在這 :這些文件是用戶提供的原始全分辨率brightfield圖像的下采樣版本。
下采樣是通過box濾波實現(xiàn)的康铭,它對全分辨率圖像中像素塊的RGB值進行平均惯退,得到下采樣圖像中一個像素點的RGB值。
│?? ├── aligned_fiducials.jpg   這個圖像的尺寸是tissue_hires_image.png从藤。由基準對齊算法發(fā)現(xiàn)的基準點用紅色高亮顯示催跪。此文件對于驗證基準對齊是否成功非常有用锁蠕。
│?? ├── detected_tissue_image.jpg
│?? ├── scalefactors_json.json
│?? ├── tissue_hires_image.png 圖像的最大尺寸為2,000像素 
│?? ├── tissue_lowres_image.png 圖像的最大尺寸為600像素。
│?? └── tissue_positions_list.csv
└── web_summary.html

其實只要 Space Ranger的輸出結(jié)果 filtered_feature_bc_matrix.h5文件和一個spatial文件夾就可以了懊蒸,一如荣倾?stxBrain中給出的示例:

setwd("H:\\singlecell\\spaceranger\\V1_Mouse_Brain_Sagittal_Anterio/")
  # Load the expression data
  expr.url <- 'H:\\singlecell\\spaceranger\\V1_Mouse_Brain_Sagittal_Anterio/V1_Mouse_Brain_Sagittal_Anterior_filtered_feature_bc_matrix.h5'
  expr.data <- Seurat::Read10X_h5(filename =  expr.url )
  anterior1 <- Seurat::CreateSeuratObject(counts = expr.data, project = 'anterior1', assay = 'Spatial')
  anterior1$slice <- 1
  anterior1$region <- 'anterior'
  # Load the image data
  img.url <- 'H:\\singlecell\\spaceranger\\V1_Mouse_Brain_Sagittal_Anterio/V1_Mouse_Brain_Sagittal_Anterior_spatial.tar.gz'
  untar(tarfile =  img.url)
  img <- Seurat::Read10X_Image(image.dir = 'H:\\singlecell\\spaceranger\\V1_Mouse_Brain_Sagittal_Anterio/spatial')
  Seurat::DefaultAssay(object = img) <- 'Spatial'
  img <- img[colnames(x = anterior1)]
  anterior1[['image']] <- img

  anterior1

An object of class Seurat 
31053 features across 2696 samples within 1 assay 
Active assay: Spatial (31053 features)

}

如果這兩個文件在同一個文件下的話,也可以這樣讀入:

list.files("H:\\singlecell\\spaceranger\\V1_Mouse_Brain_Sagittal_Anterio") # 注意命名要正確

# [1] "filtered_feature_bc_matrix.h5"                                  "spatial"                                                       
# [3] "V1_Mouse_Brain_Sagittal_Anterior_filtered_feature_bc_matrix.h5" "V1_Mouse_Brain_Sagittal_Anterior_spatial.tar.gz"  

brain<-Seurat::Load10X_Spatial("H:\\singlecell\\spaceranger\\V1_Mouse_Brain_Sagittal_Anterio") 
骑丸?Load10X_Spatial
brain


An object of class Seurat 
31053 features across 2696 samples within 1 assay 
Active assay: Spatial (31053 features)
空間數(shù)據(jù)如何存儲在Seurat中?

來自10x的visium數(shù)據(jù)包括以下數(shù)據(jù)類型:

  • 通過基因表達矩陣得到一個點(spot )
  • 組織切片圖像(采集數(shù)據(jù)時H&E染色)
  • 用于顯示的原始高分辨率圖像與低分辨率圖像之間的比例因子舌仍。

在Seurat對象中,spot by基因表達矩陣與典型的“RNA”分析類似者娱,但包含spot水平抡笼,而不是單細胞水平的數(shù)據(jù)。圖像本身存儲在Seurat對象中的一個images 槽(slot )中黄鳍。圖像槽還存儲必要的信息推姻,以將斑點與其在組織圖像上的物理位置相關(guān)聯(lián)。

數(shù)據(jù)預處理

在spot中基因表達數(shù)據(jù)進行初始的預處理步驟與典型的scRNA-seq相似框沟。我們首先需要對數(shù)據(jù)進行規(guī)范化藏古,以考慮數(shù)據(jù)點之間測序深度的差異。我們注意到忍燥,對于空間數(shù)據(jù)集來說拧晕,分子數(shù)/點的差異可能是巨大的,特別是在整個組織的細胞密度存在差異的情況下梅垄。我們在這里看到大量的異質(zhì)性厂捞,這需要有效的標準化。

熟悉的函數(shù)名~

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

這些圖表明队丝,分子計數(shù)(molecular counts)在點間的差異不僅是技術(shù)性的靡馁,而且還依賴于組織解剖。例如机久,組織中神經(jīng)元消耗的區(qū)域(如皮層白質(zhì))臭墨,可再生地顯示出較低的分子計數(shù)。因此膘盖,標準方法(如LogNormalize函數(shù))可能會有問題胧弛,因為它會強制每個數(shù)據(jù)點在標準化之后具有相同的底層“大小”。

作為一種替代方法侠畔,我們推薦使用sctransform (Hafemeister和Satija,已出版)软棺,它構(gòu)建了基因表達的正則化負二項模型,以便在保留生物差異的同時考慮技術(shù)因素德崭。有關(guān)sctransform的更多信息,請參見 here的預印和here的Seurat教程锌奴。sctransform將數(shù)據(jù)歸一化,檢測高方差特征憾股,并將數(shù)據(jù)存儲在SCT分析中鹿蜀。

brain <- SCTransform(brain, assay = "Spatial", return.only.var.genes = FALSE, verbose = FALSE)
sct 與log-歸一化相比,結(jié)果如何?

為了探究規(guī)范化方法的不同服球,我們研究了sctransform和log規(guī)范化結(jié)果如何與UMIs的數(shù)量相關(guān)茴恰。為了進行比較,我們首先重新運行sctransform來存儲所有基因的值(這將會比較慢)斩熊,并通過NormalizeData運行一個log規(guī)范化過程往枣。

# rerun normalization to store sctransform residuals for all genes
brain <- SCTransform(brain, assay = "Spatial", return.only.var.genes = FALSE, verbose = FALSE)
# also run standard log normalization for comparison
brain <- NormalizeData(brain, verbose = FALSE, assay = "Spatial")
# Computes the correlation of the log normalized data and sctransform residuals with the number
# of UMIs
brain <- GroupCorrelation(brain, group.assay = "Spatial", assay = "Spatial", slot = "data", do.plot = FALSE)
brain <- GroupCorrelation(brain, group.assay = "Spatial", assay = "SCT", slot = "scale.data", do.plot = FALSE)
p1 <- GroupCorrelationPlot(brain, assay = "Spatial", cor = "nCount_Spatial_cor") + ggtitle("Log Normalization") + 
    theme(plot.title = element_text(hjust = 0.5))
p2 <- GroupCorrelationPlot(brain, assay = "SCT", cor = "nCount_Spatial_cor") + ggtitle("SCTransform Normalization") + 
    theme(plot.title = element_text(hjust = 0.5))
plot_grid(p1, p2)

對于上面的箱形圖,我們計算每個特征(基因)與UMIs數(shù)量(這里的nCount_Spatial變量)的相關(guān)性粉渠。然后分冈,我們根據(jù)基因的平均表達將它們分組,并生成這些相關(guān)性的箱形圖霸株。您可以看到雕沉,log-normalization未能充分規(guī)范化前三組的基因,這表明技術(shù)因素影響高表達基因的規(guī)范化表達估計值去件。相反坡椒,sctransform規(guī)范化降低了這種效果。差別真的很大么尤溜?讀者諸君自行判斷肠牲。

基因表達可視化

在Seurat v3.2中,我們加入了新的功能來探索和與空間數(shù)據(jù)固有的可視化特性靴跛。Seurat的SpatialFeaturePlot功能擴展了FeaturePlot,可以將表達數(shù)據(jù)覆蓋在組織組織上渡嚣。例如梢睛,在這組小鼠大腦數(shù)據(jù)中,Hpca基因是一個強的海馬marker 识椰,Ttr是一個脈絡叢marker 藏畅。

SpatialFeaturePlot(brain, features = c("Hpca", "Ttr"))

Seurat的默認參數(shù)強調(diào)分子數(shù)據(jù)的可視化绞蹦。然而幽七,你也可以調(diào)整斑點的大小(和它們的透明度)來改善組織學圖像的可視化澡屡,通過改變以下參數(shù):

  • pt.size。因素-這將比例大小的斑點室埋。默認為1.6
  • alpha -最小和最大透明度词顾。默認是c(1,1)
  • 嘗試設置為alpha c(0.1, 1)肉盹,以降低表達式較低的點的透明度
降維上忍、聚類和可視化

然后,我們可以使用與scRNA-seq分析相同的工作流吓笙,對RNA表達數(shù)據(jù)進行降維和聚類面睛。我們可以在UMAP空間(使用DimPlot)或使用SpatialDimPlot將分群的結(jié)果顯示在圖像上叁鉴。

brain <- RunPCA(brain, assay = "SCT", verbose = FALSE)
brain <- FindNeighbors(brain, reduction = "pca", dims = 1:30)
brain <- FindClusters(brain, verbose = FALSE)
brain <- RunUMAP(brain, reduction = "pca", dims = 1:30)
Warning: The default method for RunUMAP has changed from calling Python UMAP via reticulate to the R-native UWOT using the cosine metric
To use Python UMAP via reticulate, set umap.method to 'umap-learn' and metric to 'correlation'
This message will be shown once per session
22:08:28 UMAP embedding parameters a = 0.9922 b = 1.112
22:08:28 Read 2696 rows and found 30 numeric columns
22:08:28 Using Annoy for neighbor search, n_neighbors = 30
22:08:28 Building Annoy index with metric = cosine, n_trees = 50
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
22:08:30 Writing NN index file to temp file C:\Users\ADMINI~1\AppData\Local\Temp\Rtmp08OC2k\file3ddc1e802bb6
22:08:30 Searching Annoy index using 1 thread, search_k = 3000
22:08:31 Annoy recall = 100%
22:08:32 Commencing smooth kNN distance calibration using 1 thread
22:08:33 Initializing from normalized Laplacian + noise
22:08:33 Commencing optimization for 500 epochs, with 106630 positive edges
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
22:08:50 Optimization finished
p1 <- DimPlot(brain, reduction = "umap", label = TRUE)
p2 <- SpatialDimPlot(brain, label = TRUE, label.size = 3)
plot_grid(p1, p2)

因為有許多顏色常侣,所以可視化哪個體素屬于哪個簇是很有挑戰(zhàn)性的袭祟。我們有一些策略來幫助解決這個問題您没。通過設置label參數(shù)氨鹏,可以在每個集群的中間位置放置一個彩色框(參見上面的圖)以及do.hover仆抵。SpatialDimPlot的懸停參數(shù)允許交互式查看當前的spot標識。

# move your mouse
SpatialDimPlot(brain, do.hover = TRUE)

Warning messages:
1: In if (is.na(col)) { :
  the condition has length > 1 and only the first element will be used
2: In if (is.na(col)) { :
  the condition has length > 1 and only the first element will be used
3: `error_y.color` does not currently support multiple values. 
4: `error_x.color` does not currently support multiple values. 
5: `line.color` does not currently support multiple values. 
6: The titlefont attribute is deprecated. Use title = list(font = ...) instead. 

你也可以使用cells.highlight莺匠,用于在空間坐標圖上劃分感興趣的特定單元格。這對于區(qū)分單個集群的空間定位非常有用遥缕,如下所示:

SpatialDimPlot(brain, cells.highlight = CellsByIdentities(object = brain, idents = c(1, 2, 5, 3, 
    4, 8)), facet.highlight = TRUE, ncol = 3)

LinkedDimPlot和LinkedFeaturePlot函數(shù)支持交互式可視化单匣。這些圖將UMAP表示與組織圖像表示聯(lián)系起來户秤,并允許交互選擇橱鹏。例如莉兰,您可以在UMAP圖中選擇一個區(qū)域杉辙,圖像表示中相應的點將突出顯示蜘矢。

LinkedDimPlot(brain)
空間變量特征的識別

Seurat提供了兩個工作流程來識別與組織空間位置相關(guān)的分子特征红碑。第一種是根據(jù)組織內(nèi)預先標注的解剖區(qū)域進行差異表達羡鸥,這種差異表達可以通過非監(jiān)督聚類或先驗知識來確定惧浴。這種策略在這種情況下有效,因為上面的集群顯示出明顯的空間差異芜茵。

de_markers <- FindMarkers(brain, ident.1 = 4, ident.2 = 6)

|++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=37s  

SpatialFeaturePlot(object = brain, features = rownames(de_markers)[1:3], alpha = c(0.1, 1), ncol = 3)

在FindSpatiallyVariables中實現(xiàn)的另一種方法是在沒有預注釋的情況下搜索顯示空間模式的特性。默認的方法(method = 'markvariogram ')受到 Trendsceek,的啟發(fā)猪钮,后者將空間轉(zhuǎn)錄組學數(shù)據(jù)建模為標記點過程烤低,并計算一個' variogram '扑馁,它識別其表達水平取決于其空間位置的基因复罐。更具體地說,這個過程計算伽瑪(r)值乱投,測量兩個點之間一定的“r”距離的相關(guān)性。默認情況下嘹悼,我們在這些分析中使用的r值為‘5’杨伙,并且只計算可變基因的這些值(其中的變異是獨立于空間位置計算的)毁菱,以節(jié)省時間米死。

現(xiàn)在,我們可視化的表達前6個特征確定了這一措施贮庞。

brain <- FindSpatiallyVariableFeatures(brain, assay = "SCT", features = VariableFeatures(brain)[1:1000], 
    selection.method = "markvariogram")
top.features <- head(SpatiallyVariableFeatures(brain, selection.method = "markvariogram"), 6)
SpatialFeaturePlot(brain, features = top.features, ncol = 3, alpha = c(0.1, 1))
可視化解剖區(qū)域的子集

與單細胞對象一樣峦筒,您可以對該對象進行子集設置,以將重點放在數(shù)據(jù)的子集上窗慎。在這里物喷,我們大致劃分了額葉皮質(zhì)。這個過程也促進了這些數(shù)據(jù)與下一節(jié)的皮層scRNA-seq數(shù)據(jù)集的整合遮斥。首先尉辑,我們?nèi)〖旱囊粋€子集,然后根據(jù)精確的位置進一步細分。設置好亞組后乓旗,我們可以在完整圖像或裁剪圖像上看到皮質(zhì)細胞妆距。

cortex <- subset(brain, idents = c(1, 2, 3, 5, 6, 7))
# now remove additional cells, use SpatialDimPlots to visualize what to remove
# SpatialDimPlot(cortex,cells.highlight = WhichCells(cortex, expression = image_imagerow > 400 |
# image_imagecol < 150))
cortex <- subset(cortex, image_imagerow > 400 | image_imagecol < 150, invert = TRUE)
cortex <- subset(cortex, image_imagerow > 275 & image_imagecol > 370, invert = TRUE)
cortex <- subset(cortex, image_imagerow > 250 & image_imagecol > 440, invert = TRUE)
p1 <- SpatialDimPlot(cortex, crop = TRUE, label = TRUE)
p2 <- SpatialDimPlot(cortex, crop = FALSE, label = TRUE, pt.size.factor = 1, label.size = 3)
plot_grid(p1, p2)
與單細胞數(shù)據(jù)關(guān)聯(lián)分析(空間細胞類型定義)

在~50um時蓬推,visium檢測的斑點將包含多個細胞的表達譜。對于越來越多可用scRNA-seq數(shù)據(jù)的系統(tǒng)坟乾,用戶可能有興趣“反卷積”每個空間體素低葫,以預測單元類型的底層組成窒盐。在準備這篇文章的過程中姿锭,我們測試了各種各樣的脫卵方法和整合方法(decovonlution and integration methods),使用的是來自Allen研究所的參考scRNA-seq數(shù)據(jù)集(reference scRNA-seq dataset)撩扒,其中包含了大約14000只成年小鼠的皮層細胞分類,并使用SMART-Seq2 protocol 生成术裸。

我們一致認為答倡,使用集成方法(與反褶積方法相反)可以獲得更好的性能渤涌,這可能是因為空間和單細胞數(shù)據(jù)集的噪聲模型本質(zhì)上是不同的,而集成方法的特殊設計是為了對這些差異具有魯棒性。因此我們應用“錨”的集成工作流一如最近在 Seurat v3介紹的燕锥,使注釋的概率從一個reference 數(shù)據(jù)query 數(shù)據(jù)集轉(zhuǎn)移暇榴。因此,我們遵循這里介紹的標簽轉(zhuǎn)移流程,利用sctransform正常化,但預測新方法被開發(fā)來完成這項任務昭抒。

我們首先加載數(shù)據(jù)( here提供下載,我只能假裝我下載成功了_),預處理scRNA-seq 參考數(shù)據(jù)集渣锦,然后執(zhí)行標簽傳輸硝岗。該過程為每個spot輸出每個scRNA-seq派生類的概率分類。我們將這些預測添加到Seurat對象中作為新的試驗袋毙。

allen_reference <- readRDS("~/Downloads/allen_cortex.rds")
# note that setting ncells=3000 normalizes the full dataset but learns noise models on 3k cells
# this speeds up SCTransform dramatically with no loss in performance
library(dplyr)
allen_reference <- SCTransform(allen_reference, ncells = 3000, verbose = FALSE) %>% RunPCA(verbose = FALSE) %>% 
    RunUMAP(dims = 1:30)

# After subsetting, we renormalize cortex
cortex <- SCTransform(cortex, assay = "Spatial", verbose = FALSE) %>% RunPCA(verbose = FALSE)
# the annotation is stored in the 'subclass' column of object metadata
DimPlot(allen_reference, group.by = "subclass", label = TRUE)
anchors <- FindTransferAnchors(reference = allen_reference, query = cortex, normalization.method = "SCT")
predictions.assay <- TransferData(anchorset = anchors, refdata = allen_reference$subclass, prediction.assay = TRUE, 
    weight.reduction = cortex[["pca"]])
cortex[["predictions"]] <- predictions.assay

現(xiàn)在型檀,我們得到了每個班每個點的預測分數(shù)。在額葉皮層區(qū)域特別有趣的是層狀興奮性神經(jīng)元听盖。在這里胀溺,我們可以區(qū)分這些神經(jīng)元亞型的不同順序?qū)樱?

DefaultAssay(cortex) <- "predictions"
SpatialFeaturePlot(cortex, features = c("L2/3 IT", "L4"), pt.size.factor = 1.6, ncol = 2, crop = TRUE)

根據(jù)這些預測分數(shù)皆看,我們還可以預測位置受到空間限制的細胞類型仓坞。我們使用基于標記點過程的相同方法來定義空間變量特征,但使用細胞類型預測評分作為“標記”腰吟,而不是使用基因表達无埃。

cortex <- FindSpatiallyVariableFeatures(cortex, assay = "predictions", features = rownames(cortex), 
    r.metric = 5, slot = "data")
top.clusters <- head(SpatiallyVariableFeatures(cortex), 4)
SpatialPlot(object = cortex, features = top.clusters, ncol = 2)

最后,我們證明我們的整合程序能夠恢復已知的神經(jīng)元和非神經(jīng)元亞群的空間定位模式蝎困,包括層興奮性亞群、第1層星形膠質(zhì)細胞和皮層灰質(zhì)倍啥。

SpatialFeaturePlot(cortex, features = c("Astro", "L2/3 IT", "L4", "L5 PT", "L5 IT", "L6 CT", "L6 IT", 
    "L6b", "Oligo"), pt.size.factor = 1, ncol = 2, crop = FALSE, alpha = c(0.1, 1))
處理Seurat中的多個slices

這個老鼠大腦的數(shù)據(jù)集包含了另一個與大腦另一半相對應的切片禾乘。這里我們讀取它并執(zhí)行相同的初始規(guī)范化。

brain2 <- LoadData("stxBrain", type = "posterior1")
brain2 <- SCTransform(brain2, assay = "Spatial", verbose = FALSE)

為了處理同一個Seurat對象中的多個片虽缕,我們提供了merge函數(shù)始藕。其實之前就有的呀。

brain.merge <- merge(brain, brain2)

這樣就可以對底層的RNA表達數(shù)據(jù)進行聯(lián)合降維和聚類氮趋。

DefaultAssay(brain.merge) <- "SCT"
VariableFeatures(brain.merge) <- c(VariableFeatures(brain), VariableFeatures(brain2))
brain.merge <- RunPCA(brain.merge, verbose = FALSE)
brain.merge <- FindNeighbors(brain.merge, dims = 1:30)
brain.merge <- FindClusters(brain.merge, verbose = FALSE)
brain.merge <- RunUMAP(brain.merge, dims = 1:30)

最后伍派,可以在單個UMAP圖中共同可視化數(shù)據(jù)。SpatialDimPlot和SpatialFeaturePlot將默認將所有片繪制為列剩胁,將groupings/features 繪制為行诉植。

DimPlot(brain.merge, reduction = "umap", group.by = c("ident", "orig.ident"))
SpatialDimPlot(brain.merge)   
SpatialFeaturePlot(brain.merge, features = c("Hpca", "Plp1"))

我們要感謝Nigel Delaney和Stephen Williams對Seurat 分析空間數(shù)據(jù)代碼的有益反饋和貢獻。



我是教程官網(wǎng)昵观,點我直達

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晾腔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子啊犬,更是在濱河造成了極大的恐慌灼擂,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件觉至,死亡現(xiàn)場離奇詭異剔应,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門峻贮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來席怪,“玉大人,你說我怎么就攤上這事月洛『味瘢” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵嚼黔,是天一觀的道長细层。 經(jīng)常有香客問我,道長唬涧,這世上最難降的妖魔是什么疫赎? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮碎节,結(jié)果婚禮上捧搞,老公的妹妹穿的比我還像新娘。我一直安慰自己狮荔,他們只是感情好胎撇,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著殖氏,像睡著了一般晚树。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雅采,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天爵憎,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛和媳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播愚铡,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼胡陪!你這毒婦竟也來了茂附?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤督弓,失蹤者是張志新(化名)和其女友劉穎营曼,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愚隧,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡蒂阱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年锻全,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片录煤。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡鳄厌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妈踊,到底是詐尸還是另有隱情了嚎,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布廊营,位于F島的核電站歪泳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏露筒。R本人自食惡果不足惜呐伞,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望慎式。 院中可真熱鬧伶氢,春花似錦、人聲如沸瘪吏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掌眠。三九已至蕾盯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扇救,已是汗流浹背刑枝。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工香嗓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留迅腔,地道東北人。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓靠娱,卻偏偏與公主長得像沧烈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子像云,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

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