如何用RNA速率“倒放“细胞命运的演化录像?
单细胞RNA测序(scRNA-seq)就像给细胞群体拍了一张高清合影——你能看清每个细胞的"表情",却猜不透它们下一秒要"做什么"。
如果告诉你,仅凭一张静态照片,我们就能推算出细胞过去的状态和未来的命运,甚至预测它正在分化还是即将凋亡——这听起来像科幻,但RNA速率(RNA Velocity) 正是这样一台"分子时间机器"。
什么是RNA速率?
想象基因表达是一场接力赛:
-
未剪接mRNA(unspliced) = 刚接过棒、还在热身的选手(新生转录本)
-
剪接mRNA(spliced) = 正在全力冲刺的选手(成熟转录本)
通过追踪这两种状态的"人数比例",我们不仅能知道现在谁领先,还能推算出接力棒传递的速度和方向——这就是RNA速率的本质:利用剪接动力学模型,从静态测序数据中重建细胞状态的时间导数(变化速率)。
关键洞察:未剪接与剪接mRNA的比率如同细胞的"代谢指纹"——比率升高暗示该基因正在被激活(诱导),比率下降则预示表达抑制。这种动态信息让我们能够:
-
🧭 推断轨迹方向:细胞是走向分化终点,还是停留在稳定状态?
-
⏱️ 预测伪时间:在发育路径上为每个细胞精确"定位"
-
🎯 识别驱动基因:找到推动命运转变的关键调控因

PS:本篇文章是针对百创智造S3000空间转录组技术来展开如何进行RNA速率分析的
分析步骤:
原始测序数据 (BAM)
↓
【Step 1】bam文件添加分子标签 → 区分剪接状态
↓
【Step 2】Velocyto处理 → 生成.loom动态矩阵
↓
【Step 3】R/Scanpy分析 → 速率嵌入与可视化
↓
🎁 产出:细胞命运预测的"动态地图"
环境配置:
#R中需要安装的包
install.packages('Matrix','velocyto.R','Seurat','SeuratWrappers','tidyverse')
conda install numpy scipy cython numba matplotlib scikit-learn h5py click
pip install velocyto
一、 将bam文件添加tag
给level水平的bam文件添加tag的脚本:bam_add_flag.pl
通过网盘分享的文件:细胞分割的bam文件添加细胞ID
链接: https://pan.baidu.com/s/1SAxfvi9gNIJcZJW-K4hWSQ 提取码: e438
参数说明
perl bam_add_flag.pl <bc_umi_read.tsv.id> <BSTViewer_project/subdata/L1_heAuto/barcodes.tsv.gz> <sample/barcode.tsv> <BSTViewer_project/level_matrix/level_1/barcodes_cluster.tsv.gz> <in.bam> <out.bam>
#shell中运行,将bam文件添加tag
perl /path/to/bam_add_flag.pl
/share/nas1/sunh/project/demo/out1/01.fastq2BcUmi/S3000-SN-DEMO.bc_umi_read.tsv.id \
/share/nas1/sunh/project/demo/out1/05.AllheStat/BSTViewer_project/subdata/L18_heAuto/barcodes.tsv.gz \
/share/nas1/sunh/project/demo/out1/S3000-SN-DEMO/barcode.tsv \
/share/nas1/sunh/project/demo/out1/05.AllheStat/BSTViewer_project/level_matrix/level_18/barcodes_cluster.tsv.gz \
/share/nas1/sunh/project/demo/out1/02.Umi2Gene/S3000-SN-DEMOAligned.out.bam \ #bam文件在02.Umi2Gene目录
/share/nas1/sunh/project/demo/out1/analysis/level18/new_out.bam L18
#shell中运行
#将bam文件按照位置进行排序
samtool index sort /share/nas1/sunh/project/demo/out1/analysis/level18/new_out.bam -o /share/nas1/sunh/project/demo/out1/analysis/level18/new_out.sort.bam
#将排序后的bam构建索引
samtools index /share/nas1/sunh/project/demo/out1/analysis/level18/new_out.sort.bam
二、velocyto生成loom文件
velocyto github网站:https://github.com/velocyto-team/velocyto.py
velocyto文档:https://velocyto.org/velocyto.py
#shell
nohup velocyto run \
-o /share/nas1/sunh/project/demo/whole_out/analysis/level/velocyto/out \ #此为loom结果输出目录
/share/nas1/sunh/project/demo/out1/analysis/level18/new_out.sort.bam \ #此为排序后的bam文件
/share/nas1/dengdj/testing/Gene_expression/ref_GRCm38_release95/genes/genes.gtf -@ 10
三、在R中运行velocyto.R局速率可视化
全局速率可视化
DimPlot(velo, reduction = "umap")
emb = Embeddings(velo, reduction = "umap")
vel = Tool(velo, slot = "RunVelocity")
show.velocity.on.embedding.cor(emb = emb, vel = vel, n = 200, scale = "sqrt",
cell.colors = ac(cell.colors, alpha = 0.5), cex = 0.8, arrow.scale = 3,
show.grid.flow = TRUE, min.grid.cell.mass = 0.5, grid.n = 40,
arrow.lwd = 1, do.par = FALSE, cell.border.alpha = 0.1)


##特定基因速率可视化
gene = "Rab10"
RunVelocity(velo, deltaT=1, kCells=25, fit.quantile=0.02, old.fit=vel,
cell.emb=emb, cell.colors=cell.colors, show.gene=gene, do.par=T)

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)