定量免疫浸潤在單細胞研究中的應(yīng)用

最近聽說定量免疫浸潤很火,于是我也報名參加了果子老師的課程傲茄,跑了幾個R包毅访,你比如說xCell啊,GSVA啊盘榨,MCPcounter啊喻粹,ConsensusTME,ImmuneSubtypeClassifier草巡,當(dāng)然還有大名鼎鼎的CIBERSORT守呜。安裝R包跑實例文件這件事是我經(jīng)常做的,但是很少做的這么系統(tǒng)山憨。相比于跑R包查乒,對我的更大難點在于理解定量免疫浸潤這件事。

免疫浸潤工具箱

也有國產(chǎn)在線的:http://bioinfo.life.hust.edu.cn/ImmuCellAI#!/

定量免疫浸潤在說一件什么事呢郁竟?

從平均人說起

平均人(average man) 以人體測量結(jié)果平均值為基礎(chǔ)建立的人體模型玛迄。其身體結(jié)構(gòu)的各個尺寸均與特定總體的平均值相對應(yīng),可反映特定群體身體尺寸的平均狀況枪孩。

我們知道憔晒,人有性別/年齡/身高/胖瘦/嗓門大小。蔑舞。拒担。。等等屬性攻询,每個人不同从撼,一般來看東北人和廣東人還是有區(qū)別的,雖然我們不需要一個一個地比較钧栖。

平均人就好比傳統(tǒng)的bulk RNA測序低零,拿到一塊組織去測序,得到一個樣本各個基因的表達情況拯杠。所以我們拿到bulk RNA的結(jié)果掏婶,其準確度相當(dāng)于我們對歪果仁的模糊印象。

定量免疫浸潤說的是我們憑著這個模糊印象潭陪,可以大致推斷出歪果仁某幾種特殊類型的比例(或在某方面的分值)雄妥。這個比例或者分值最蕾,在一定程度上也可以反應(yīng)該地方人口的異質(zhì)性:你看,本來只是一個平均值老厌,但是里面卻蘊含著可愛的異質(zhì)性瘟则。

定量免疫浸潤(Immune infiltration)

首先,“浸潤”是啥意思枝秤?

嚴陣 《牡丹園記》:“這蒙蒙的綠意醋拧,這團團的紅霧,真像剛滴到宣紙上的水彩一樣淀弹,慢慢地浸潤開來丹壕。”

這里面的“浸潤”很好的詮釋了其“逐漸滲透垦页,引申為積久而發(fā)生作用”的意義雀费。所以“浸潤”有逐漸滲透的意義。

我們提取臨床癌癥組織去測序(bulk的)痊焊,并不是純腫瘤的結(jié)果(腫瘤有純的嗎?來一打)忿峻,在測序結(jié)果中我們會發(fā)現(xiàn)薄啥,一些屬于血管的基因,屬于免疫系統(tǒng)的基因也有表達逛尚。這時候我們就知道垄惧,測的是個混合體,有腫瘤細胞绰寞,有免疫細胞到逊,有血管,有細胞外基質(zhì)滤钱。

定量免疫浸潤通過簡單的基因表達矩陣數(shù)據(jù)觉壶,將免疫細胞類型含量計算出來。隨著算法的發(fā)展件缸,到后來也不僅是免疫細胞了铜靶,可以是很多細胞類型。

好吧他炊,我已經(jīng)被浸潤了

基本的套路是計算每個樣本在不同細胞類型中的分值争剿,主要的算法分為兩類,包括:

  • 基于Marker gene的算法, 如GSE(V)A
  • 基于 deconvolution的算法痊末, 如CIBERSORT

這倆算法前者大家盡管也不懂蚕苇,但是沒有那么嚇人,第二個反卷積(deconvolution)真的是聽著就頭大凿叠。那么涩笤,到底什么是反卷積嚼吞?

在理解這個反卷積之前我們來看看在數(shù)學(xué)上卷積是什么:

卷積就像加減乘除一樣是一種運算,只是低等數(shù)學(xué)用不到辆它,就沒教誊薄,它是指:把二元函數(shù) U(x,y) = f(x)g(y) 卷成一元函數(shù) V(t) ,俗稱降維打擊锰茉。

