粉丝服务

拿去耍!!空间转录组实战来了!你在实验室的装逼利器!


晨曦的分析笔记:空间转录组实战(一)


Hi,大家好,我是晨曦

scRNA-seq的整体的分析流程以及进阶的分析内容都已经给大家大致的介绍了一遍,鉴于各位小伙伴都很感兴趣空间转录组,我们从这期开始介绍一些空间转录组相关的分析流程

本期推文为晨曦学习空间转录组分析的笔记,如果有问题,欢迎在评论区留言共同讨论~

那么我们开始吧


第一步:获取数据

区别于scRNA-seq,空间转录组提供了我们两类信息:


1.表达矩阵(观测是Gene Symbol,变量是barcode ID)

2.空间位置信息


也就是说,只要我们有这两个信息其实就可以完成我们的空间转录组分析,那么我们分析的第一步其实就是获取我们的数据,鉴于目前来看,空间转录组的数据并不是十分的丰富,我们这里从10×官网获得相关的数据并进行后续的分析


登录10×官网



晨曦解读

10×官网上存在着一些空间转录组的数据,这也是我们获取空间转录组数据的一个重要来源,因为各个公司在推出某种产品的时候都会事先自测一些样本,然后作为宣传,这些就可以作为我们的数据来源


选择空间转录组数据


这里我们选择一个小鼠的脑组织(FFPE)来进行后续的分析



获取数据


在前面晨曦就说过,单细胞转录组的数据储存形式有多种多样,但是我们需要明确本质,即我们究竟需要什么数据,再简单点说,其实就是我们到底需要什么数据来组建成Seurat对象,因为有了Seurat对象后我们后续的分析其实就是一种标准化的流程

针对单细胞转录组数据,我们其实就需要一个表达矩阵的数据就可以,这个时候可能会有小伙伴提问:


提问:晨曦,10×的输出文件不是标准的三个文件的形式吗?为什么到你这里就只有一个了?

回答:三个文件是没有错的,因为三个文件每一个都包含了一部分信息,我们如果登录GEO官网就可以知道,有一些作者上传的数据就是标准的三个文件,但是有的作者有的只上传一个h5对象,或者干脆就是一个txt文件,这是因为,尽管文件数量上不一样,但是只要包含我们需要的信息就可以,这里我们可以用一个文件就阐述出Seurat对象所需要的信息


单细胞转录组——表达矩阵

1.观测为Gene Symbol;

2.变量为barcode ID

3.表达信息为稀疏矩阵


那么,以此类推,我们就可以知道空间转录组我们究竟需要什么信息?

空间转录组——表达矩阵+位置信息


1.观测为Gene Symbol

2.变量为barcode ID

3.表达信息为稀疏矩阵

4.barcode对应的位置信息

所以根据上面的信息,我们就可以得出我们究竟需要在这一块下载哪两个文件(下载信息如下:)



既然我们已经获得了文件,那么我们后续就是一个接近标准的分析流程,我们接下来就开始进行我们后续的分析流程

第二步:下游分析

#读取数据Mouse_Brain <- Load10X_Spatial(data.dir =\".\",                            filename = \"Visium_FFPE_Mouse_Brain_filtered_feature_bc_matrix.h5\",                              slice =\"Mouse_Brain\")


晨曦解读

这个时候我们需要看一下空间转录组的数据在R中是一个什么样式



我们可以很清楚的看到,空间转录组的数据保存形式其实和我们单细胞转录组数据的保存形式是大致相似的,只是存在了一些细节上的区别


1.区别一:assays这里出现Spatial代表了这是一个空间转录组的数据

2.区别二:images这里有切片的信息,这块其实是很好理解的,因为空间转录组正是牺牲了精度从而获得了空间位置信息,我们需要知道,这块的位置信息是单纯的点坐标,我们在官网上下载的位置信息是一个文件,里面还包含了切片的图片,方便我们进行对照


#观察数据plot1 <- VlnPlot(Mouse_Brain, features = \"nCount_Spatial\", pt.size = 0.1) + NoLegend()plot2 <- SpatialFeaturePlot(Mouse_Brain, features = \"nCount_Spatial\") + theme(legend.position = \"right\")plot_grid(plot1, plot2)



晨曦解读

