在发育过程中、对刺激的反应以及整个生命过程中,细胞会从一种功能状态转变为另一种状态。处于不同状态的细胞表达不同的基因组,产生动态的蛋白质和代谢物库以完成其功能。当细胞在状态之间转换时,会经历转录重构的过程,一些基因被沉默,而另一些基因则被新激活。这些短暂的状态往往难以表征,因为在更稳定的终点状态之间纯化细胞可能很困难或不可能。
Monocle引入单细胞轨迹分析的策略,使用算法来学习每个细胞在动态生物过程中必须经历的基因表达变化序列。一旦学习了基因表达变化的整体“轨迹”,Monocle就可以将每个细胞放置在轨迹的正确位置。然后,使用Monocle的差异分析工具包来找到在轨迹过程中被调控的基因,如“根据伪时间变化的基因”。如果过程有多个结果,Monocle将重建一个“分支”轨迹,这些分支对应于细胞的“决策”。
monocle构建轨迹只需要一行代码:
cds <- learn_graph(cds)
plot_cells(cds,
color_cells_by = "cell.type",
label_groups_by_cluster=FALSE,
label_leaves=FALSE,
label_branch_points=FALSE)
一旦我们学习了图,我们就可以根据细胞在发育程序中的进展对其进行排序。Monocle通过伪时间来衡量这一进展。
cds <- order_cells(cds)
plot_cells(cds,
color_cells_by = "pseudotime",
label_cell_groups=FALSE,
label_leaves=FALSE,
label_branch_points=FALSE,
graph_label_size=1.5)
也可以使用3D轨迹,只需要在降维的时候使用3个维度就可以了。
cds_3d <- reduce_dimension(cds, max_components = 3)
cds_3d <- cluster_cells(cds_3d)
cds_3d <- learn_graph(cds_3d)
cds_3d <- order_cells(cds_3d, root_pr_nodes=get_earliest_principal_node(cds))
cds_3d_plot_obj <- plot_cells_3d(cds_3d, color_cells_by="partition")