CIBERSORT:反卷积推测bulk中的细胞类型

五一学了一个新的分析方法-CIBERSORT,这个包其实很早就想学的,因为现在一般的单细胞文章的套路,很难不用到它,那么它能干什么呢?它能够推测出bulk RNA每一个样本中各类细胞的比例。通俗易懂的来讲,就是能够把bulk RNA当作single cell RNA来分析

实现把bulk RNA当作single cell RNA来分析主要是有两种算法反卷积ssgsea,而CIBERSORT就是基于反卷积算法来做的,所以这篇着重介绍反卷积算法。

1.什么是反卷积算法

要想了解什么是反卷积,我们就要了解什么是卷积,我先show一张图,这张图就展示了卷积的过程


8811c6671c9bf68acdbb6f8a5931f82.png

我想用一些比较容易懂的话来讲卷积,所以可能讲述或隐喻的不准确,望谅解!!!
根据这张图我们可以看出 其实bulk RNAseq就像是每一个细胞的RNA-seq卷起来的乘积,所以称为卷积(图:左边(bulk)是右边(cell)的乘积运算的结果,而这个乘积运算需要细胞的表达量和一个系数表),现在我们来解释反卷积反卷积顾名思义反过来/不卷积,对bulkRNA的反卷积就相当于对bulk RNA进行除法,我们只要给一个系数表,就可以得到细胞的RNA表达量,那么我们就可以知道bulk中有哪一些细胞类型了。(其实没有那么简单哈,但是大致是这样的,里面涉及到算法啥的我也不知道怎么解释,主要是也不太会哈哈哈哈)

那么根据上面的解释我们可以知道假如进行bulk RNA的反卷积,我们需要什么:
1.系数表
2.bulk RNA的表达矩阵(假如你是一个生信入门的人,你一定要注意这个,表达矩阵,什么样的表达矩阵,首先是芯片还是RNA-seq,再是count?fpkm?rpkm?cpm?CIBERSORT说的很清楚,芯片或者RNA-seq都可以,参数上选择不同而已,RNA-seq数据不建议直接使用Count,应使用FPKM和TPM或DESEq2标准化后的矩阵为宜)

2.用LM22-ref.txt文件进行反卷积分析

首先LM22-ref.txt文件是什么,这里要从免疫浸润讲起,免疫浸润可以当作肿瘤组织中全部免疫细胞的总和,而LM22就是拿来分析免疫浸润的,所以我们用excel打开来看看这个文件吧,第一列是基因名字,后面每一列是某类细胞和他们gene symbol的系数,所以这个LM22-ref.txt文件就是我们的系数表(关于这个表格怎么来的可以去看其他大神的文章)

de8b85e25a44e2cbf5b28effc168a77.png

这时候我们还缺我们的bulk RNA的表达矩阵,所以我们要拥有一个这样的表格,把它保存为txt文件,命名为test.txt

687c63aabb3a45655d6fff217188670.png

为了确保大家保存没有错误,大家也可以试一下用excel打开,看看是不是跟我的格式一样
7659cb0bbc104d6523d47d1f2112469.png

好的,在这里总结一下,LM22-ref.txt文件=系数表,test.txt=bulk RNA的表达矩阵
并且这两个文件要在我们的工作路径下
由于CIBERSORT现在还不是R包,但是有CIBERSORT这个function(相当于文章的预印版吧),我们的工作路径下还需要CIBERSORT这个function,而这个function可以到官网上下载(关于这个function怎么运行的,可以follow健明老师的文章,在这里你只要知道它就是反卷积,帮我们计算出来了每一个样本中的细胞类型的含量),所以在工作工作路径下有三个东西
CIBERSORT.R / LM22-ref.txt / test.txt
5632b56baa514b41fb61276c2931532.png

运行function

library(tibble)
library(ggplot2)
library(ggrepel)
library(tidyverse)
library('e1071')             #必须加载,因为后面反卷积的算法是基于这个包里的数据
source("CIBERSORT.R")  #激活function

results=CIBERSORT("LM22-ref.txt","test.txt", perm=1000, QN=TRUE)   #perm是循环次数  一般文章循环1000次,QN=TRUE是分析RNA-seq,假如为F则分析芯片数据

然后我们就可以得到这样的result


2392a390d3cafb028a100abb4fa7638.png

2.个性化进行反卷积分析

何为个性化,就是当我们在做单细胞分析的时候,自己定义了一个群或者定义了一些细胞,想看这种细胞类型在bulk中的含量该怎么办呢,我怎么得到每一种细胞类型的系数呢?其实没有那么复杂,细胞类型的系数表其实就是AverageExpression,所以我们可以这样来做

library(tibble)
library(ggplot2)
library(ggrepel)
library(tidyverse)
library('e1071')             #必须加载,因为后面反卷积的算法是基于这个包里的数据
source("CIBERSORT.R")  #激活function

scRNA_harmony <- readRDS("scRNAsub.rds")  #导入单细胞数据
#先Idents
Idents(scRNA_harmony) <- "celltype"
#制作细胞类型的系数表
X <- AverageExpression(scRNA_harmony)[[1]]    #这就是我们要的细胞类型系数表
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打开后的样子,以免大家报错


d8c723735c3b1141a7648ce0037025d.png

在这里我需要强调,大家不要小看给出来的txt用excel打开后的格式,因为这是报错的主要原因,一定要跟我的格式一样,为什么呢,可以看CIBERSORT.R这个函数

c543a40d88090adf2ff8103eaede738.png

它要read in data,而且用read.table加了参数,所以一定要格式符合它的输入格式

写在文末,假如大家真的很想了解这个算法,强烈建议去看jimmy老师的教程,我这个只做参考!!!

好像有那么一丝不想写教程了,嗯....,我是个完美主义者,总感觉没有写好........

References:
https://www.jianshu.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
https://www.jianshu.com/p/2991ef7bf993

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容