使用Palantir進行單細胞發(fā)育軌跡推斷分析

Palantir是一種對單細胞測序數(shù)據(jù)進行分化發(fā)育軌跡推斷的算法盐肃,于2019年發(fā)表在Nature Biotechnology上罢缸。Palantir將細胞分化模擬為一個隨機的過程,其中干細胞通過一系列步驟最終分化為終末分化的細胞颠放。Palantir能有效地捕獲細胞分化狀態(tài)的連續(xù)性和細胞命運決定的隨機性岖是。

安裝所依賴的python包

Palantir是基于python3開發(fā)的,可以直接通過pip進行安裝

pip install PhenoGraph
pip install rpy2pip install palantir

下載示例數(shù)據(jù)集

在palantir包的data文件夾下存放了一個示例數(shù)據(jù)集铭乾,以下分析流程使用這個數(shù)據(jù)集進行分析。

wget -c https://github.com/dpeerlab/Palantir/raw/master/data/marrow_sample_scseq_counts.csv.gz

加載示例數(shù)據(jù)集

Palantir可以從csv文件邑雅,mtx文件片橡,10x count文件和HDF文件讀取scRNA-seq數(shù)據(jù)。csv文件應為count的cell X gene的表達矩陣淮野。

# 加載所需的python包
import palantir
# Plotting and miscellaneous imports
import os
import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
%matplotlib inline
# 加載示例數(shù)據(jù)集
palantir_dir = os.path.expanduser('~/dongwei/palantir/data/')
counts = palantir.io.from_csv(palantir_dir + 'marrow_sample_scseq_counts.csv.gz')
counts
image

對于其他格式的文件捧书,可以使用palantir.io.from_mtxpalantir.io.from_10x骤星,palantir.io.from_10x_HDF5等函數(shù)進行讀取经瓷。

原始數(shù)據(jù)進行質(zhì)控

Palantir可以對原始數(shù)據(jù)進行質(zhì)控,使用palantir.preprocess.filter_counts_data函數(shù)用于刪除低分子計數(shù)的細胞和具有低檢測率的基因洞难。

# 查看原始數(shù)據(jù)的特征
fig, ax = palantir.plot.plot_molecules_per_cell_and_gene(counts)
# 過濾細胞和基因
filtered_counts = palantir.preprocess.filter_counts_data(counts, cell_min_molecules=1000, genes_min_cells=10)
image

數(shù)據(jù)的歸一化和標準化

Palantir將每個細胞的計數(shù)除以檢測到的總分子作為歸一化的指標舆吮,還可以對數(shù)據(jù)進行l(wèi)og值的轉(zhuǎn)換。

norm_df = palantir.preprocess.normalize_counts(counts)
norm_df = palantir.preprocess.log_transform(norm_df)

數(shù)據(jù)的PCA降維

# PCA reduction
pca_projections, _ = palantir.utils.run_pca(norm_df)
# Run diffusion maps
dm_res = palantir.utils.run_diffusion_maps(pca_projections, n_components=5)
ms_data = palantir.utils.determine_multiscale_space(dm_res)

Palantir可以使用MAGIC算法對單細胞的表達數(shù)據(jù)進行imputation處理

# MAGIC imputation
imp_df = palantir.utils.run_magic_imputation(norm_df, dm_res)

tSNE降維可視化

# tSNE visualization
tsne = palantir.utils.run_tsne(ms_data)
fig, ax = palantir.plot.plot_tsne(tsne)
image
fig, ax = palantir.plot.plot_tsne_by_cell_sizes(counts, tsne)
image

繪制特征基因的表達譜

使用plot_gene_expression函數(shù)队贱,可以在tSNE圖上顯示一些特征基因的表達譜色冀。

palantir.plot.plot_gene_expression(imp_df, tsne, ['CD34', 'MPO', 'GATA1', 'IRF8'])
image

對降維后的數(shù)據(jù)進行聚類分群

Palantir使用Phenograph對數(shù)據(jù)進行聚類,并進行可視化

# 數(shù)據(jù)聚類
clusters = palantir.utils.determine_cell_clusters(pca_projections)
image
# 聚類結(jié)果可視化
palantir.plot.plot_cell_clusters(tsne, clusters )
image

運行Palantir進行分化發(fā)育軌跡推斷

可以指定一個近似的最早的起始細胞來運行Palantir柱嫌。Palantir可以自動確定終末分化狀態(tài)的細胞锋恬,也可以使用termine_states參數(shù)指定它們。

