空间单细胞|基于图像的数据分析(3)

简介: 空间单细胞|基于图像的数据分析(3)

引言

在这篇指南中,我们介绍了Seurat的一个新扩展功能,用以分析新型的空间解析数据,将重点介绍由不同成像技术生成的三个公开数据集。

  • Vizgen MERSCOPE(用于小鼠大脑研究)
  • Nanostring CosMx空间分子成像仪(用于FFPE人类肺组织)
  • Akoya CODEX(用于人类淋巴结研究)

人肺:Nanostring CosMx Spatial Molecular Imager

这个数据集是通过Nanostring公司的CosMx空间分子成像仪(SMI)生成的。这种SMI技术能够进行多路复用的单分子分析,不仅可以检测RNA和蛋白质,还能够直接应用于固定石蜡包埋(FFPE)组织。数据集包含了从5个非小细胞肺癌(NSCLC)患者身上采集的8个FFPE样本,并且已经对公众开放下载。这个基因检测板涵盖了960种不同的转录本。

在本案例研究中,我们选取了8个样本中的一个(肺样本5,复制品1)进行加载。我们运用了LoadNanostring()函数来解析在公开下载站点上可以获取的数据。

对于这个数据集,我们并没有进行无监督分析,而是将Nanostring的分析结果与我们的Azimuth健康人类肺脏参考数据库进行对比,这个数据库是通过单细胞RNA测序(scRNA-seq)技术建立的。我们使用的是Azimuth软件的0.4.3版本以及人类肺脏参考数据库的1.0.0版本。你可以在指定的链接下载预先计算好的分析结果,这些结果包括了注释信息、预测分数以及UMAP的可视化图。每个细胞平均检测到的转录本数量是249,这在进行细胞注释时确实带来了一定的不确定性。

nano.obj <- LoadNanostring(data.dir = "/brahms/hartmana/vignette_data/nanostring/lung5_rep1", fov = "lung5.rep1")

# add in precomputed Azimuth annotations
azimuth.data <- readRDS("/brahms/hartmana/vignette_data/nanostring_data.Rds")
nano.obj <- AddMetaData(nano.obj, metadata = azimuth.data$annotations)
nano.obj[["proj.umap"]] <- azimuth.data$umap
Idents(nano.obj) <- nano.obj$predicted.annotation.l1

# set to avoid error exceeding max allowed size of globals
options(future.globals.maxSize = 8000 * 1024^2)
nano.obj <- SCTransform(nano.obj, assay = "Nanostring", clip.range = c(-10, 10), verbose = FALSE)

# text display of annotations and prediction scores
head(slot(object = nano.obj, name = "meta.data")[2:5])

##     nCount_Nanostring nFeature_Nanostring predicted.annotation.l1
## 1_1                23                  19               Dendritic
## 2_1                26                  23              Macrophage
## 3_1                74                  51          Neuroendocrine
## 4_1                60                  48              Macrophage
## 5_1                52                  39              Macrophage
## 6_1                 5                   5                   CD4 T
##     predicted.annotation.l1.score
## 1_1                     0.5884506
## 2_1                     0.5707920
## 3_1                     0.5449661
## 4_1                     0.6951970
## 5_1                     0.8155319
## 6_1                     0.5677324

我们可以可视化 Nanostring 细胞和注释,并将其投影到参考定义的 UMAP 上。请注意,对于此 NSCLC 样本,肿瘤样本被注释为“基础”,这是健康参考中最接近的细胞类型匹配。

DimPlot(nano.obj)

细胞类型和表达定位模式的可视化

正如之前的例子所展示的,ImageDimPlot() 这个函数会根据细胞在空间上的分布位置来绘制它们,并依据细胞被指定的类型来对它们进行颜色标记。可以观察到,基底细胞群(也就是肿瘤细胞)在空间上的排列非常紧凑有序,这与我们的预期是一致的。

ImageDimPlot(nano.obj, fov = "lung5.rep1", axes = TRUE, cols = "glasbey")

由于存在多种细胞类型,我们可以突出显示一些选定组的定位。

ImageDimPlot(nano.obj, fov = "lung5.rep1", cells = WhichCells(nano.obj, idents = c("Basal", "Macrophage",
    "Smooth Muscle", "CD4 T")), cols = c("red", "green", "blue", "orange"), size = 0.6)

我们还可以通过几种不同的方式可视化基因表达标记:

VlnPlot(nano.obj, features = "KRT17", assay = "Nanostring", layer = "counts", pt.size = 0.1, y.max = 30) +
    NoLegend()

FeaturePlot(nano.obj, features = "KRT17", max.cutoff = "q95")

p1 <- ImageFeaturePlot(nano.obj, fov = "lung5.rep1", features = "KRT17", max.cutoff = "q95")
p2 <- ImageDimPlot(nano.obj, fov = "lung5.rep1", alpha = 0.3, molecules = "KRT17", nmols = 10000) +
    NoLegend()
p1 + p2

我们可以绘制分子图,以便共同可视化多个标记物的表达,包括 KRT17(基底细胞)、C1QA(巨噬细胞)、IL7R(T 细胞)和 TAGLN(平滑肌细胞)。

