🛤️ 轨迹
轨迹分析教程
Monocle3 + ScVelo 发育轨迹推断
📖 18分钟💻 12+代码
🎯 主流工具
Monocle 3
主流轨迹分析
ScVelo
RNA速率分析
PAGA
分区图抽象
💻 Monocle 3 安装
# 安装Monocle3
devtools::install_github("cole-trapnell-lab/monocle3")
library(monocle3)
library(Seurat)
# Seurat转Monocle
cds <- as.cell_data_set(seurat_object)
cds <- cluster_cells(cds, resolution=1e-5)
cds <- learn_graph(cds)
cds <- order_cells(cds)🛤️ 轨迹推断
# 基本流程
cds <- preprocess_cds(cds, num_dim = 50)
cds <- reduce_dimension(cds)
cds <- cluster_cells(cds)
# 学习轨迹图
cds <- learn_graph(cds)
# 选择根节点(起始点)
cds <- order_cells(cds, root_pr_nodes = "Y_1")
# 可视化
plot_cells(cds, color_cells_by = "pseudotime")
plot_cells(cds, label_groups_by_cluster = FALSE)🔄 ScVelo RNA速率
# 安装
pip install scvelo
# 基本用法
import scvelo as scv
# 加载数据
adata = scv.read('data.h5ad', cache=True)
# 预处理
scv.pp.filter_genes(adata)
scv.pp.filter_cells(adata)
scv.pp.moments(adata, n_pcs=30, n_neighbors=30)
# 计算RNA速率
scv.tl.velocity(adata, mode='stochastic')
scv.tl.velocity_graph(adata)
# 可视化
scv.pl.velocity_embedding_stream(adata, basis='umap')📈 差异表达分析
# 沿着轨迹差异表达
cds_vert <- graph_test(cds, neighbor_graph = "principal_graph", k = 25)
# 找关键基因
genes_to_label <- cds_vert %>%
filter(q_value < 0.01) %>%
group_by(partition) %>%
top_n(10, morans_test_statistic)
# 可视化
plot_genes_in_pseudotime(cds[genes_to_label$gene_short_name,])❓ 常见问题
Q: 轨迹不连续?
A: 调整resolution或使用PAGA预处理
Q: 如何选根节点?
A: 选择最早分化的细胞类型或已知起点