植物空間轉(zhuǎn)錄組分析1:Seurat基本流程

植物空間轉(zhuǎn)錄組分析1:Seurat基本流程 - 簡(jiǎn)書 (jianshu.com)

植物空間轉(zhuǎn)錄組分析2:STEEL+Seurat - 簡(jiǎn)書 (jianshu.com)

植物空間轉(zhuǎn)錄組分析 3:hdWGCNA - 簡(jiǎn)書 (jianshu.com)

空間轉(zhuǎn)錄組是2022生命科學(xué)十大創(chuàng)新產(chǎn)品名單,因此將來會(huì)在生物學(xué)領(lǐng)域有非常大的應(yīng)用空間,目前植物類的相關(guān)文章較少荞雏,在本次的系列教程中,將使用復(fù)旦大學(xué)戚繼團(tuán)隊(duì)蘭花空間轉(zhuǎn)錄組的數(shù)據(jù)晓殊,希望大家一起學(xué)習(xí),掌握植物空間轉(zhuǎn)錄組基本的分析方法(*^▽^*)
數(shù)據(jù)連接OSF | Spatiotemporal atlas of organogenesis in development of orchid flowers,與單細(xì)胞的數(shù)據(jù)結(jié)構(gòu)基本一致伤提,多了spatial這個(gè)文件夾巫俺,主要包含的就是切片信息和spot定位信息

文章

數(shù)據(jù)

1:前言

在本篇文章中,作者一共制作了蘭花空間轉(zhuǎn)錄組切片肿男,并使用了STEEL方法進(jìn)行聚類介汹,出于學(xué)習(xí)考慮,本次分析先使用Seurat的常見流程分析其中一個(gè)切片舶沛,后續(xù)推文中將使用文章中的STELL方法進(jìn)行聚類并使用Seurat的其他函數(shù)進(jìn)行后續(xù)分析
本次只分析Slide1嘹承,感興趣的可以試試其他切片


Slide1

2:數(shù)據(jù)載入

和單細(xì)胞一樣,只是多了spatial這個(gè)文件夾需要輸入

##=============================1.安裝依賴包=====================================
##BiocManager::install(c('Seurat','ggplot2','cowplot','dplyr'))
##BiocManager::install("monocle",force = TRUE) 
library(Seurat)
library(ggplot2)
library(cowplot)
library(dplyr)
library(magrittr)
library(gtools)
library(stringr)
library(Matrix)
library(tidyverse)
library(patchwork)
##=============================2.載入數(shù)據(jù)=======================================
orc1<- Load10X_Spatial("Slide_1",filename = "filtered_feature_bc_matrix.h5",assay = "spatial")

3: 質(zhì)量控制

不只是能體現(xiàn)小提琴圖如庭,還能將每個(gè)spot的測(cè)序質(zhì)量體現(xiàn)在切片上赶撰,幫我們確定哪些組織可能會(huì)出現(xiàn)問題

##=============================3.質(zhì)量控制=======================================
dir.create("QC")
##UMI統(tǒng)計(jì)畫圖
plot1 <- VlnPlot(orc1, features = "nCount_Spatial", pt.size = 0.1) + NoLegend()
plot2 <- SpatialFeaturePlot(orc1, features = "nCount_Spatial") + theme(legend.position = "right")
pearplot <- plot_grid(plot1,plot2) 
ggsave("QC/Slide1_UMI.pdf", plot = pearplot, width = 12, height = 5) 
##Feature/Gene統(tǒng)計(jì)畫圖
plot1 <- VlnPlot(orc1, features = "nFeature_Spatial", pt.size = 0.1) + NoLegend()
plot2 <- SpatialFeaturePlot(orc1, features = "nFeature_Spatial") + theme(legend.position = "right")
pearplot <- plot_grid(plot1,plot2) 
ggsave("QC/Slide1_Feature.pdf", plot = pearplot, width = 12, height = 5)
UMI

feature

可以明顯的看到,不管是UMI還是Feature柱彻,在spot中差異主要是有與切片組織的細(xì)胞數(shù)目以及細(xì)胞類型導(dǎo)致的。比如餐胀,在花瓣中可以看到非常少的UMI以及Feature哟楷,在中間的分生組織中,UMI和Feature的數(shù)目非常多否灾。因此卖擅,單細(xì)胞的標(biāo)準(zhǔn)方法(如LogNormalize函數(shù))可能會(huì)有問題,在空間轉(zhuǎn)錄組分析中墨技,一般使用其他方法進(jìn)行標(biāo)準(zhǔn)化惩阶。

4. 數(shù)據(jù)標(biāo)準(zhǔn)化

目前空間轉(zhuǎn)錄組數(shù)據(jù)推薦使用sctransform,具體的原理我還沒有看懂扣汪,所以先根據(jù)流程走一遍断楷,看看效果
為了探究標(biāo)準(zhǔn)化方法的不同,sctransform和log規(guī)范化結(jié)果如何與UMIs的數(shù)量相關(guān)。為了進(jìn)行比較崭别,首先運(yùn)行sctransform來存儲(chǔ)所有基因的值冬筒,并通過NormalizeData運(yùn)行一個(gè)log規(guī)范化過程恐锣。