# Plot some of the molecules which seem to display spatial correlation with each other
ImageDimPlot(nano.obj, fov = "lung5.rep1", group.by = NA, alpha = 0.3, molecules = c("KRT17", "C1QA",
    "IL7R", "TAGLN"), nmols = 20000)

我们使用 Crop() 函数放大一个富含基底的区域。放大后,我们可以在所有可视化中可视化单个细胞边界。

basal.crop <- Crop(nano.obj[["lung5.rep1"]], x = c(159500, 164000), y = c(8700, 10500))
nano.obj[["zoom1"]] <- basal.crop
DefaultBoundary(nano.obj[["zoom1"]]) <- "segmentation"

ImageDimPlot(nano.obj, fov = "zoom1", cols = "polychrome", coord.fixed = FALSE)

# note the clouds of TPSAB1 molecules denoting mast cells
ImageDimPlot(nano.obj, fov = "zoom1", cols = "polychrome", alpha = 0.3, molecules = c("KRT17", "IL7R",
    "TPSAB1"), mols.size = 0.3, nmols = 20000, border.color = "black", coord.fixed = FALSE)

相关文章
|
6天前
|
存储 数据可视化 算法
空间单细胞|基于图像的空间数据分析(2)
空间单细胞|基于图像的空间数据分析(2)
12 0
|
2月前
|
机器学习/深度学习 资源调度 数据挖掘
R语言用贝叶斯层次模型进行空间数据分析
R语言用贝叶斯层次模型进行空间数据分析
|
2月前
|
数据可视化 数据挖掘 关系型数据库
R语言中的地理空间数据分析
【4月更文挑战第26天】R语言在地理空间数据分析中发挥着关键作用,拥有如&quot;sp&quot;、&quot;sf&quot;和&quot;rgdal&quot;等扩展包。
|
2月前
|
资源调度 数据挖掘 定位技术
使用贝叶斯层次模型进行空间数据分析
使用贝叶斯层次模型进行空间数据分析
|
19天前
|
机器学习/深度学习 数据采集 数据挖掘
如何用Python进行数据分析?
【6月更文挑战第13天】如何用Python进行数据分析?
121 66
|
6天前
|
数据可视化 数据挖掘 知识图谱
精选:15款顶尖Python知识图谱(关系网络)绘制工具,数据分析的强力助手
这里有15款免费工具推荐:NetworkX(Python基础),Graph-tool(C++速度),Graphviz(可视化库),ipycytoscape(Jupyter集成),ipydagred3,ipySigma(NetworkX + Web),Netwulf(交互式),nxviz(Matplotlib绑定),Py3plex(复杂网络分析),Py4cytoscape(Python+Cytoscape),pydot(Graphviz接口),PyGraphistry(GPU加速),python-igraph,pyvis(交互式图形),SNAP(大规模网络分析)。绘制和理解网络图从未如此简单!
16 0
|
7天前
|
机器学习/深度学习 自然语言处理 数据挖掘
使用Python和大模型进行数据分析和文本生成
Python语言以其简洁和强大的特性,成为了数据科学、机器学习和人工智能开发的首选语言之一。随着大模型(Large Language Models, LLMs)如GPT-4的崛起,我们能够利用这些模型实现诸多复杂任务,从文本生成到智能对话、数据分析等等。在这篇文章中,我将介绍如何用Python连接和使用大模型,并通过示例展示如何在实际项目中应用这些技术。
|
16天前
|
数据采集 数据可视化 数据挖掘
数据挖掘实战:使用Python进行数据分析与可视化
在大数据时代,Python因其强大库支持和易学性成为数据挖掘的首选语言。本文通过一个电商销售数据案例,演示如何使用Python进行数据预处理(如处理缺失值)、分析(如销售额时间趋势)和可视化(如商品类别销售条形图),揭示数据背后的模式。安装`pandas`, `numpy`, `matplotlib`, `seaborn`后,可以按照提供的代码步骤,从读取CSV到数据探索,体验Python在数据分析中的威力。这只是数据科学的入门,更多高级技术等待发掘。【6月更文挑战第14天】
52 11
|
9天前
|
数据采集 机器学习/深度学习 数据可视化
利用Python和Pandas库构建高效的数据分析流程
在数据驱动的时代,数据分析已成为企业决策的关键环节。本文介绍如何利用Python编程语言及其强大的数据分析库Pandas,构建一套高效且可扩展的数据分析流程。与常规的数据分析流程不同,本文不仅涵盖数据加载、清洗、转换等基础步骤,还强调数据可视化、模型探索与评估等高级分析技巧,并通过实际案例展示如何在Python中实现这些步骤,为数据分析师提供一套完整的数据分析解决方案。
|
11天前
|
机器学习/深度学习 数据采集 数据可视化
使用Python进行数据分析涉及数据收集
【6月更文挑战第21天】使用Python进行数据分析涉及数据收集(如数据库、文件、API),数据清洗(处理缺失值、异常值和重复项),数据探索(统计摘要、可视化和相关性分析),特征工程(创建新特征和编码),模型构建(选择算法、训练与调整),模型评估(计算指标、可视化效果),结果解释(报告和可视化),以及部署与维护。此过程因项目需求而异,可能需迭代。常用库有`pandas`、`requests`、`BeautifulSoup`、`Matplotlib`等。
20 1

热门文章

最新文章