# 運行Palantir
start_cell = 'Run5_164698952452459'
pr_res = palantir.core.run_palantir(ms_data, start_cell, num_waypoints=500)

Palantir運行完后生成的結(jié)果包含以下數(shù)據(jù):
Pseudotime: Pseudo time ordering of each cell
Terminal state probabilities: Matrix of cells X terminal states. Each entry represents the probability of the corresponding cell reaching the respective terminal state
Entropy: A quantiative measure of the differentiation potential of each cell computed as the entropy of the multinomial terminal state probabilities

# 查看自動生成的終末分化的細胞
pr_res.branch_probs.columns
image
# 根據(jù)已有的生物學知識對終末分化的細胞進行重命名
mapping = pd.Series(index=['DC', 'Mono', 'Ery'])
mapping['DC'] = tsne.loc[pr_res.branch_probs.columns, 'x'].idxmax()
mapping['Ery'] = tsne.loc[pr_res.branch_probs.columns, 'y'].idxmin()
mapping['Mono'] = pr_res.branch_probs.columns.difference(mapping.values)[0]
mapping = pd.Series(mapping.index, index=mapping)
pr_res.branch_probs.columns = mapping[pr_res.branch_probs.columns]
pr_res.branch_probs = pr_res.branch_probs.loc[:, ['Ery', 'Mono', 'DC']]

可視化Palantir的結(jié)果

使用plot.plot_palantir_results函數(shù)對palantir運行的結(jié)果進行可視化

palantir.plot.plot_palantir_results(pr_res, tsne)
image

查看一些細胞在不同終末分化細胞中的分布比例

cells = ['Run5_164698952452459', 'Run5_170327461775790', 'Run4_121896095574750', ]
palantir.plot.plot_terminal_state_probs(pr_res, cells) 
image

高亮一些細胞查看他們的分布

palantir.plot.highlight_cells_on_tsne(tsne, cells)
image

基因表達趨勢分析

Palantir使用Generalized Additive Models(GAMs)模型計算基因在不同分化細胞中的表達趨勢

# 選擇特征基因
genes = ['CD34', 'MPO', 'GATA1', 'IRF8']
# 計算基因的表達趨勢
gene_trends = palantir.presults.compute_gene_trends( pr_res, imp_df.loc[:, genes])
image

基因表達趨勢的可視化

palantir.plot.plot_gene_trends(gene_trends)
image

繪制基因表達趨勢熱圖

palantir.plot.plot_gene_trend_heatmaps(gene_trends)
image

查看相關(guān)函數(shù)的使用說明

對于一些函數(shù)的參數(shù)和使用方法编丘,可以通過help()函數(shù)查看其相關(guān)使用說明与学,如:

help(palantir.core.run_palantir)
image
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嘉抓,隨后出現(xiàn)的幾起案子索守,更是在濱河造成了極大的恐慌,老刑警劉巖抑片,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卵佛,死亡現(xiàn)場離奇詭異,居然都是意外死亡敞斋,警方通過查閱死者的電腦和手機截汪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渺尘,“玉大人挫鸽,你說我怎么就攤上這事∨父” “怎么了丢郊?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵盔沫,是天一觀的道長。 經(jīng)常有香客問我枫匾,道長架诞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任干茉,我火速辦了婚禮谴忧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘角虫。我一直安慰自己沾谓,他們只是感情好,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布戳鹅。 她就那樣靜靜地躺著均驶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪枫虏。 梳的紋絲不亂的頭發(fā)上妇穴,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音隶债,去河邊找鬼腾它。 笑死,一個胖子當著我的面吹牛死讹,可吹牛的內(nèi)容都是我干的瞒滴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼回俐,長吁一口氣:“原來是場噩夢啊……” “哼逛腿!你這毒婦竟也來了稀并?” 一聲冷哼從身側(cè)響起仅颇,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎碘举,沒想到半個月后忘瓦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡引颈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年耕皮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝙场。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡凌停,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出售滤,到底是詐尸還是另有隱情罚拟,我是刑警寧澤台诗,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站赐俗,受9級特大地震影響拉队,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阻逮,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一粱快、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧叔扼,春花似錦事哭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至食呻,卻和暖如春流炕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背仅胞。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工每辟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人干旧。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓渠欺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親椎眯。 傳聞我的和親對象是個殘疾皇子挠将,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

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