在我們的bulk RNA的例子中呢蔫,就是把平均值看作單個細胞表達值與某個函數(shù)(和檢測方法有關(guān))的卷積。獲得樣本bulk RNA 表達量的過程飒筑,就是一個卷積的過程片吊,而反卷積,是卷積運算的逆運算协屡。

鑒于我們bulk RNA 的數(shù)據(jù)已經(jīng)做的很全了俏脊,TCGA數(shù)據(jù)庫里面有大量的已經(jīng)卷積好的表達量,我們可以用反卷積的方法肤晓,看看樣本中到底免疫細胞有著怎樣的比重(分布)爷贫。而這,也這不也是在說明樣本的異質(zhì)性嗎补憾?

比如一個定量免疫浸潤的套路是這樣的:

  • 公共數(shù)據(jù)庫下載數(shù)據(jù)
  • 基于表達譜做定量免疫浸潤(如CIBERSORT)
  • 得到樣本細胞的異質(zhì)性
  • 統(tǒng)計(富集分析)
  • 驗證

在眾多工具中CIBERSORT的應(yīng)用是最為廣泛的漫萄,所以這篇文獻是有必要打印出來慢慢評鑒的。在這篇文獻中盈匾,我們也看到了一種把bulk RNA和scRNA結(jié)合起來的橋梁:

Determining Cell Type Abundance and Expression From Bulk Tissues With Digital Cytometry

CIBERSORT函數(shù)在果子老師的課上講的很詳細腾务,這里僅做簡單的復(fù)現(xiàn),看看CIBERSORT究竟做了什么削饵。更多介紹參見官網(wǎng):https://cibersort.stanford.edu/

source("CIBERSORT/CIBERSORT.R") 
.libPaths("C:\\Users\\86158\\Documents\\R\\win-library\\3.6")

讀入自帶的 signature matrix(細胞類型打分矩陣)岩瘦,并看看他的格式如何:

sig_matrix <- "CIBERSORT/LM22.txt"
sig_matrix
sdf<- readr::read_tsv(sig_matrix)

 sdf[1:4,1:4]
# A tibble: 4 x 4
  `Gene symbol` `B cells naive` `B cells memory` `Plasma cells`
  <chr>                   <dbl>            <dbl>          <dbl>
1 ABCB4                   556.              10.7           7.23
2 ABCB9                    15.6             22.1         653.  
3 ACAP1                   215.             322.           38.6 
4 ACHE                     15.1             16.6          22.1 

colnames(sdf)
 [1] "Gene symbol"                  "B cells naive"                "B cells memory"               "Plasma cells"                
 [5] "T cells CD8"                  "T cells CD4 naive"            "T cells CD4 memory resting"   "T cells CD4 memory activated"
 [9] "T cells follicular helper"    "T cells regulatory (Tregs)"   "T cells gamma delta"          "NK cells resting"            
[13] "NK cells activated"           "Monocytes"                    "Macrophages M0"               "Macrophages M1"              
[17] "Macrophages M2"               "Dendritic cells resting"      "Dendritic cells activated"    "Mast cells resting"          
[21] "Mast cells activated"         "Eosinophils"                  "Neutrophils"                 

也就是有22種細胞類型。其實我們是可以根據(jù)自己的樣本類型來利用scrna的數(shù)據(jù)來制作這個矩陣的窿撬。制作這個有什么用启昧?下面再說。

讀入表達譜數(shù)據(jù)尤仍。在這里了停一下箫津,三秒禪,應(yīng)該是什么格式的數(shù)據(jù)宰啦,count苏遥?TPM?

CIBERSORT接受的數(shù)據(jù)是不需要log的赡模,如果你一不小心取了log田炭,也不要害怕,他會幫你再去掉漓柑。

 mixture_file = 'exprMat.txt'
exp<- read.table(mixture_file,header = T)

exp[1:4,1:4]
  rownames.exprMat. LAU125 LAU355 LAU1255
1              A1BG   0.82   0.58    0.81
2              A1CF   0.00   0.01    0.00
3               A2M 247.15  24.88 2307.94
4           A2M-AS1   1.38   0.20    2.60

我們來執(zhí)行核心函數(shù)CIBERSORT

res_cibersort <- CIBERSORT(sig_matrix, mixture_file, perm=10, QN=TRUE)

        B cells naive B cells memory Plasma cells T cells CD8 T cells CD4 naive T cells CD4 memory resting T cells CD4 memory activated
