基础知识
在这里,您将简要地了解如何使用 scVelo 的基本知识。设置后,后续教程将可以直接分析 RNA 速率、潜在时间、驱动基因识别等。
首先,scVelo 的输入数据是(未剪切)和(剪切)的两个计数矩阵,这些矩阵可以从标准测序协议中获取,如使用velocyto或loompy/kallisto计数管道。
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)