RNAvelocity1:RNA速率简介及scVelo安装
1.简介
测量单个细胞中的基因活性需要破坏这些细胞以读取其内容,这使得研究动态过程和了解细胞命运决定具有挑战性。La Manno et al. (Nature, 2018)[1]引入了 RNA 速率的概念,利用新转录的未剪接的前体 mRNA 和成熟的剪接 mRNA 可以在常见的单细胞 RNA-seq 流程中区分的事实,可以恢复定向动态信息,前者可通过内含子的存在检测。这种不仅测量基因活性,而且测量它们在单个细胞中的变化(RNA 速率)的概念,开辟了研究细胞分化的新方法。最初提出的框架将速率作为观察到的剪接和未剪接 mRNA 的比率与推断的稳态的偏差。如果违反了共同剪接速率的中心假设和对具有稳态 mRNA 水平的完整剪接动力学的观察,则会出现速率估计错误。
Bergen et al. (Nature Biotechnology, 2020)[2]开发了 scVelo,通过使用基于似然的动力学模型求解剪接动力学的完整转录动力解决了这些局限。这将 RNA 速率推广到包括瞬态细胞状态的各种系统,这些系统在发育和对扰动的响应中很常见。此外,scVelo 推断转录、剪接和降解的基因特异性速率,并恢复在细胞过程的潜在时间。这个仅基于其转录动力学的潜在时间代表细胞的内部时钟,并近似于细胞在分化时经历的真实时间。此外,scVelo 识别调节变化的机制,例如细胞命运决定的阶段,并在其中系统地检测推定的驱动基因。
RNA速率模型
使用 RNA 速率,通过将测量结果与潜在的 mRNA 剪接动力学联系起来,探索方向轨迹的推断:特定基因的转录诱导导致(新转录的)前体未剪接 mRNA 的增加,而相反,转录的抑制或缺失导致未剪接的 mRNA 减少。因此,通过区分未剪接的 mRNA 和剪接的 mRNA,可以近似估计 mRNA 丰度(RNA 速率)的变化。然后可以使用跨 mRNA 的速率组合来估计单个细胞的未来状态。
目前可以通过三种现有方法来处理 RNA 速率估计:
稳态/确定性模型(使用稳态残差) 随机模型(使用二阶矩), 动力学模型(使用基于似然的框架)。
稳态/确定性模型,如在 velocyto 中使用的,按如下方法估计速率:假设转录阶段(诱导和抑制)持续足够长的时间以达到稳态平衡(活跃和不活跃),速率被量化为观察到的比率与其稳态比率。平衡 mRNA 水平通过对下分位数和上分位数中假定的稳态的线性回归来估计。这种简化提出了两个基本假设:跨基因的共同剪接率和要反映在数据中的稳态 mRNA 水平。它可能会导致速率估计和细胞状态的错误,因为这些假设经常被违反,特别是当一个种群包含多个异质亚种群动态时。
随机模型旨在更好地捕捉到稳定状态。通过将转录、剪接和降解视为概率事件,由此产生的Markov过程由矩方程估计。通过包括二阶矩,它不仅利用了未剪接与剪接 mRNA 水平的平衡,而且还利用了它们的协变。已经在内分泌胰腺上证明随机性增加了有价值的信息,总体上比确定性模型产生更高的一致性,同时在计算时间上保持同样的效率。
动力学模型(最强大而计算最昂贵的)解决了拼接动力学每个基因的全部动力。因此,它使 RNA 速率适应广泛变化的规格,例如非平稳种群,因为它不依赖于常见剪接速率或待采样稳态的限制。
剪接动力学
在基于似然的期望最大化框架中,通过迭代估计反应速率和潜在细胞特异性变量的参数,即转录状态k和细胞内部潜在时间t来解决。
因此,它旨在学习未拼接/拼接的相位轨迹。四种转录状态被建模以解释基因活动的所有可能配置:在每次动态转变后可能达到的两种动态瞬时状态(诱导和抑制)和两种稳定状态(活跃和非活跃)。
在期望步骤中,对于未拼接/拼接相位轨迹的给定模型估计,通过最小化其与相位轨迹的距离,将潜在时间分配给观察到的 mRNA 。然后通过将可能性与相位轨迹上的各个片段(诱导、抑制、活跃和不活跃的稳态)相关联来分配转录状态。然后在最大化步骤中,通过更新反应速率参数来优化整体可能性。
该模型产生更一致的速率估计和更好的转录状态识别。它还能够以基于可能性的方式系统地识别动态驱动基因,从而找到控制细胞命运转变的关键驱动因素。此外,动力学模型推断出跨基因共享的通用细胞内部潜在时间,从而能够关联基因并识别转录变化机制。
为了获得最佳结果和上述额外见解,我们建议使用动力学模型。如果运行时间很重要,建议使用随机模型,因为它非常有效地逼近动力学模型,在 30k 细胞上花费几分钟。动力学可能需要长达一小时。
如果想对原理进一步了解, Bergen et al. (2020)[3] 中详细阐述了这些方法。
2.安装
scVelo 需要 Python 3.6 或更高版本。建议使用Miniconda[4]。
PyPI
使用以下命令从PyPI[5]安装 scVelo :
pip install -U scvelo
-U 是--upgrade 的缩写。如果出现Permission denied错误,请改用pip install -U scvelo --user
开发版
要使用最新的开发版本,请使用以下命令从GitHub[6]安装:
pip install git+https://github.com/theislab/scvelo
或者:
git clone https://github.com/theislab/scvelo
pip install -e scvelo
-e
是--editable
的缩写,将包链接到原始克隆位置,这样拉取的更改也会反映在环境中。
依赖包
anndata - 带注释的数据对象。 scanpy - 用于单细胞分析的工具包。 numpy、scipy、pandas、scikit-learn、matplotlib。
部分scVelo(定向 PAGA 和 Louvain 模块化)需要安装(可选):
pip install python-igraph louvain
通过hnswlib[7]使用快速邻近搜索进一步需要安装(可选):
pip install pybind11 hnswlib
Jupyter Notebook
要在本地Jupyter中运行教程,请安装:
conda install notebook
并在终端中运行jupyter notebook。如果收到错误Not a directory: 'xdg-settings',请改用jupyter notebook --no-browser并手动打开网址。
文中链接
La Manno et al. (Nature, 2018): https://doi.org/10.1038/s41586-018-0414-6
[2]
Bergen et al. (Nature Biotechnology, 2020): https://doi.org/10.1038/s41587-020-0591-3
[3]
Bergen et al. (2020): https://doi.org/10.1038/s41587-020-0591-3
[4]
Miniconda: http://conda.pydata.org/miniconda.html
[5]
PyPI: https://pypi.org/project/scvelo
[6]
GitHub: https://github.com/theislab/scvelo
[7]
hnswlib: https://github.com/nmslib/hnswlib