LAU125     0.01146448     0.33118622  0.000000000  0.03587147                 0                  0.1465500                   0.00000000
LAU355     0.18558675     0.36063872  0.005305268  0.06538556                 0                  0.1969691                   0.07829503
LAU1255    0.04230761     0.07319686  0.014003042  0.37666902                 0                  0.0000000                   0.14757024
LAU1314    0.24241384     0.34369856  0.015805166  0.06588054                 0                  0.1580854                   0.05774793
        T cells follicular helper T cells regulatory (Tregs) T cells gamma delta NK cells resting NK cells activated  Monocytes
LAU125                 0.09940070                          0          0.00000000       0.04715444         0.00000000 0.09273837
LAU355                 0.02004924                          0          0.02277827       0.00000000         0.00000000 0.01053398
LAU1255                0.11192989                          0          0.04067900       0.00000000         0.04482746 0.02217635
LAU1314                0.04853605                          0          0.03254491       0.00000000         0.01240244 0.00000000
        Macrophages M0 Macrophages M1 Macrophages M2 Dendritic cells resting Dendritic cells activated Mast cells resting
LAU125      0.03315481     0.00000000     0.12737478              0.00000000               0.004796157        0.000000000
LAU355      0.00000000     0.00000000     0.04398640              0.00000000               0.010471658        0.000000000
LAU1255     0.02427582     0.02090543     0.06168147              0.01180571               0.000000000        0.002012619
LAU1314     0.00000000     0.00000000     0.01644681              0.00000000               0.006438391        0.000000000
        Mast cells activated Eosinophils Neutrophils P-value Correlation      RMSE
LAU125            0.06608013 0.004228426 0.000000000     0.5  0.01785367 1.0921730
LAU355            0.00000000 0.000000000 0.000000000     0.0  0.66799046 0.7449124
LAU1255           0.00000000 0.004148568 0.001810919     0.0  0.20761899 1.0207522
LAU1314           0.00000000 0.000000000 0.000000000     0.0  0.64988147 0.7595212

可以看出22種細胞類型在每個樣本中的分布及其顯著性指標:P-value 教硫,Correlation RMSE叨吮。

我們簡單探索一下這個返回的結(jié)果:

library(pheatmap)
pheatmap(res_cibersort[,1:22])
 apply(res_cibersort[,1:22] ,1,sum)
 LAU125  LAU355 LAU1255 LAU1314 
      1       1       1       1 

可見它是按滿分是1 來對樣本打分的,也就是每個樣本只有這22種細胞類型瞬矩。既然如此茶鉴,我們就可以:

library(ggplot2)
library(tidyverse)
allcolour=c("#DC143C","#0000FF","#20B2AA","#FFA500","#9370DB","#98FB98","#F08080","#1E90FF","#7CFC00","#FFFF00","#808000","#FF00FF","#FA8072","#7B68EE","#9400D3","#800080","#A0522D","#D2B48C","#D2691E","#87CEEB","#40E0D0","#5F9EA0","#FF1493","#0000CD","#008B8B","#FFE4B5","#8A2BE2","#228B22","#E9967A","#4682B4","#32CD32","#F0E68C","#FFFFE0","#EE82EE","#FF6347","#6A5ACD","#9932CC","#8B008B","#8B4513","#DEB887")
res_cibersort[,1:22] %>% reshape2::melt() %>%
  ggplot(aes(x=Var1,y=value,fill=Var2))+
  geom_bar(position = 'stack',stat="identity")+
  scale_fill_manual(values =allcolour )  + theme_bw()

其他工具的思路:

我們試一下這個模型在單細胞中的應(yīng)用情況。在這之前我們需要有一個已經(jīng)注釋好的數(shù)據(jù)景用,以便我們看看細胞類型能不能對應(yīng)上涵叮。于是,我們請出pbmc3k.final數(shù)據(jù)集伞插,這個是可以安裝使用的割粮。

library(Seurat)
library(SeuratData)
head(pbmc3k.final@meta.data)
              orig.ident nCount_RNA nFeature_RNA seurat_annotations percent.mt RNA_snn_res.0.5 seurat_clusters
