查看原文
其他

RNAvelocity5:了解scVelo

Seurat 单细胞天地 2022-08-10

分享是一种态度

基础知识

在这里,您将简要地了解如何使用 scVelo 的基本知识。设置后,后续教程将可以直接分析 RNA 速率、潜在时间、驱动基因识别等。

首先,scVelo 的输入数据是(未剪切)和(剪切)的两个计数矩阵,这些矩阵可以从标准测序协议中获取,如使用velocyto或loompy/kallisto[1]计数管道。

scVelo工作流程简介

加载所需scvelo包:

import scvelo as scv

为了更好的可视化,可以将matplotlib设置更改为我们的默认值:

scv.set_figure_params()

读入数据

读入数据文件,可以使这些格式(loom, h5ad, csv, …)

adata = scv.read(filename, cache=True)
adata 

adata存储了数据矩阵(adata.X)、细胞/观测(adata.obs)和基因/变量(adata.var)、非结构化注释(adata.uns如图形)和剪切和未剪切计数的其他数据(adata.layers)。

如果您已经拥有现有的预处理 adata 对象,则只需通过以下方式合并剪切/未剪切的count:

ldata = scv.read(filename.loom, cache=True)
adata = scv.utils.merge(adata, ldata)

如果您还没有数据集,您仍然可以使用内置数据集,例如:

adata = scv.datasets.pancreas()

典型的工作流程包括后续的预处理 (scv.pp.)、分析工具 (scv.tl.) 和绘图 (scv.pl.)。

基本预处理

在基本预处理(基因选择和标准化)之后,我们计算第一和第二顺序时刻(平均和去中心化的方差)以进行速率估计:

scv.pp.filter_and_normalize(adata, **params)
scv.pp.moments(adata, **params)

速率工具

该软件的核心是高效和稳健地估计速率:

scv.tl.velocity(adata, mode='stochastic', **params)

速率是通过解决转录动力学的随机模型获得的基因表达空间中的载体。

确定性模型的解决方案是通过设置mode='deterministic'获得的。

动力学模型的解决方案是通过设置mode='dynamical'获得的,这需要事先运行scv.tl.recover_dynamics(adata, **params)

速率存储在adata.layers,类似计数矩阵。

速率通过将它们转换成可能的细胞转换投射到低维嵌入中。即,对于每个速率矢量,我们发现符合该方向的可能的细胞过渡。一个细胞过渡到另一个细胞的概率是使用(潜在细胞过渡和速率矢量之间)余弦值相关性计算的,并存储在矩阵中,使用速率图展示:

scv.tl.velocity_graph(adata, **params)

可视化

最后,速率可以在单个细胞水平上的任何嵌入(例如 UMAP)中以网格线或简化身份投影和可视化:

scv.pl.velocity_embedding(adata, basis='umap', **params)
scv.pl.velocity_embedding_grid(adata, basis='umap', **params)
scv.pl.velocity_embedding_stream(adata, basis='umap', **params)

对于每个工具模块,都有一个绘图参数,允许您详细检查结果,例如:

scv.pl.velocity(adata, var_names=['gene_A''gene_B'], **params)
scv.pl.velocity_graph(adata, **params)

文中链接

[1]

loompy/kallisto: https://linnarssonlab.org/loompy/kallisto/index.html


往期回顾

动动小手大家一起来投票
RNAvelocity4:velocyto.R的使用

百迈客新品-植物空间转录组的机遇与挑战

scRNA已经开发出超过1000款工具了,你用过几种?






如果你对单细胞转录组研究感兴趣,但又不知道如何入门,也许你可以关注一下下面的课程



看完记得顺手点个“在看”哦!


生物 | 单细胞 | 转录组丨资料每天都精彩

长按扫码可关注

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存