##============================4.數(shù)據(jù)標(biāo)準(zhǔn)化======================================
## 目前空間轉(zhuǎn)錄組推薦使用SCTransform路操,集合了單細(xì)胞標(biāo)準(zhǔn)化的NormalizeData()用踩,ScaleData()博敬,F(xiàn)indVariableFeatures()谒主,
dir.create("Normalize")
orc1 <- SCTransform(orc1, assay = "Spatial", return.only.var.genes = FALSE, verbose = FALSE)
## 比較SCTransform與log Normalization的區(qū)別
orc1 <- NormalizeData(orc1, verbose = FALSE, assay = "Spatial")
## 計(jì)算UMI與Feature的相關(guān)性店量,分為5組
orc1 <- GroupCorrelation(orc1, group.assay = "Spatial", assay = "Spatial", slot = "data", do.plot = FALSE)
orc1 <- GroupCorrelation(orc1, group.assay = "Spatial", assay = "SCT", slot = "scale.data", do.plot = FALSE)
p1 <- GroupCorrelationPlot(orc1, assay = "Spatial", cor = "nCount_Spatial_cor") + ggtitle("Log Normalization") + 
  theme(plot.title = element_text(hjust = 0.5))
p2 <- GroupCorrelationPlot(orc1, assay = "SCT", cor = "nCount_Spatial_cor") + ggtitle("SCTransform Normalization") + 
  theme(plot.title = element_text(hjust = 0.5))
p3 <- plot_grid(p1, p2)
ggsave("Normalize/Normalization_cor_Slide1.pdf", plot = p3, width = 12, height = 5)  
標(biāo)準(zhǔn)化

對(duì)于上面的箱形圖滥朱,計(jì)算每個(gè)特征(基因)與UMIs數(shù)量(這里的nCount_Spatial變量)的相關(guān)性鞍历。然后乌询,根據(jù)基因的平均表達(dá)將它們分組呀打,并生成這些相關(guān)性的箱形圖矢赁。
同時(shí)這里需要注意,SCT標(biāo)準(zhǔn)化后有個(gè)單獨(dú)的assay(SCT)聚磺,里面包含三個(gè)矩陣坯台,分別為count,data以及scale.data,log標(biāo)準(zhǔn)化也有一個(gè)assay(Spatial)瘫寝,里面也包含三個(gè)矩陣蜒蕾,但是scale.data的數(shù)據(jù)為0
標(biāo)準(zhǔn)化之后進(jìn)行高變基因的篩選,這部分沒什么可說的焕阿,與單細(xì)胞是一致的

top10 <- head(VariableFeatures(orc1), 10) 
plot1 <- VariableFeaturePlot(orc1) 
plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE, size=2.5) 
ggsave("Normalize/VariableFeature_Slide1.pdf", plot = plot2, width = 9, height = 6)
高變基因篩選

5.數(shù)據(jù)降維與聚類

由于文章中使用了STEEL方法咪啡,所以這次的分析只是走走流程,之后會(huì)按照文章中的STEEL方法進(jìn)行測(cè)試

##============================5.數(shù)據(jù)降維與聚類==================================
dir.create("cluster")
## PCA降維并提取主成分
orc1 <- RunPCA(orc1, features = VariableFeatures(orc1_new)) 
plot1 <- DimPlot(orc1, reduction = "pca", group.by="orig.ident") 
plot2 <- ElbowPlot(orc1, ndims=40, reduction="pca") 
pearplot <- plot_grid(plot1,plot2)
ggsave("cluster/PCA_Slide1.pdf", plot = pearplot, width = 13, height = 6)

pdf("cluster/PC_heatmap_Slide1.pdf",height = 12,width = 12)
DimHeatmap(orc1, dims = 1:9, nfeatures=10, cells = 200, balanced = TRUE)
dev.off()

## 細(xì)胞聚類
## 此步利用 細(xì)胞-PC值 矩陣計(jì)算細(xì)胞之間的距離暮屡,
## 然后利用距離矩陣來聚類撤摸。其中有兩個(gè)參數(shù)需要人工選擇,
## 第一個(gè)是FindNeighbors()函數(shù)中的dims參數(shù)褒纲,需要指定哪些pc軸用于分析准夷,選擇依據(jù)是之前介紹的cluster/pca.png文件中的右圖。
## 第二個(gè)是FindClusters()函數(shù)中的resolution參數(shù)莺掠,需要指定一個(gè)數(shù)值衫嵌,用于決定clusters的相對(duì)數(shù)量,數(shù)值越大cluters越多彻秆。
orc1 <- FindNeighbors(orc1, dims = 1:20) 
orc1 <- FindClusters(orc1, resolution = 0.9)

metadata <- orc1@meta.data
table(orc1@meta.data$seurat_clusters)
cell_cluster <- data.frame(cell_ID=rownames(metadata), cluster_ID=metadata$seurat_clusters)
write.csv(cell_cluster,'cluster/cell_cluster_Slide1.csv',row.names = F)
PCA

