cellDancer是来自康奈尔医学院(Weill Cornell Medicine)和休斯顿卫理公会研究所(Houston Methodist Research Institute)的Guangyu Wang实验室2023年4月在Nature Biotechnology上发表的python包工具,用于预测单细胞状态的动态转变和RNA的动力学速率。
原始论文:
https://www.nature.com/articles/s41587-023-01728-5 Github:
https://github.com/GuangyuWangLab2021/cellDancer 官方手册:
https://guangyuwanglab2021.github.io/cellDancer_website
单细胞测序能够获得特定时刻转录组的快照,基于单细胞测序的数据,cellDancer可以通过unspliced mRNA和spliced mRNA来预测RNA Velocity1,从而体现单细胞状态的动态变化(图 1;左上:小鼠原肠胚红细胞成熟过程,右上:小鼠海马体发育过程,左下:人类胚胎谷氨酸能神经发生过程,右下:小鼠内分泌发育过程)。
cellDancer能够预测的每个细胞每个基因的转录和降解速率,在细胞周期实验数据中,cellDancer测得的转录和降解速率的与分解代谢2实验手段所测得的速率的显示出相关性(图2)。
通过对预测的转录和降解速率进行聚类,可以观测到不同的RNA周转策略(turnover strategy),如图3中类F的基因在有丝分裂阶段有着较大的转录和降解速率,意味着mRNA的快速周转。
在cellDancer预测的RNA Velocity基础上,于in silico环境下对Gata2的表达量进行抑制,结果表明了Gata2在造血中的重要作用。
RNA的lifetime就如同蓄水池,由转录,剪切,和降解速率共同影响(图5)。这样的一个动态过程可以被图6的公式所表示,t代表一个短暂的时间,du/dt和ds/dt可以表示unspliced mRNA和spliced mRNA的丰度在下一时刻的变化方向。
RNA Velocity的概念和图6的动力学速率公式由La Manno等人最早提出1,他们也在小鼠肝脏的昼夜节律基因中发现unspliced mRNA的丰度可以作为spliced mRNA丰度的先导(图7;s:spliced mRNA,u:unspliced mRNA),这个现象是由转录,剪切,和降解速率的共同调控的。
为了预测ds/dt和du/dt,需要首先知道转录,剪切,和降解速率,现有方法要么将转录速率设定为一个常数,如velocyto1,要么将其二值化,如scVelo3。同时,已有方法假设剪切与降解速率被所有基因和细胞共享。然而,异质的细胞群难以被共享的速率所概括。为了解决该问题,cellDancer使用机器学习预测每个细胞内每个基因的转录,剪切,和降解速率(图8)。
cellDancer单独地训练每个基因,目标是通过loss最小化predicted velocity和observed velocity的角度(图8)。图9展示了在小鼠胰腺内分泌发生过程中Sulf2基因的训练过程。
首先安装包:
pip install celldancer
# 预测RNA Velocity
loss_df, cellDancer_df=cd.velocity(cell_type_u_s,\
gene_list=gene_list,\
permutation_ratio=0.125,\
n_jobs=8)
# 可视化预测结果
ncols=5
height=math.ceil(len(gene_list)/5)*4
fig = plt.figure(figsize=(20,height))
for i in range(len(gene_list)):
ax = fig.add_subplot(math.ceil(len(gene_list)/ncols), ncols, i+1)
cdplt.scatter_gene(
ax=ax,
x='splice',
y='unsplice',
cellDancer_df=cellDancer_df,
custom_xlim=None,
custom_ylim=None,
colors=colormap.colormap_erythroid,
alpha=0.5,
s = 5,
velocity=True,
gene=gene_list[i])
ax.set_title(gene_list[i])
ax.axis('off')
plt.show()
# 映射到高维空间
cellDancer_df=cd.compute_cell_velocity(cellDancer_df=cellDancer_df, projection_neighbor_choice='gene', expression_scale='power10', projection_neighbor_size=10, speed_up=(100,100))
# 可视化高维空间映射的结果
fig, ax = plt.subplots(figsize=(10,10))
cdplt.scatter_cell(ax,
cellDancer_df,
colors=colormap.colormap_erythroid,
alpha=0.5,
s=10,
velocity=True,
legend='on',
min_mass=15,
arrow_grid=(20,20),
custom_xlim=[-6,13],
custom_ylim=[2,16], )
ax.axis('off')
plt.show()
更多功能,如pesudotime prediction;对转录,剪切和降解速率进行可视化;以及下游分析等参见官方手册的Case Study(https://guangyuwanglab2021.github.io/cellDancer_website)。
联系客服