BioF3 FigCode · SCI 绘图代码集
RNA 速率流场图(scVelo Stream)
分类:降维可视化 | 依赖包:scvelo、scanpy
解决的生物学问题
细胞下一刻往哪个状态走?分化轨迹的方向是从 A 到 B 还是反过来?
应用场景
- 分化方向推断
- 伪时序的方向性补充
- 动态过程速率定量
- PAGA 轨迹的方向证据
输入数据格式
AnnData 对象(含 spliced / unspliced 矩阵,loom 格式)
关键参数
- mode = "stochastic" / "dynamical"
- n_neighbors = 30
- basis = "umap"
- density 流线密度
快速开始
1. 直接在线运行
打开 FigCode 在线绘图,点击本工具卡片的"在线绘图"按钮即可用内置示例数据出图,零环境配置。
2. 本地复现
下载脚本和示例数据,本地 RStudio 运行:
# 下载
curl -O https://<your-site>/figcode/scripts/scvelo-stream.R
curl -O https://<your-site>/figcode/data/scvelo-stream.csv
3. 安装依赖
# CRAN 包
install.packages(c("scvelo", "scanpy"))
# Bioconductor 包(如需)
# BiocManager::install(c())
完整代码
import scvelo as scv
import scanpy as sc
# --- Demo: built-in pancreas dataset ---
adata = scv.datasets.pancreas()
# --- Standard preprocessing ---
scv.pp.filter_and_normalize(adata, min_shared_counts=20, n_top_genes=2000)
scv.pp.moments(adata, n_pcs=30, n_neighbors=30)
# --- Velocity (stochastic mode is fast for demo) ---
scv.tl.velocity(adata, mode="stochastic")
scv.tl.velocity_graph(adata)
# --- Stream plot on UMAP ---
scv.pl.velocity_embedding_stream(
adata,
basis="umap",
color="clusters",
title="RNA velocity stream",
legend_loc="right margin",
figsize=(8, 6),
save="plot_001.png", show=False, dpi=150
)
print(f"Cells: {adata.n_obs}, clusters: {adata.obs['clusters'].nunique()}")
替换为自己的数据
脚本中以 # --- Demo data --- 标注的段落是示例数据生成代码。替换为自己的数据时,保持列名一致即可:
- 输入格式:AnnData 对象(含 spliced / unspliced 矩阵,loom 格式)
- 使用
read.csv()/readRDS()读取本地文件
延伸阅读
- 相关教程:RNA 速率流场图 完整流程
- 出现 bug?欢迎在 FigCode 页面 点击对应卡片,在评论区留言。