使用resolution = 0.9只生成了12個(gè)聚類楔绞,原文中有40個(gè),大家在設(shè)置的時(shí)候可以把resolution調(diào)到2甚至3左右看看效果

## 非線性降維
## tsne
orc1 <- RunTSNE(orc1, dims = 1:20)
embed_tsne <- Embeddings(orc1, 'tsne')
write.csv(embed_tsne,'cluster/embed_tsne_Slide1.csv')

p1 <- DimPlot(orc1, reduction = "tsne", label = TRUE)
p2 <- SpatialDimPlot(orc1, label.size = 3, pt.size.factor = 1.3)
pearplot <- plot_grid(p1,p2)
ggsave("cluster/tsne_Slide1.pdf", plot = p2, width = 6, height = 6)

## UMAP
orc1 <- RunUMAP(orc1,dims = 1:20)
embed_umap <- Embeddings(orc1, 'umap')
write.csv(embed_umap,'cluster/embed_umap_Slide1.csv')

p1 <- DimPlot(orc1, reduction = "umap", label = TRUE)
p2 <- SpatialDimPlot(orc1, label = TRUE, label.size = 3, pt.size.factor = 1.3)
pearplot <- plot_grid(p1,p2)
ggsave("cluster/umap_Slide1.pdf", plot = pearplot, width = 13, height = 6)
TSNE

UMAP

6. 部分基因展示

此處是我比較糾結(jié)的地方唇兑,因?yàn)橐婚_始得到的數(shù)據(jù)和原文中有點(diǎn)不符酒朵,后來發(fā)現(xiàn)可能的原因是文章中使用的展示數(shù)據(jù)是counts

## featureplot
dir.create("featureplot")
p1 <- SpatialFeaturePlot(orc1, features = "PAXXG070630",slot="counts",pt.size.factor = 1.6,min.cutoff = 0.1)
p2 <- SpatialFeaturePlot(orc1, features = "PAXXG070630",slot="data",pt.size.factor = 1.6,min.cutoff = 0.1)
p3 <- SpatialFeaturePlot(orc1, features = "PAXXG070630",slot="scale.data",pt.size.factor = 1.6,min.cutoff = 0.1)
pearplot <- plot_grid(p1,p2,p3,align = "v",axis = "b",ncol = 3)
ggsave("featureplot/SCTSlide1.pdf", plot = pearplot, width = 18, height = 7)
三種展示方式

原文

總結(jié)

目前先把前期的工作的進(jìn)行了一下,原文中進(jìn)行了兩個(gè)擬時(shí)分析扎附,但因?yàn)榫垲惒灰粯铀韵炔贿M(jìn)行分析蔫耽,研究完STEEL之后再進(jìn)行擬時(shí)分析。
總體來講與單細(xì)胞變化不大留夜,有優(yōu)勢(shì)也有劣勢(shì)吧针肥,對(duì)于細(xì)胞分型來說饼记,空間轉(zhuǎn)錄組有先天優(yōu)勢(shì),可以直接根據(jù)切片信息判斷細(xì)胞類型慰枕,但是空間轉(zhuǎn)錄組最小的單位spot具则,不能代表單個(gè)細(xì)胞,分辨率可能還存在問題

轉(zhuǎn)載請(qǐng)注明>>>周小釗的博客, 打賞推薦博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末具帮,一起剝皮案震驚了整個(gè)濱河市博肋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蜂厅,老刑警劉巖匪凡,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異掘猿,居然都是意外死亡病游,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門稠通,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衬衬,“玉大人,你說我怎么就攤上這事改橘∽涛荆” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵飞主,是天一觀的道長(zhǎng)狮惜。 經(jīng)常有香客問我,道長(zhǎng)碌识,這世上最難降的妖魔是什么碾篡? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮筏餐,結(jié)果婚禮上耽梅,老公的妹妹穿的比我還像新娘。我一直安慰自己胖烛,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布诅迷。 她就那樣靜靜地躺著佩番,像睡著了一般。 火紅的嫁衣襯著肌膚如雪罢杉。 梳的紋絲不亂的頭發(fā)上趟畏,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音滩租,去河邊找鬼赋秀。 笑死利朵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的猎莲。 我是一名探鬼主播绍弟,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼著洼!你這毒婦竟也來了樟遣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤身笤,失蹤者是張志新(化名)和其女友劉穎豹悬,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體液荸,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瞻佛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了娇钱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伤柄。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖忍弛,靈堂內(nèi)的尸體忽然破棺而出响迂,到底是詐尸還是另有隱情,我是刑警寧澤细疚,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布蔗彤,位于F島的核電站,受9級(jí)特大地震影響疯兼,放射性物質(zhì)發(fā)生泄漏然遏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一吧彪、第九天 我趴在偏房一處隱蔽的房頂上張望待侵。 院中可真熱鬧,春花似錦姨裸、人聲如沸秧倾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽那先。三九已至,卻和暖如春赡艰,著一層夾襖步出監(jiān)牢的瞬間售淡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留揖闸,地道東北人揍堕。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像汤纸,于是被迫代替她去往敵國(guó)和親衩茸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

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