AAACATACAACCAC     pbmc3k       2419          779       Memory CD4 T  3.0177759               1               1
AAACATTGAGCTAC     pbmc3k       4903         1352                  B  3.7935958               3               3
AAACATTGATCAGC     pbmc3k       3147         1129       Memory CD4 T  0.8897363               1               1
AAACCGTGCTTCCG     pbmc3k       2639          960         CD14+ Mono  1.7430845               2               2
AAACCGTGTATGCG     pbmc3k        980          521                 NK  1.2244898               6               6
AAACGCACTGGTAC     pbmc3k       2163          781       Memory CD4 T  1.6643551               1               1

我們看到是有seurat_annotations 的細胞類型注釋的。

為了模擬bulk RNA的數(shù)據(jù)我們對亞群取平均值:

avexpr <- AverageExpression(pbmc3k.final)

因為CIBERSORT直接讀電腦文件媚污,而我們又不想先把數(shù)據(jù)輸出舀瓢,于是改一下函數(shù)的讀數(shù)據(jù)方式,再source耗美。

source("CIBERSORT/CIBERSORT.R") 
cibe<-CIBERSORT(sig_matrix, cbind(rownames(avexpr$RNA), avexpr$RNA), perm=10, QN=TRUE)
cibe[1:4,1:4]
             B cells naive B cells memory Plasma cells T cells CD8
Naive CD4 T   0.0004745028    0.006527557   0.00000000  0.40124293
Memory CD4 T  0.0000000000    0.017245116   0.00000000  0.14626803
CD14+ Mono    0.0057763350    0.007812051   0.00000000  0.01540697
B             0.3429285094    0.450309369   0.03076117  0.00895134


同上京髓,我們來用熱圖看看對應(yīng)關(guān)系怎么樣:

library(pheatmap)
pheatmap(cibe[,1:22])

雖然我們用的并不是腫瘤樣本,也雖然熱圖的大部分都是天藍色商架,但是橘黃色的色塊告訴我們:對應(yīng)關(guān)系還算靠譜朵锣。

cibe[,1:22] %>% reshape2::melt() %>%
  ggplot(aes(x=Var1,y=value,fill=Var2))+
  geom_bar(position = 'stack',stat="identity")+
  scale_fill_manual(values =allcolour )  + theme_bw() +theme(axis.text.x = element_text(angle = 90, hjust=1)) 

這個柱形圖顯然會得到令人困惑的結(jié)果,比如NK細胞里面為什么還會有其他21種細胞呢甸私?這當(dāng)然和pbmc3k.final做細胞注釋的方法有關(guān),也和CIBERSORT這個算法有關(guān)飞傀,他總會給一個表達譜再這22種細胞類型中找比例關(guān)系皇型,除非自己準備一個 signature matrix。但是這些結(jié)果并不是一無用處砸烦,特別是在我們對細胞類型一無所知的時候弃鸦,還是有一些參考價值的。

xCell幢痘,GSVA唬格,MCPcounter,ConsensusTME颜说,ImmuneSubtypeClassifier等等购岗,我就不再一一演示了,基本上是簡單的基因表達矩陣數(shù)據(jù)门粪,將免疫細胞類型含量計算出來喊积。不同的軟件默認給定的細胞類型不同,算法有不同玄妈,但是結(jié)果都是得到每個樣本在不同細胞類型中的分值乾吻。

在單細胞中的應(yīng)用

基于以上的討論髓梅,我們知道了所謂的定量免疫浸潤,實在無法獲得單細胞水平異質(zhì)性的歷史條件下绎签,一種通過bulk RNA數(shù)據(jù)來推斷(腫瘤)樣本免疫細胞異質(zhì)性的手段枯饿。

我們知道了做定量免疫浸潤的關(guān)鍵是有表達譜和一個參數(shù)數(shù)據(jù)集,表達譜在我們單細胞這里是不缺的诡必,關(guān)鍵在于參數(shù)數(shù)據(jù)集如何獲得奢方。定量免疫浸潤的這套方法,在單細胞中至少有以下應(yīng)用方向:

  • 驗證

