Towards Data Science

Where a Cell Sits Matters More Than How Many There Are

7.1内容质量

TL;DR · AI 摘要

Where a Cell Sits Matters More Than How Many There Are Towards Data Science Neuroscience Where a Cell Sits Matters More...

核心要点

  • 主题聚焦:Where a Cell Sits Matters More Than How Many The
  • 来源:Towards Data Science,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#前端#安全#开源
打开原文

细胞的位置比数量更重要 | Towards Data Science

神经科学

细胞的位置比数量更重要

使用 spatstat 栅格层和点过程模型探讨神经元、星形胶质细胞和小胶质细胞之间的相对位置

Daniel Manrique Castano

2026年10月28日

11分钟阅读

在Google上关注我们

分享

缺血后5、15和30天时,单个动物的星形胶质细胞密度(栅格层)与神经元(白色)和小胶质细胞(橙色)的位置。作者:Daniel Manrique-Castano,图像由数据绘制。

缺血后5、15和30天小鼠脑切片中星形胶质细胞密度图,以及神经元和小胶质细胞的位置,来自R中的空间点模式分析。

在第一部分[1]的结尾,我告诉过你们,在我的数据中,星形胶质细胞较多的区域神经元数量更少。我还留了一个练习:将缺血后天数(DPI)添加到模型中,观察该估计值是否会变化。我之前为所有动物拟合了相同的斜率,尽管5天和30天的脑组织并不相同。

本文是对该练习的正确执行。答案令人不安:我向你们展示的合并斜率隐藏了符号的变化,且无法很好地描述四个时间点中的任何一个。

我认为更有价值的问题不是细胞的数量,而是组织如何被分隔,以及一种细胞类型的分布如何揭示另一种细胞类型的信息。对我而言,细胞在组织中的排列方式是它们如何相互作用的关键决定因素。细胞计数无法看到这一点,而地图可以。

你将学到的内容

  • 如何将栅格层(细胞密度的像素图像)作为协变量和空间模型的输出进行解读。
  • 如何根据一种细胞类型将切片分割成不同区域,并描述另一种细胞类型在这些区域内的分布。
  • 为什么一个合并的斜率可能无法描述任何一组,以及如何将动物而非像素纳入贝叶斯模型。

这是第二部分。如果你尚未阅读第一部分[1],只需知道我们处理的是一个点模式超帧(神经元、星形胶质细胞和小胶质细胞,每只动物一组),并使用sigma=0.2的高斯核进行平滑处理。在此数据集中坐标以毫米为单位,因此sigma=0.2毫米。使用的软件包是spatstat[2];模型使用brms[3]和tidybayes[4]。该数据背后的协议和预印本见[5]和[6]。

相同的数据,一个新思路:栅格层

我们重新加载超帧并重建星形胶质细胞密度核,方法与第一部分相同。

r

code
PointPatterns <- readRDS("data/PointPatterns_5x.rds")
row.names(PointPatterns) <- PointPatterns$ID
PointPatterns$DPI <- factor(PointPatterns$DPI, levels = c("0D", "5D", "15D", "30D"))
PointPatterns$Astrocytes_Dens <- with(PointPatterns, density(Astrocytes, sigma = 0.2))

这个对象是什么?Astrocytes_Dens是一个像素图像(spatstat中的im类)。每个像素存储一个数值:每平方毫米估计的星形胶质细胞数量。这正是GIS中的栅格层,你可以像处理栅格层一样处理它:可以将其作为协变量使用,与其他图层进行比较,将其分类,或转换为包含x、y和值的DataFrame。

在绘制任何地图之前,让我们先明确我们正在比较的内容。以下是按DPI计算的每切片细胞数量平均值:

表1. 按DPI计算的每切片检测到的细胞平均数量。

有31只动物:0D时5只,5D时8只,15D时8只,30D时10只。星形胶质细胞数量从0D时每切片约156个增加到之后的704-932个。请注意:在0D时几乎没有什么可以映射,我稍后再回来讨论。

