單細(xì)胞RNA-seq生信分析全流程——第十二篇:RNA velocity

12.1 前言

單細(xì)胞數(shù)據(jù)集允許以高分辨率研究生物過程,例如早期發(fā)育鹅心。例如,雖然分析的是單個(gè)細(xì)胞而不是整個(gè)組織旭愧,但細(xì)胞表型的變化無法隨著時(shí)間的推移進(jìn)行跟蹤虐秋。這一事實(shí)源于單細(xì)胞測序方案的局限性。對細(xì)胞進(jìn)行測序后客给,它會(huì)被破壞,因此無法在以后的時(shí)間點(diǎn)再次測量其定義特征靶剑。值得注意的是,實(shí)驗(yàn)技術(shù)不僅無法測量不同時(shí)間的一般細(xì)胞概況缎讼,而且無法測量這些變化發(fā)生的速度坑匠。可以使用軌跡推理(trajectory inference厘灼,TI)領(lǐng)域的工具來及時(shí)恢復(fù)沿發(fā)展景觀的位置。然而设凹,經(jīng)典的TI方法不提供任何定向的動(dòng)態(tài)信息。此外月匣,這些算法傳統(tǒng)上不考慮轉(zhuǎn)錄組讀數(shù)和相似性之外的信息钻洒。

12.2 RNA velocity模型

細(xì)胞轉(zhuǎn)錄組譜的變化是由一系列事件觸發(fā)的:廣義上講素标,DNA 被轉(zhuǎn)錄產(chǎn)生所謂的未剪接前體信使 RNA (pre-mRNA)院刁。未剪接的前mRNA包含與翻譯相關(guān)的區(qū)域(外顯子)以及非編碼區(qū)域(內(nèi)含子)。這些非編碼區(qū)被剪接退腥,即去除,以形成剪接的成熟mRNA狡刘。雖然單細(xì)胞RNA測序 (scRNA-seq) 方案無法在多個(gè)時(shí)間點(diǎn)捕獲轉(zhuǎn)錄組,但它們確實(shí)包含了分離未剪接和剪接mRNA讀數(shù)所需的信息剑按。

12.3 胰腺內(nèi)分泌發(fā)生pancreatic endocrinogenesis中的RNA velocity推斷

作為如何推斷RNA velocity的實(shí)際示例,我們分析了胰腺的內(nèi)分泌發(fā)育[Bastidas-Ponce et al., 2019]艺蝴。在該系統(tǒng)中鸟废,前內(nèi)分泌細(xì)胞(Ductal、Ngn3 low EP盒延、Ngn3 high EP、Pre-endocrine)發(fā)育成四種內(nèi)分泌細(xì)胞類型(Alpha胯盯、Beta、Delta博脑、Epsilon)票罐。在這里,我們使用scVelo[Bergen et al., 2020]來推斷RNA velocity胶坠。

12.3.1 配置環(huán)境
from pathlib import Path

import scanpy as sc
import scvelo as scv
12.3.2 常規(guī)設(shè)置
scv.settings.set_figure_params("scvelo")
DATA_DIR = Path("../../data/")
DATA_DIR.mkdir(parents=True, exist_ok=True)

FILE_PATH = DATA_DIR / "pancreas.h5ad"
12.3.3 加載數(shù)據(jù)

為了使用scVelo估計(jì)RNA velocity繁堡,需要將未剪接和剪接計(jì)數(shù)存儲(chǔ)在AnnData的層槽中乡数。我們建議將整個(gè)計(jì)數(shù)(即未處理的數(shù)據(jù))傳遞到scVelo管道闻牡。

adata = scv.datasets.pancreas(file_path=FILE_PATH)
adata
AnnData object with n_obs × n_vars = 3696 × 27998
    obs: 'clusters_coarse', 'clusters', 'S_score', 'G2M_score'
    var: 'highly_variable_genes'
    uns: 'clusters_coarse_colors', 'clusters_colors', 'day_colors', 'neighbors', 'pca'
    obsm: 'X_pca', 'X_umap'
    layers: 'spliced', 'unspliced'
    obsp: 'distances', 'connectivities'