單細胞數(shù)據(jù)科學(xué)是一個超指數(shù)發(fā)展的行業(yè)擒权,數(shù)據(jù)是爆發(fā)式的增長的袱巨,但是數(shù)據(jù)之間并不是孤立的,之前有著豐富的數(shù)據(jù)積累碳抄,其中TCGA愉老,GEO是比較詳細的。越來越多的文章剖效,開始利用公用數(shù)據(jù)庫來挖掘有用的信息來豐富自己的研究嫉入,甚至專門有個數(shù)據(jù)挖掘的方向。在這樣的背景下璧尸,免疫浸潤也是揭示異質(zhì)性的咒林,那么自然地,我們會聯(lián)想到:拿我們的單細胞數(shù)據(jù)通過免疫浸潤與公用數(shù)據(jù)聯(lián)系起來爷光,相互驗證垫竞。

  • 細胞類型推斷

既然定量免疫浸潤可以得到每個樣本在不同細胞類型中的分值,我們可不可以根據(jù)這個分值來推斷手里表達譜的細胞類型呢蛀序?在學(xué)理上應(yīng)該是可以的欢瞪,反卷積的算法也許有些不當(dāng),但是如果把求平均值的過程看作卷積徐裸,也不是不可以吧遣鼓。基于GSVA 的方法本質(zhì)就是自定義基因集做富集分析重贺,所以完全是可以的骑祟,關(guān)鍵在與marker gene 的選擇。



dtangle:基于反卷積的表達譜分解確定細胞組分
使用xcell根據(jù)表達譜推斷樣本組成細胞的類型
3到11分文章解讀(腫瘤免疫浸潤挖掘方向)
必讀|TCGA數(shù)據(jù)挖掘-肺癌腫瘤免疫浸潤分析
一文獻一技術(shù)路線:再來“免疫浸潤”
腫瘤免疫浸潤分析工具匯總-數(shù)據(jù)挖掘新高度
TIMER:腫瘤浸潤免疫細胞分析的綜合網(wǎng)站
如何用轉(zhuǎn)錄組數(shù)據(jù)定量腫瘤浸潤免疫細胞
視頻課程:TCGA數(shù)據(jù)免疫浸潤的量化方法
癌細胞浸潤是什么意思气笙?
Targeting adenosine receptor 2B in triple negative breast cancer
Identification of key biomarkers and immune infiltration in the synovial tissue of osteoarthritis by bioinformatics analysis
Profiles of Immune Infiltration and Prognostic Immunoscore in Lung Adenocarcinoma
Elisa Martini次企, et al.Single-Cell Sequencing of Mouse Heart Immune Infiltrate in Pressure Overload–Driven Heart Failure Reveals Extent of Immune Activation.Circulation. 2019;140:2089–2107
Single-cell immune landscape of human atherosclerotic plaques
如何通俗易懂地解釋卷積健民?
Understanding-Convolutions/
量化免疫浸潤時CIBERSORT的注意事項抒巢。
evaluation-of-methods-to-assign-cell-type-labels-to-cell-clusters-from-single-cell-rna-sequencing-data

寶藏圖
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市秉犹,隨后出現(xiàn)的幾起案子蛉谜,更是在濱河造成了極大的恐慌稚晚,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件型诚,死亡現(xiàn)場離奇詭異客燕,居然都是意外死亡,警方通過查閱死者的電腦和手機狰贯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門也搓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涵紊,你說我怎么就攤上這事傍妒。” “怎么了摸柄?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵颤练,是天一觀的道長。 經(jīng)常有香客問我驱负,道長嗦玖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任跃脊,我火速辦了婚禮宇挫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘酪术。我一直安慰自己器瘪,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布绘雁。 她就那樣靜靜地躺著娱局,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咧七。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天任斋,我揣著相機與錄音继阻,去河邊找鬼。 笑死废酷,一個胖子當(dāng)著我的面吹牛瘟檩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播澈蟆,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼墨辛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了趴俘?” 一聲冷哼從身側(cè)響起睹簇,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤奏赘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后太惠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體磨淌,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年凿渊,在試婚紗的時候發(fā)現(xiàn)自己被綠了梁只。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡埃脏,死狀恐怖搪锣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情彩掐,我是刑警寧澤构舟,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站佩谷,受9級特大地震影響旁壮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谐檀,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一抡谐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧桐猬,春花似錦麦撵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至惫撰,卻和暖如春羔沙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背厨钻。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工扼雏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人夯膀。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓诗充,卻偏偏與公主長得像,于是被迫代替她去往敵國和親诱建。 傳聞我的和親對象是個殘疾皇子蝴蜓,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345