scVelo 是用于单细胞 RNA 测序 RNA 速率分析的 Python 包,通过建模 mRNA 剪接动力学,利用未剪接(pre-mRNA)与剪接(成熟 mRNA)丰度之比,判断每个细胞中基因处于上调还是下调,从而在无需时间序列数据的情况下重建发育轨迹、识别细胞命运决定。
用途:从快照数据推断轨迹方向、预测细胞命运、识别驱动基因、发育生物学建模(造血、神经发生、上皮间质转化)、估计潜在时间、为 UMAP 嵌入补充方向信息。
主要能力:支持 stochastic(快速)、deterministic、dynamical(推荐,较准确)三种速率模型;可计算速率图、潜在时间、速率伪时间、速率置信度;进行驱动基因排序、相图、箭头图与流线图、PAGA 轨迹图等。
使用方式:需先获得 spliced 与 unspliced 计数矩阵(由 STARsolo、kallisto|bustools lamanno 模式、velocyto CLI、alevin-fry/simpleaf 等生成),数据存于带 layers["spliced"] 和 layers["unspliced"] 的 AnnData 对象。典型流程:pip install scvelo;用 scv.pp.filter_and_normalize 预处理;sc.pp.neighbors 与 scv.pp.moments 计算矩;scv.tl.velocity 估计速率;scv.tl.velocity_graph 构建图;dynamical 模式需先 scv.tl.recover_dynamics,再计算 latent_time。
限制:短读长(<100 bp)可能缺失内含子覆盖,影响未剪接读数;细胞数过少时结果噪声大;dynamical 模型计算密集(约 1 万细胞需 10–30 分钟),内存不足时可设 n_jobs=1 或减少 n_top_genes。文档见 https://scvelo.readthedocs.io/,代码见 https://github.com/theislab/scvelo。