这块的可视化我们只是简单的查看一下数据,当然基于右边的可视化我们也可以说明不同的spot在空间位置上的表达并不是相同的,即空间位置的不同会影响Gene的表达,因此,这里就会存在一个问题,如果我们依旧采取单细胞的标准化流程就会出现分析上的缺陷,因为单纯的LogNormalize标准化后会让所有点的表达在一个水平面上,但是我们通过右侧的可视化可以知道,表达并不是在同一个水平面上,

所以后续的数据预处理我们可以使用其替代产物——SCT方法


这里我们可以扩充一下,通过修改参数,我们可以展示某基因在空间上的表达情况


#扩展——展示基因在空间位置上的表达plot <- SpatialFeaturePlot(Mouse_Brain, features = \"Kdm5d\");plot



#前面的可视化只是让我们简单看一下数据,后面我们还要和单细胞一样进行数据的预处理#数据预处理(参考单细胞流程)##用SCTransform()对数据进行标准化, 同时检测高变基因, 输出结果储存在 SCT assay中;Mouse_Brain <- SCTransform(Mouse_Brain, assay = \"Spatial\", verbose = FALSE)#标准化数据Mouse_Brain <- RunPCA(Mouse_Brain, assay = \"SCT\", verbose = FALSE) #降低维度plot1 <- DimPlot(Mouse_Brain, reduction = \"pca\", group.by=\"orig.ident\")#确定PC数plot2 <- ElbowPlot(Mouse_Brain, ndims=20, reduction=\"pca\") #确定PC数plot1+plot2pc.num=1:20#设定PC数Mouse_Brain <- FindNeighbors(Mouse_Brain, reduction = \"pca\", dims = pc.num)Mouse_Brain <- FindClusters(Mouse_Brain, verbose = FALSE)# UMAP降维可视化Mouse_Brain <- RunUMAP(Mouse_Brain, reduction = \"pca\", dims =  pc.num)p1 <- DimPlot(Mouse_Brain, reduction = \"umap\", label = TRUE)# 使用SpatialDimPlot函数进行可视化p2 <- SpatialDimPlot(Mouse_Brain, label = TRUE, label.size = 3)p1 + p2



晨曦解读

上述步骤基本上都是10×后续分析的标准流程,并没有太多需要改动的地方,只要我们读取数据后,构建好Seurat对象,这些标准的分析流程基本上都是可以一键运行下去的


#识别空间高可变基因#Seurat提供了两个工作流程来识别与组织空间位置相关的分子特征#第一种是根据组织内预先标注的解剖区域进行差异表达,这种差异表达可以通过非监督聚类或先验知识来确定#但是显然我们更倾向于一种自动的方法,也就是第二种方法寻找空间模式中没有预先注释的基因#Mouse_Brain <- FindSpatiallyVariableFeatures(Mouse_Brain, assay = \"SCT\", features = VariableFeatures(Mouse_Brain)[1:100],                                      selection.method = \"markvariogram\")#这一个步骤非常慢(所以自己在调试的时候,若是1000个,耗时约45min(这里演示只用前100个))#可视化前2个差异marker在空间位置上的分布情况top.features <- head(SpatiallyVariableFeatures(Mouse_Brain, selection.method = \"markvariogram\"), 2)SpatialFeaturePlot(Mouse_Brain, features = top.features, ncol = 2, alpha = c(0.1, 1))



到这里,其实我们就完成了空间转录组的标准流程,包括数据下载、降维、聚类、可视化、寻找空间高可变基因等等,至此,第一部分的内容就给大家介绍到了这里

相信读到这里的各位小伙伴一定会有疑问


1.问题1:不是下载了两个文件吗,另一个文件是不是没有使用,具体有什么用处?

2.问题2:空间转录组的Seurat对象能不能具体拆解一下,感觉有很多没有看明白?

3.问题3:单细胞转录组和空间转录组究竟是如何联合在一起的,有没有具体的思路?

4.问题4:空间转录组的细胞注释有没有什么推荐?


后续的推文我们会带领大家共同来解决上述问题,感兴趣的小伙伴可以在评论区积极留言哦~


小伙伴们的支持是晨曦更新的动力~


那么本期推文到这里就结束啦~


我是晨曦,我们下期再见


参考教程:

1.Seurat 新版教程:分析空间转录组数据 - 简书 (jianshu.com)
2.Analysis, visualization, and integration of spatial datasets with Seurat • Seurat (satijalab.org)