原始模型:所有人共享一个斜率

这是第1部分的模型:神经元强度作为星形胶质细胞密度层的函数,所有动物数据合并分析。

code
Neurons_ppm0 <- mppm(Neurons ~ Astrocytes_Dens, data = PointPatterns)
coef(Neurons_ppm0)
#>     (Intercept) Astrocytes_Dens
#>     3.546585157    -0.002171358

在对数尺度上斜率为-0.0022。这个斜率很小且为负值:星形胶质细胞越多的地方神经元数量略少。这就是我在第1部分中写下的结论。

暂停并预测。在运行下一个模型之前,请先猜测。如果允许斜率随DPI变化,当星形胶质细胞开始反应的5天时会发生什么?斜率会保持负值、变得平坦,还是反转?

text

code
Neurons_ppm1 <- mppm(Neurons ~ Astrocytes_Dens * DPI, data = PointPatterns)

表2. 神经元强度对星形胶质细胞密度的斜率(对数尺度),以及每增加10个星形胶质细胞/mm²时神经元数量的百分比变化。

在0D时斜率为负值;在5D和15D时为正值;在30D时再次变为负值。大致计算,每mm²增加10个星形胶质细胞对应神经元强度变化为0D时-15.3%、5D时8.8%、15D时3.5%、30D时-5.6%。

合并分析的斜率实际上是不同类型组织的平均值。符号错误并非四舍五入误差:它会误导后续实验和动物群体研究方向。我不信任mppm在这里报告的p值。该模型将每个点视为独立变量,且每只动物有数百到数千个细胞,因此过于自信。重复单位应是动物而非细胞,我将在帖子后半部分遵循这一原则。

观察关系的形态

单一斜率假设在对数尺度上关系是直线。我们可以使用rhohat在不作任何假设的情况下验证这一点,它通过协变量层估计神经元强度。下面每条线代表一只动物。

图1. 神经元强度与星形胶质细胞密度的关系。每只动物一条线。y轴在120个细胞/mm²处截断,因此0D时最高的尖峰被裁剪。

观察重点:每个面板中线条的整体趋势而非波动。曲线较为平缓,我不会称其中任何一条为陡峭关系。在5D时随着星形胶质细胞密度上升线条整体上移,在30D时整体下移。在15D时基本保持水平。在0D时线条杂乱无章,因为星形胶质细胞数量极少导致协变量变化微小,少量细胞就会形成明显尖峰。这是在模型将它们转化为数字之前观察动物特征的绝佳机会。

使用一层数据估算另一层数据

对我而言最重要的栅格层应用是:已知某类细胞的位置,可以推断另一类细胞应该出现的位置。我使用星形胶质细胞层作为唯一信息为单只动物拟合点过程模型,然后从中预测神经元层,并将其与实际观测到的神经元密度进行对比。

图2. 星形胶质细胞密度、实际观测到的神经元密度以及仅根据星形胶质细胞预测的神经元密度,分别对应5D动物(M01)和30D动物(M02)。

两行使用相同的颜色比例来表示观察值和预测值,因此可以进行直接比较。如果星形胶质细胞层能完全解释神经元的信息,右侧的两个面板应该呈现完全相同的图像。但实际情况并非如此,这种差异本身就意味着信息:星形胶质细胞无法解释的部分正是差异所在。对于5D动物(顶部),预测结果能够恢复空白区域并部分识别热点区域。对于30D动物(底部),预测结果捕捉到了方向性,星形胶质细胞密集区域神经元数量较少,但与实际观测图相比对比度明显降低。它几乎完全忽略了顶部的神经元带。我并未声称星形胶质细胞决定了神经元的位置。我的观点是,在本研究中,了解其中一层可以为另一层提供部分估计。

区室划分:将层划分为类别

