返回目录
公开知识笔记 · 不进入目录

《scGen predicts single-cell perturbation responses》笔记

公开知识笔记

任务

根据已有的单细胞基因表达数据,学习细胞受到某种扰动后的变化规律,并预测其他细胞受到相同扰动后会产生怎样的基因表达响应

AI制作的框架图

scGen.png

具体模块

第一个模块也就是输入模块,它输入的是基因表达向量 XiX_i、细胞标签、条件标签、细胞背景等信息。

第二个模块是 VAE 编码器,它的作用是将高维的表达转换到低维的潜在空间。这里“高维的表达”指的是 XiX_i,也就是每一个细胞在所有高变基因中的表达情况。我们通过 VAE 编码器,把它转换到一个低维的向量空间 ZiZ_i 当中。

但我们这里不是简单地将 XiX_i 转换为 ZiZ_i,而是将所有的 XiX_i 转换为一个关于 ZiZ_i 的高斯分布:

qϕ(zi∣xi)=N(zi;μϕ(xi),Σϕ(xi))q_\phi(z_i \mid x_i) = \mathcal{N}\left(z_i;\mu_\phi(x_i),\Sigma_\phi(x_i)\right)

所以我们输入的是 XiX_i,它通过一个神经网络,得到一个均值向量 μϕ(xi)\mu_\phi(x_i) 和一个协方差矩阵 Σϕ(xi)\Sigma_\phi(x_i),那么这个均值向量和协方差矩阵就是构造该分布的要素。

作者使用了一个技巧,方便梯度计算:

zi=μϕ(xi)+Σϕ(xi)1/2ϵ,ϵ∼N(0,I)z_i = \mu_\phi(x_i) + \Sigma_\phi(x_i)^{1/2}\epsilon, \qquad \epsilon \sim \mathcal{N}(0,I)

第三个模块是估计扰动效应向量 δ\delta,δ\delta 指向从对照组的潜在均值到扰动的潜在均值的方向,其长度表示两个均值间的差异大小。公式为:

δ=avg⁡(z∣p=1)−avg⁡(z∣p=0)\delta = \operatorname{avg}(z \mid p=1) - \operatorname{avg}(z \mid p=0)

展开后就是:

δ=1N1∑i:pi=1zi−1N0∑i:pi=0zi\delta = \frac{1}{N_1}\sum_{i:p_i=1} z_i - \frac{1}{N_0}\sum_{i:p_i=0} z_i

其中:

  • ziz_i:训练细胞经过 VAE 编码后得到的潜在表示。
  • N1N_1:参与计算的扰动组细胞数量。
  • N0N_0:参与计算的对照组细胞数量。
  • δ∈Rd\delta \in \mathbb{R}^d:扰动效应向量。

故而,其输入是扰动组的潜在空间向量 z∣p=1z \mid p=1 和对照组的潜在空间向量 z∣p=0z \mid p=0 分别求均值,然后相减,就得到德尔塔。

该文献的重要假设:训练数据中估计出的平均扰动效应,可以用于预测其他细胞背景受到相同扰动后的状态。

模块四是对目标细胞在潜在空间进行预测。已知目标细胞未扰动的潜在空间向量,通过公式:

z^i,A,p=1=zi,A,p=0+δ\hat{z}_{i,A,p=1} = z_{i,A,p=0} + \delta

来估计扰动后的潜在空间向量。