12.4 數(shù)據(jù)預(yù)處理

由于scRNA-seq數(shù)據(jù)充滿噪聲且稀疏,因此必須對數(shù)據(jù)進(jìn)行預(yù)處理玖翅,以便使用穩(wěn)態(tài)或EM模型推斷RNA velocity。第一步金度,我們過濾掉未剪接和剪接RNA均未充分表達(dá)的基因(此處至少20個(gè))严沥。接下來,對未剪接和剪接RNA的細(xì)胞大小進(jìn)行歸一化消玄,并在adata.X log1p中進(jìn)行計(jì)數(shù)轉(zhuǎn)換,以減少異常值的影響受扳。接下來,我們還識(shí)別和過濾高度可變的基因(此處為2000)勘高。

scv.pp.filter_and_normalize(adata, min_shared_counts=20, n_top_genes=2000)
Filtered out 20801 genes that are detected 20 counts (shared).
Normalized count data: X, spliced, unspliced.
Extracted 2000 highly variable genes.
Logarithmized X.

到目前為止浮定,數(shù)據(jù)預(yù)處理與經(jīng)典的scRNA-seq工作流程類似。對于RNA velocity桦卒,我們還通過其附近的平均表達(dá)來觀察結(jié)果。 這可以使用scVelo的moments函數(shù)來完成方灾。

sc.tl.pca(adata)
sc.pp.neighbors(adata)
scv.pp.moments(adata, n_pcs=None, n_neighbors=None)
computing moments based on connectivities
    finished (0:00:00) --> added 
    'Ms' and 'Mu', moments of un/spliced abundances (adata.layers)

在經(jīng)典的工作流程中,我們會(huì)對數(shù)據(jù)進(jìn)行聚類洞慎,推斷細(xì)胞類型嘿棘,并以二維嵌入方式可視化數(shù)據(jù)。幸運(yùn)的是鸟妙,對于胰腺數(shù)據(jù)挥吵,這些信息已經(jīng)被先驗(yàn)計(jì)算并可以直接使用花椭。

scv.pl.scatter(adata, basis="umap", color="clusters")

12.4.1 RNA velocity推斷-穩(wěn)態(tài)模型

第一步,我們計(jì)算穩(wěn)態(tài)模型下的RNA velocity矿辽。在這種情況下,我們用mode="deterministic"來調(diào)用scVelo的velocity函數(shù)雕蔽。

scv.tl.velocity(adata, mode="deterministic")
computing velocities
    finished (0:00:00) --> added 
    'velocity', velocity vectors for each individual cell (adata.layers)

雖然我們不鼓勵(lì)過度解釋高維速度向量到數(shù)據(jù)低維表示的投影,但scVelo提供了一種簡單的方法萎羔。

scv.tl.velocity_graph(adata, n_jobs=8)
scv.pl.velocity_embedding_stream(adata, basis="umap", color="clusters")
computing velocity graph (using 8/96 cores)
    finished (0:00:05) --> added 
    'velocity_graph', sparse matrix with cosine correlations (adata.uns)
computing velocity embedding
    finished (0:00:00) --> added
    'velocity_umap', embedded velocity vectors (adata.obsm)

12.4.2 RNA velocity推斷-EM模型

為了用EM模型計(jì)算RNA velocity贾陷,需要首先推斷剪接動(dòng)力學(xué)參數(shù)。scVelo的recover_dynamics函數(shù)負(fù)責(zé)完成髓废。

scv.tl.recover_dynamics(adata, n_jobs=8)
recovering dynamics (using 8/96 cores)
    finished (0:01:00) --> added 
    'fit_pars', fitted parameters for splicing dynamics (adata.var)