地图适合直观观察,但不利于比较31只动物。为了进行比较,我使用quantess工具将每层星形胶质细胞划分为四个面积相等的区室:区室1是星形胶质细胞数量最少的四分之一区域,区室4是星形胶质细胞数量最多的四分之一区域。随后我在每个区室中统计神经元和小胶质细胞数量,并除以面积。

code
Q <- quantess(Window(PointPatterns$Neurons[[i]]), PointPatterns$Astrocytes_Dens[[i]], n = 4)
Area <- as.numeric(tile.areas(Q))
Neurons_density <- as.numeric(quadratcount(PointPatterns$Neurons[[i]], tess = Q)) / Area

图3. 由星形胶质细胞密度定义的区室内的细胞密度(1=星形胶质细胞最少,4=星形胶质细胞最多)。细线表示单个动物,粗线表示组均值。

观察重点:粗线。神经元(顶部)在0D和30D时分布在所有区室中,但在5D时显著增加。小胶质细胞(底部)的差异最明显:从15D开始,它们显著增加并集中在星形胶质细胞丰富的区室,而在5D时所有区室的小胶质细胞密度都较高。如果仅使用单个切片的细胞总数进行分析,将无法发现这一差异,因为所有四个区室的总数是相同的。

0D面板存在一个陷阱,也就是我之前提到的问题。在0D时星形胶质细胞数量极少,导致最低的两个区室实际上几乎为零。这些区室虽然存在,但仅能描述少量细胞形成的微弱梯度。我保留0D数据是因为它是参考基准,而非因为其信息量与其他数据相当。

从区室到带不确定性的估计

现在我将动物数据带入贝叶斯模型。对于每只动物,我提取一个数值:星形胶质细胞最密集区室与最稀疏区室的细胞密度log2比值。比值为0表示无梯度,+1表示富集区室细胞数量是稀疏区室的两倍,-1表示富集区室细胞数量是稀疏区室的一半。

与第一部分相同,我使用Student-t分布似然函数,并让方差依赖于DPI(每英寸点数),因为某些时间点的动物之间相似度显著高于其他时间点。我为每种细胞类型分别拟合模型,保留了brms的默认先验分布。每组5到10只动物时这些先验并非无关紧要,但此处我未进行先验敏感性检验,请读者在解读区间时注意这一点。

code
Neurons_Fit <- brm(bf(Neurons_LogRatio ~ DPI, sigma ~ DPI),
family = student, data = Ratios_df,
seed = 8807, control = list(adapt_delta = 0.99),
file = "models/Neurons_Ratio_Fit")

在解读结果前,我先验证马尔可夫链是否收敛,以及每个模型是否能重现其数据。

表3. 人口层面参数的收敛诊断指标。

最大的 R-hat 值为 1.00,最小的有效样本量为 1294(bulk)和 1342(tail)。发散转换数量为 0。以下的后验预测检查将观察到的比率分布(深色线条)与模型抽样结果(浅色线条)进行对比:

图 4a. 神经元的后验预测检查。

图 4b. 小胶质细胞的后验预测检查。

图 5. 星形胶质细胞富集区与贫乏区的后验 log2 比值。零值表示无梯度。

表 4. 后验中位数、95% 可信区间以及比值高于零的概率。

先看神经元部分。在 0D 和 30D 时,后验值位于零以下,比值高于零的概率分别为 0.01 和 0.02;在 5D 时该概率为 0.99。这是从 mppm 表格中观察到的符号变化,现在以动物为分析单位并展示了不确定性而非隐藏它。对于小胶质细胞,15D 时后验中位数在 log2 尺度上为 1.1,表示星形胶质细胞富集区的小胶质细胞数量约为贫乏区的 2.1 倍。在 30D 时中位数为 3.4,约为 10 倍。在 0D 和 5D 时区间包含零,因此我未观察到梯度。

