11.1 前言
單細(xì)胞測(cè)序分析提供生物組織的高分辨率測(cè)量棚赔。因此患民,此類(lèi)技術(shù)可以幫助破譯和理解細(xì)胞異質(zhì)性和生物過(guò)程的動(dòng)態(tài)寸认。相應(yīng)的研究包括量化細(xì)胞命運(yùn)以及識(shí)別驅(qū)動(dòng)該過(guò)程的基因洁奈。然而,由于在經(jīng)典單細(xì)胞 RNA 測(cè)序(scRNA-seq)方案中進(jìn)行測(cè)序時(shí)細(xì)胞會(huì)被破壞栋盹,因此無(wú)法跟蹤它們的發(fā)育情況施逾,例如隨時(shí)間變化的基因表達(dá)譜。因此例获,需要根據(jù)測(cè)量的快照snapshot數(shù)據(jù)來(lái)估計(jì)底層動(dòng)態(tài)過(guò)程汉额。
盡管傳統(tǒng)上樣品是從單個(gè)實(shí)驗(yàn)時(shí)間點(diǎn)采集的,但仍可以觀察到多種細(xì)胞類(lèi)型榨汤。這種多樣性源于生物過(guò)程的異步性質(zhì)蠕搜。因此,可以觀察到一系列的發(fā)育過(guò)程件余。重建發(fā)展過(guò)程是該領(lǐng)域的軌跡推斷(trajectory inference讥脐,TI)的目標(biāo)遭居。這項(xiàng)任務(wù)是通過(guò)根據(jù)發(fā)育過(guò)程對(duì)觀察到的細(xì)胞狀態(tài)進(jìn)行排序來(lái)實(shí)現(xiàn)的。通過(guò)將離散注釋映射到連續(xù)域(即所謂的偽時(shí)間)旬渠,狀態(tài)沿著發(fā)展方向?qū)R俱萍。
偽時(shí)間根據(jù)細(xì)胞在發(fā)育過(guò)程中各自的階段對(duì)細(xì)胞進(jìn)行相對(duì)排列。不太成熟的細(xì)胞分配較小的值告丢,成熟的細(xì)胞分配較大的值枪蘑。例如,在研究骨髓樣本時(shí)岖免,造血干細(xì)胞被指定為低偽時(shí)間岳颇,而紅細(xì)胞被指定為高偽時(shí)間。對(duì)于單細(xì)胞RNA測(cè)序數(shù)據(jù)颅湘,分配是基于細(xì)胞的轉(zhuǎn)錄組圖譜话侧。此外,構(gòu)建通常需要指定整個(gè)過(guò)程開(kāi)始的初始或等效的根細(xì)胞闯参。
11.2 擬時(shí)序的建立
偽時(shí)間構(gòu)建通常遵循一個(gè)常見(jiàn)的工作流程:第一步瞻鹏,將超高維單細(xì)胞數(shù)據(jù)投影到較低維的表示上。這一過(guò)程通過(guò)觀察動(dòng)態(tài)過(guò)程在低維流形上進(jìn)展而得到證實(shí)鹿寨。在實(shí)踐中新博,偽時(shí)間方法可能依賴于主成分或擴(kuò)散成分(例如擴(kuò)散偽時(shí)間 (DPT) 。接下來(lái)脚草,偽時(shí)間是根據(jù)以下原則之一構(gòu)建的赫悄。
首先對(duì)觀察結(jié)果進(jìn)行聚類(lèi),然后確定這些聚類(lèi)之間的連接馏慨」』矗可以對(duì)簇進(jìn)行排序,從而構(gòu)建偽時(shí)間写隶。今后同诫,我們將這種方法稱為集群方法。經(jīng)典的聚類(lèi)算法包括k-means樟澜,Leiden或?qū)哟尉垲?lèi)。簇可以基于相似性或通過(guò)構(gòu)建最小生成樹(shù)(MST)來(lái)連接叮盘。
圖方法graph approach首先找到觀測(cè)值的低維表示之間的聯(lián)系秩贰。此過(guò)程定義了一個(gè)圖表,基于該圖表定義了集群柔吼,從而定義了排序毒费。例如,PAGA將圖劃分為L(zhǎng)eiden簇并估計(jì)它們之間的連接愈魏。直觀上觅玻,這種方法保留了數(shù)據(jù)的全局拓?fù)湎爰剩瑫r(shí)以較低的分辨率進(jìn)行分析。因此溪厘,提高了計(jì)算效率胡本。
基于流形學(xué)習(xí)的方法Manifold-learning based approaches與集群方法類(lèi)似。然而畸悬,簇之間的連接是通過(guò)使用主曲線或圖形來(lái)估計(jì)基礎(chǔ)軌跡來(lái)定義的侧甫。主曲線找到一條連接高維空間中的細(xì)胞觀察結(jié)果的一維曲線。這種方法的一個(gè)著名代表是Slingshot蹋宦。
概率框架將轉(zhuǎn)移概率分配給有序的細(xì)胞對(duì)披粟。每個(gè)轉(zhuǎn)移概率都量化參考細(xì)胞是另一個(gè)細(xì)胞的祖先的可能性。這些概率定義了用于定義偽時(shí)間的隨機(jī)過(guò)程冷冗。例如守屉,DPT被定義為隨機(jī)游走的連續(xù)狀態(tài)之間的差異。相比之下蒿辙,Palantir將軌跡本身建模為馬爾可夫鏈拇泛。雖然這兩種方法都依賴于概率框架,但它們需要指定根細(xì)胞须板。偽時(shí)間本身是相對(duì)于該細(xì)胞計(jì)算的碰镜。
TI是一個(gè)經(jīng)過(guò)深入研究的領(lǐng)域,提供了豐富的方法习瑰。要應(yīng)用適當(dāng)?shù)姆椒▉?lái)分析單細(xì)胞數(shù)據(jù)集绪颖,首先需要了解生物過(guò)程本身。這種理解尤其包括該過(guò)程的性質(zhì)甜奄,即柠横,例如,它是否是線性的课兄、環(huán)狀的或支化的牍氛。類(lèi)似地,同一數(shù)據(jù)集中的正交過(guò)程限制了適用的TI方法烟阐。為了幫助識(shí)別合適的工具搬俊,dynguidelines[Deconinck et al., 2021]提供了算法及其特征的詳盡概述。
11.3 下游任務(wù)及展望
盡管TI和偽時(shí)間已經(jīng)可以提供有價(jià)值的見(jiàn)解蜒茄,但它們通常充當(dāng)更細(xì)粒度分析的墊腳石唉擂。例如,識(shí)別終態(tài)是一個(gè)可以研究的經(jīng)典生物學(xué)問(wèn)題檀葛。同樣玩祟,可以根據(jù)TI和偽時(shí)間來(lái)識(shí)別譜系分歧和驅(qū)動(dòng)命運(yùn)決定的基因∮炝可以回答哪個(gè)問(wèn)題以及如何找到答案通常是特定于方法的空扎。例如藏鹊,Palantir將終端狀態(tài)識(shí)別為其構(gòu)建的馬爾可夫鏈的吸收狀態(tài)。
軌跡推斷的成功有據(jù)可查转锈,因此盘寡,人們提出了許多方法。然而黑忱,隨著測(cè)序技術(shù)的進(jìn)步宴抚,新的信息來(lái)源變得可用。例如甫煞,ATAC-seq菇曲、CITE-seq和 DOGMA-seq可測(cè)量轉(zhuǎn)錄組以外的其他模式。譜系追蹤和代謝標(biāo)記甚至提供給定細(xì)胞的(可能的)未來(lái)狀態(tài)抚吠。因此常潮,未來(lái)的TI工具將能夠包含更多信息來(lái)更準(zhǔn)確、更穩(wěn)健地估計(jì)軌跡和偽時(shí)間楷力,并允許回答新問(wèn)題喊式。例如,RNA velocity是一種使用未剪接和剪接mRNA來(lái)推斷超越經(jīng)典靜態(tài)信息的定向動(dòng)態(tài)信息的技術(shù)萧朝。
11.4 推斷成人骨髓的偽時(shí)間
為了展示如何構(gòu)建偽時(shí)間并比較不同的偽時(shí)間岔留,我們研究了成人骨髓的數(shù)據(jù)集[Setty et al., 2019]。
11.4.1 環(huán)境設(shè)置
from pathlib import Path
import scanpy as sc
11.4.2 常規(guī)設(shè)置
DATA_DIR = Path("../../data/")
DATA_DIR.mkdir(parents=True, exist_ok=True)
FILE_NAME = DATA_DIR / "bone_marrow.h5ad"
11.4.3 數(shù)據(jù)加載
adata = sc.read(
filename=FILE_NAME,
backup_url="https://figshare.com/ndownloader/files/35826944",
)
adata
AnnData object with n_obs × n_vars = 5780 × 27876
obs: 'clusters', 'palantir_pseudotime', 'palantir_diff_potential'
var: 'palantir'
uns: 'clusters_colors', 'palantir_branch_probs_cell_types'
obsm: 'MAGIC_imputed_data', 'X_tsne', 'palantir_branch_probs'
layers: 'spliced', 'unspliced'
要構(gòu)建偽時(shí)間检柬,必須對(duì)數(shù)據(jù)進(jìn)行預(yù)處理献联。在這里,我們過(guò)濾掉僅在少數(shù)細(xì)胞(此處至少20個(gè))中表達(dá)的基因何址。值得注意的是里逆,稍后的偽時(shí)間的構(gòu)造對(duì)于閾值的精確選擇是穩(wěn)健的。在第一次基因過(guò)濾之后用爪,細(xì)胞大小被歸一化原押,并計(jì)數(shù)log1p轉(zhuǎn)換以減少異常值的影響。像往常一樣偎血,我們還識(shí)別和注釋高度可變的基因诸衔。最后,構(gòu)建一個(gè)最近鄰圖颇玷,我們將在此基礎(chǔ)上定義偽時(shí)間署隘。主成分的數(shù)量是根據(jù)解釋的方差來(lái)選擇的。
sc.pp.filter_genes(adata, min_counts=20)
sc.pp.normalize_total(adata)
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata)
sc.tl.pca(adata)
sc.pp.neighbors(adata, n_pcs=10)
由細(xì)胞類(lèi)型注釋著色的二維t-SNE表示表明細(xì)胞類(lèi)型很好地聚集在一起亚隙。此外,分化層次是可見(jiàn)的违崇。
sc.pl.scatter(adata, basis="tsne", color="clusters")
11.4.4 擬時(shí)序構(gòu)建
為了計(jì)算擴(kuò)散擬時(shí)間(diffusion pseudotime阿弃,DPT)诊霹,首先需要計(jì)算相應(yīng)的擴(kuò)散圖。
sc.tl.diffmap(adata)
骨髓中的分化層次是眾所周知的渣淳。然而脾还,我們只知道發(fā)育過(guò)程以造血干細(xì)胞的形式開(kāi)始,但不知道我們數(shù)據(jù)集中相應(yīng)簇中的具體細(xì)胞是哪個(gè)細(xì)胞入愧。為了識(shí)別假定的初始細(xì)胞鄙漏,我們研究了各個(gè)擴(kuò)散成分。我們識(shí)別出在一維(在我們的例子中為 3 維)中具有最極端擴(kuò)散成分的干細(xì)胞棺蛛。
# Setting root cell as described above
root_ixs = adata.obsm["X_diffmap"][:, 3].argmin()
sc.pl.scatter(
adata,
basis="diffmap",
color=["clusters"],
components=[2, 3],
)
adata.uns["iroot"] = root_ixs
sc.tl.dpt(adata)
不同的偽時(shí)間方法給出不同的結(jié)果怔蚌。有時(shí),一個(gè)偽時(shí)間可以更準(zhǔn)確地捕捉潛在的發(fā)展過(guò)程旁赊。在這里桦踊,我們將剛剛計(jì)算的DPT與預(yù)先計(jì)算的Palantir偽時(shí)間進(jìn)行比較。比較不同偽時(shí)間的一種選擇是對(duì)數(shù)據(jù)的低維嵌入(此處為 t-SNE)進(jìn)行著色终畅。在這里籍胯,與所有其他細(xì)胞類(lèi)型相比,CLP簇中的DPT極高离福。相比之下杖狼,Palantir假時(shí)間隨著發(fā)育成熟而不斷增加。
sc.pl.scatter(
adata,
basis="tsne",
color=["dpt_pseudotime", "palantir_pseudotime"],
color_map="gnuplot2",
)
我們可以研究分配給每個(gè)細(xì)胞類(lèi)型簇的偽時(shí)間值的分布妖爷,而不是對(duì)數(shù)據(jù)的低維表示進(jìn)行著色蝶涩。該表示再次表明CLP簇在DPT情況下形成異常值。此外赠涮,HSC_1和HSC_2等簇包含多個(gè)偽時(shí)間增加的細(xì)胞子寓。 這些夸大的值與我們先前的生物學(xué)知識(shí)形成鮮明對(duì)比,即這些簇構(gòu)成了發(fā)育過(guò)程的開(kāi)始笋除。
sc.pl.violin(
adata,
keys=["dpt_pseudotime", "palantir_pseudotime"],
groupby="clusters",
rotation=45,
order=[
"HSC_1",
"HSC_2",
"Precursors",
"Ery_1",
"Ery_2",
"Mono_1",
"Mono_2",
"CLP",
"DCs",
"Mega",
],
)
考慮到這些觀察和關(guān)于骨髓發(fā)育的先驗(yàn)知識(shí)斜友,我們認(rèn)為可以繼續(xù)使用Palantir擬時(shí)間。