拼接模型的參數(shù)是通過最大化給定的可能性來推斷的该抒。為了研究哪些基因最適合scVelo,我們可以研究相應(yīng)的相圖以及推斷的軌跡(以紫色繪制)和穩(wěn)態(tài)比率(紫色虛線)凑保。此處,顯示的五個(gè)基因中的三個(gè)(Pcsk2欧引、Top2a、Ppp1r1a)呈現(xiàn)出(部分)杏仁形狀的相圖芝此。我們觀察到單一細(xì)胞類型(Top2a、Ppp1r1a)內(nèi)或跨多種細(xì)胞類型(Pcsk2岸更,從前內(nèi)分泌細(xì)胞到 Alpha 和 Beta)的明顯轉(zhuǎn)變。就Nfib而言怎炊,我們觀察到兩個(gè)處于穩(wěn)態(tài)的細(xì)胞群。這很可能是對Ngn3低/高EP細(xì)胞周圍表型流形進(jìn)行欠采樣的人為因素评肆。類似地,Ghrl在Epsilon細(xì)胞中高度表達(dá),但由于簇大小較小院仿,表達(dá)量很少。雖然當(dāng)前的最佳實(shí)踐僅限于手動(dòng)分析模型擬合度和置信度歹垫,但最近提出的方法可以幫助自動(dòng)化該過程(新方向)。 在這里排惨,Nfib和Ghrl 將被分配較低的置信度分?jǐn)?shù)。

top_genes = adata.var["fit_likelihood"].sort_values(ascending=False).index
scv.pl.scatter(adata, basis=top_genes[:5], color="clusters", frameon=False)


估計(jì)動(dòng)力學(xué)速率(存儲(chǔ)為adata.obsfit_alpha鹿驼、fit_betafit_gamma列)后辕宏,我們可以計(jì)算速度和二維UMAP嵌入的投影。

scv.tl.velocity(adata, mode="dynamical")
scv.tl.velocity_graph(adata, n_jobs=8)
scv.pl.velocity_embedding_stream(adata, basis="umap")
computing velocities
    finished (0:00:02) --> added 
    'velocity', velocity vectors for each individual cell (adata.layers)
computing velocity graph (using 8/96 cores)
    finished (0:00:02) --> added 
    'velocity_graph', sparse matrix with cosine correlations (adata.uns)
computing velocity embedding
    finished (0:00:00) --> added
    'velocity_umap', embedded velocity vectors (adata.obsm)

基于2D投影凄鼻,EM模型更穩(wěn)健地捕獲導(dǎo)管細(xì)胞中的細(xì)胞周期聚假。此外,穩(wěn)態(tài)模型的投影表現(xiàn)出從阿爾法細(xì)胞到前內(nèi)分泌細(xì)胞的“回流”膘格。然而,為了進(jìn)行嚴(yán)格的定量分析瘪贱,我們建議使用CellRank等下游工具來評估模型差異并得出結(jié)論。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末其徙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子唾那,更是在濱河造成了極大的恐慌,老刑警劉巖闹获,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異龟虎,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鲤妥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門拱雏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人铸抑,你說我怎么就攤上這事∪笛矗” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵凳宙,是天一觀的道長职祷。 經(jīng)常有香客問我,道長有梆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任泥耀,我火速辦了婚禮,結(jié)果婚禮上痰催,老公的妹妹穿的比我還像新娘。我一直安慰自己夸溶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布扫皱。 她就那樣靜靜地躺著,像睡著了一般韩脑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上段多,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天,我揣著相機(jī)與錄音加缘,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛递雀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缀程,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杨凑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起撩满,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎昭躺,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體领炫,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡张咳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脚猾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡族沃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情常空,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布漓糙,位于F島的核電站烘嘱,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蝇庭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一哮内、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧北发,春花似錦、人聲如沸琳拨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至密任,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間批什,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工驻债, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人合呐。 一個(gè)月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像冻辩,于是被迫代替她去往敵國和親猖腕。 傳聞我的和親對象是個(gè)殘疾皇子恨闪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容