这就是我认为相对方法有用的方面:它回答了关于组织排列的问题,并且以动物为分析单位进行说明。

该方法的局限性

我并未声称超出地图和模型所展示的内容,因此以下是其局限性:

  • 分割仍然是薄弱环节。对于星形胶质细胞和小胶质细胞等不规则形状的物体,将单个细胞与同一细胞的多个碎片区分开仍然具有挑战性。如果星形胶质细胞被检测为三个碎片,会增加星形胶质细胞层的权重,所有区室都会继承这个错误。均匀的高估会改变层而不会重新排序,这对基于排名的切割(如我使用的)影响较小。依赖于区域的碎片化不会均匀地改变层,区室也会随之改变。我无法从这些数据中排除这种可能性。
  • 核心函数和切割方式是人为选择的。sigma = 0.2 和四个等面积区室是我的选择。第一部分展示了 sigma 对地图的影响程度。在信任结论之前,我会用三个和六个区室重复区室分析。尝试使用仓库中的数据,告诉我你的结论是否会改变。
  • 0D 的数据量较少。如上所述,0D 时星形胶质细胞数量极少,因此其区室仅由少量细胞构成的梯度。
  • mppm 表是描述性的。它将点视为独立个体。我使用它来展示符号变化,而非进行验证。
  • 样本量。各组分别有 5、8、8 和 10 只动物。在预期的区域,可信区间较宽。
  • 相关性,而非机制。一个跟随星形胶质细胞层的神经元层并不能说明因果关系。

你的思考

  • 你会为整个时间过程保留一个斜率,还是为每个 DPI 保留一个斜率?什么会让你改变主意?
  • 在你自己的组织中,哪一对细胞类型或标记存在"从一个预测另一个"的问题?你尝试过吗?这里的内容不限于胶质细胞:生态学家会将星形胶质细胞替换为栖息地层,流行病学家则替换为污染地图。
  • 如果你认为等面积分位数是一种任意的组织区室化方式,我很想听听你的替代方案。

接下来,在第三部分:本文中使用的地图显示每个位置存在多少种细胞类型。它们无法说明两种细胞类型在短距离内是相互吸引还是排斥。为此,我们需要二阶汇总统计量,例如跨类型K函数和配对相关函数。在动笔之前:我应该从神经元和星形胶质细胞开始,还是从星形胶质细胞和小胶质细胞开始?

你可以在我的GitHub站点上找到本文的完整代码和数据。

除非另有说明,所有图片均使用显示的R代码生成。

参考文献

  1. D. Manrique-Castano, 神经科学家的空间细胞分析简介(第一部分)(2024), (可访问网址 https://towardsdatascience.com/introduction-to-spatial-analysis-of-cells-for-neuroscientists-part-1-82bef519ad46/ ).
  1. A. Baddeley, E. Rubak, R. Turner, 空间点模式:使用R的方法与应用 (Chapman; Hall/CRC Press, London, 2015; https://www.routledge.com/Spatial-Point-Patterns-Methodology-and-Applications-with-R/Baddeley-Rubak-Turner/p/book/9781482210200/ ).
  1. P.-C. Bürkner, brms:一个用于贝叶斯多层模型的R包,使用Stan。J. Stat. Softw. 80 (2017), doi:10.18637/jss.v080.i01.
  1. M. Kay, tidybayes:用于贝叶斯模型的整洁数据和几何图形 (2023; http://mjskay.github.io/tidybayes/ ).
  1. D. Manrique-Castano, A. ElAli, 使用点模式分析对小鼠细胞的空间分布进行无偏量化。STAR Protocols . 5, 102989 (2024). https://doi.org/10.1016/j.xpro.2024.102989
  1. D. Manrique-Castano, D. Bhaskar, A. ElAli, 通过空间点模式和拓扑数据分析解析胶质瘢痕形成 (2023), (可访问网址 http://dx.doi.org/10.1101/2023.10.04.560910 ).