在發(fā)育過程中、對刺激的反應(yīng)以及整個(gè)生命過程中,細(xì)胞會(huì)從一種功能狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài)。處于不同狀態(tài)的細(xì)胞表達(dá)不同的基因組,產(chǎn)生動(dòng)態(tài)的蛋白質(zhì)和代謝物庫以完成其功能。當(dāng)細(xì)胞在狀態(tài)之間轉(zhuǎn)換時(shí),會(huì)經(jīng)歷轉(zhuǎn)錄重構(gòu)的過程,一些基因被沉默,而另一些基因則被新激活。這些短暫的狀態(tài)往往難以表征,因?yàn)樵诟€(wěn)定的終點(diǎn)狀態(tài)之間純化細(xì)胞可能很困難或不可能。
Monocle引入單細(xì)胞軌跡分析的策略,使用算法來學(xué)習(xí)每個(gè)細(xì)胞在動(dòng)態(tài)生物過程中必須經(jīng)歷的基因表達(dá)變化序列。一旦學(xué)習(xí)了基因表達(dá)變化的整體“軌跡”,Monocle就可以將每個(gè)細(xì)胞放置在軌跡的正確位置。然后,使用Monocle的差異分析工具包來找到在軌跡過程中被調(diào)控的基因,如“根據(jù)偽時(shí)間變化的基因”。如果過程有多個(gè)結(jié)果,Monocle將重建一個(gè)“分支”軌跡,這些分支對應(yīng)于細(xì)胞的“決策”。
monocle構(gòu)建軌跡只需要一行代碼:
cds <- learn_graph(cds)
plot_cells(cds,
color_cells_by = "cell.type",
label_groups_by_cluster=FALSE,
label_leaves=FALSE,
label_branch_points=FALSE)
一旦我們學(xué)習(xí)了圖,我們就可以根據(jù)細(xì)胞在發(fā)育程序中的進(jìn)展對其進(jìn)行排序。Monocle通過偽時(shí)間來衡量這一進(jìn)展。
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軌跡,只需要在降維的時(shí)候使用3個(gè)維度就可以了。
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")