晨曦单细胞文献阅读系列

非肿瘤单细胞分析模板已到位!眼馋单细胞的小伙伴快来看!手把手教你产出第一篇单细胞SCI!

万字长文介绍单细胞高级分析!学会这个分析,搞定单细胞套路80%的难题!

太顶了!学会这篇Nature分析,帮你搞定一篇高分SCI!


晨曦碎碎念系列传送门(未完待续...)
1. 想白嫖单细胞生信文章?这五大源头数据库,是你发文章的源泉!高频预警!你一定要收藏!
2. 盘活国自然的新思路!你研究的热点真的是热点吗?大数据帮你定位!
3. 好家伙!90%以上审稿人都会问到的问题,今天帮你解决!就是这么齐齐整整!
4. 没想到!生信分组还有这个大坑!你被坑过吗?!
5. 关于富集分析这件事,我有话想说。。。
6. 好御好高级!CNS级别美图是如何炼成的?看这篇就懂了!
7. 化繁为简!一文帮你彻底搞懂机器学习!想发高分文章,这篇是基础!
8. 你不知道的机器学习算法!关键时候能救命!
9. 致命!芯片&测序的联合到底能不能联合分析?审稿人最爱用这刁难你!
10. 躲不过的树!80%的生信SCI中都见过它!你真的搞懂了吗?
11. Python or R? 哪个更适用于生信发文章?深入浅出给你讲透!
12. 生信和抖音是一样的算法原理?不仅让你成瘾,也能发高分文章!
13. 跟3-5分SCI相比,CNS里的生信玩的可太花了!其实简单的离谱!
14. 揭秘!小鼠和人的免疫浸润分析有何区别?看这篇就够了!
15. 临床预测模型中的宠儿!最常见的机器学习 算法,没有之一!直接拿来用 !
16. 临床预测模型评价,不只有ROC,这个指标你遗漏了吗?
17. 非肿瘤机器学习模板奉上!还不赶快产出2022年你的第一篇SCI?!


晨曦单细胞笔记系列传送门

1. 首次揭秘!不做实验也能发10+SCI,CNS级别空间转录组套路全解析(附超详细代码!)

2. 过关神助!99%审稿人必问,多数据集联合分析,你注意到这点了吗?

3. 太猛了!万字长文单细胞分析全流程讲解,看完就能发文章!建议收藏!(附代码)

4. 秀儿!10+生信分析最大的难点在这里!30多种方法怎么选?今天帮你解决!

5. 图好看易上手!没有比它更适合小白入手的单细胞分析了!老实讲,这操作很sao!

6. 毕业救星!这个R包在高分文章常见,实用!好学!

7. 我就不信了,生信分析你能绕开这个问题!今天一次性帮你解决!


晨曦从零开始学画图系列传送门
1. 看完这篇,彻底掌握生信画图精髓!超级实用,我不许你不知道!
2. 想让SCI看上去更高逼格?这些绘图技巧你一定要知道!
3. 3min掌握SCI配色神技,学会你就是组会汇报上最靓的仔!

晨曦单细胞数据库系列传送门

1. 宝儿,5min掌握一个单细胞数据库,今年国自然就靠它了!(附视频)

2. 审稿人返修让我补单细胞数据咋办?这个神器帮大忙了!

3. 想白嫖、想高大上、想有高大上的SCI?这个单细胞数据库,你肯定用得上!(配视频)

4. What? 扎克伯格投资了这个数据库?炒概念?跨界生信?

5. 不同物种也能合并做生信?给你支个妙招,让数据起死回生!

6. 零成本装逼指南!单细胞时代,教你用单细胞数据库巧筛基因,做科研!

7. 大佬研发的单细胞数据库有多强? 别眼馋 CNS美图了!零基础的小白也能10分钟学会!

8. 纯生信发14分NC的单细胞测序文章,这个北大的发文套路,你可以试下!实在不行,拿来挖挖数据也行!

9. 如何最短时间极简白嫖单细胞分析?不只是肿瘤方向!十分钟教你学会!

10. 生信数据挖掘新风口!这个单细胞免疫数据库帮你一网打尽了!SCI的发文源头!




—END—

撰文丨晨   曦
排版丨四金兄
主编丨小雪球



欢迎大家关注解螺旋生信频道-挑圈联靠公号~





本栏目精选

热门推荐

频道导航