五一學(xué)了一個新的分析方法-CIBERSORT,這個包其實很早就想學(xué)的永票,因為現(xiàn)在一般的單細(xì)胞文章的套路奖慌,很難不用到它,那么它能干什么呢西乖?它能夠推測出bulk RNA每一個樣本中各類細(xì)胞的比例狐榔。通俗易懂的來講,就是能夠把bulk RNA當(dāng)作single cell RNA來分析获雕。
實現(xiàn)把bulk RNA當(dāng)作single cell RNA來分析主要是有兩種算法反卷積和ssgsea薄腻,而CIBERSORT就是基于反卷積算法來做的,所以這篇著重介紹反卷積算法届案。
1.什么是反卷積算法
要想了解什么是反卷積庵楷,我們就要了解什么是卷積,我先show一張圖楣颠,這張圖就展示了卷積的過程
我想用一些比較容易懂的話來講卷積嫁乘,所以可能講述或隱喻的不準(zhǔn)確,望諒解G虻铩r迅!
根據(jù)這張圖我們可以看出 其實bulk RNAseq就像是每一個細(xì)胞的RNA-seq卷起來的乘積睁冬,所以稱為卷積(圖:左邊(bulk)是右邊(cell)的乘積運算的結(jié)果挎春,而這個乘積運算需要細(xì)胞的表達量和一個系數(shù)表)看疙,現(xiàn)在我們來解釋反卷積:反卷積顧名思義反過來/不卷積,對bulkRNA的反卷積就相當(dāng)于對bulk RNA進行除法直奋,我們只要給一個系數(shù)表能庆,就可以得到細(xì)胞的RNA表達量,那么我們就可以知道bulk中有哪一些細(xì)胞類型了脚线。(其實沒有那么簡單哈搁胆,但是大致是這樣的,里面涉及到算法啥的我也不知道怎么解釋邮绿,主要是也不太會哈哈哈哈)
那么根據(jù)上面的解釋我們可以知道假如進行bulk RNA的反卷積渠旁,我們需要什么:
1.系數(shù)表
2.bulk RNA的表達矩陣(假如你是一個生信入門的人,你一定要注意這個船逮,表達矩陣顾腊,什么樣的表達矩陣,首先是芯片還是RNA-seq,再是count挖胃?fpkm杂靶?rpkm?cpm酱鸭?CIBERSORT說的很清楚吗垮,芯片或者RNA-seq都可以,參數(shù)上選擇不同而已凹髓,RNA-seq數(shù)據(jù)不建議直接使用Count烁登,應(yīng)使用FPKM和TPM或DESEq2標(biāo)準(zhǔn)化后的矩陣為宜)
2.用LM22-ref.txt文件進行反卷積分析
首先LM22-ref.txt文件是什么,這里要從免疫浸潤講起扁誓,免疫浸潤可以當(dāng)作腫瘤組織中全部免疫細(xì)胞的總和防泵,而LM22就是拿來分析免疫浸潤的蚀之,所以我們用excel打開來看看這個文件吧蝗敢,第一列是基因名字,后面每一列是某類細(xì)胞和他們gene symbol的系數(shù),所以這個LM22-ref.txt文件就是我們的系數(shù)表(關(guān)于這個表格怎么來的可以去看其他大神的文章)
這時候我們還缺我們的bulk RNA的表達矩陣足删,所以我們要擁有一個這樣的表格寿谴,把它保存為txt文件,命名為test.txt
為了確保大家保存沒有錯誤失受,大家也可以試一下用excel打開讶泰,看看是不是跟我的格式一樣
好的,在這里總結(jié)一下拂到,LM22-ref.txt文件=系數(shù)表痪署,test.txt=bulk RNA的表達矩陣
并且這兩個文件要在我們的工作路徑下
由于CIBERSORT現(xiàn)在還不是R包,但是有CIBERSORT這個function(相當(dāng)于文章的預(yù)印版吧)兄旬,我們的工作路徑下還需要CIBERSORT這個function狼犯,而這個function可以到官網(wǎng)上下載(關(guān)于這個function怎么運行的,可以follow健明老師的文章,在這里你只要知道它就是反卷積悯森,幫我們計算出來了每一個樣本中的細(xì)胞類型的含量)宋舷,所以在工作工作路徑下有三個東西
CIBERSORT.R / LM22-ref.txt / test.txt
運行function
library(tibble)
library(ggplot2)
library(ggrepel)
library(tidyverse)
library('e1071') #必須加載,因為后面反卷積的算法是基于這個包里的數(shù)據(jù)
source("CIBERSORT.R") #激活function
results=CIBERSORT("LM22-ref.txt","test.txt", perm=1000, QN=TRUE) #perm是循環(huán)次數(shù) 一般文章循環(huán)1000次瓢姻,QN=TRUE是分析RNA-seq祝蝠,假如為F則分析芯片數(shù)據(jù)
然后我們就可以得到這樣的result
2.個性化進行反卷積分析
何為個性化,就是當(dāng)我們在做單細(xì)胞分析的時候幻碱,自己定義了一個群或者定義了一些細(xì)胞绎狭,想看這種細(xì)胞類型在bulk中的含量該怎么辦呢,我怎么得到每一種細(xì)胞類型的系數(shù)呢收班?其實沒有那么復(fù)雜坟岔,細(xì)胞類型的系數(shù)表其實就是AverageExpression,所以我們可以這樣來做
library(tibble)
library(ggplot2)
library(ggrepel)
library(tidyverse)
library('e1071') #必須加載摔桦,因為后面反卷積的算法是基于這個包里的數(shù)據(jù)
source("CIBERSORT.R") #激活function
scRNA_harmony <- readRDS("scRNAsub.rds") #導(dǎo)入單細(xì)胞數(shù)據(jù)
#先Idents
Idents(scRNA_harmony) <- "celltype"
#制作細(xì)胞類型的系數(shù)表
X <- AverageExpression(scRNA_harmony)[[1]] #這就是我們要的細(xì)胞類型系數(shù)表
write.table(X,"sig.txt",sep = "\t",col.names = T,row.names = T) #保存為sig.txt
results=CIBERSORT("sig.txt","test.txt", perm=1000, QN=TRUE) #還是用那一個test.txt表達矩陣社付,同樣運行
后面附上sig.txt用excel打開后的樣子,以免大家報錯
在這里我需要強調(diào)邻耕,大家不要小看給出來的txt用excel打開后的格式鸥咖,因為這是報錯的主要原因,一定要跟我的格式一樣兄世,為什么呢啼辣,可以看CIBERSORT.R這個函數(shù)
它要read in data,而且用read.table加了參數(shù)御滩,所以一定要格式符合它的輸入格式
寫在文末鸥拧,假如大家真的很想了解這個算法,強烈建議去看jimmy老師的教程削解,我這個只做參考8幌摇!氛驮!
好像有那么一絲不想寫教程了腕柜,嗯....,我是個完美主義者矫废,總感覺沒有寫好........
References:
http://www.reibang.com/p/03a7440c0960
https://cloud.tencent.com/developer/article/1622907
https://cloud.tencent.com/developer/article/1784632
https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247493507&idx=1&sn=e8533247aa045ce82e3a6cbb9f3b4281&scene=21#wechat_redirect
http://www.reibang.com/p/2991ef7bf993