表达谱分析组织中细胞组分情况 --- CIBERSORT & x
肿瘤微环境是近年来的研究热点。复杂而动态的微环境中,肿瘤细胞与浸润性免疫细胞、基质细胞等相互作用,这在促进或抑制肿瘤生长、侵袭、转移以及对病人临床预后方面可能具有多方面的影响。很多算法与工具应运而生。
而基于表达谱分析组织中细胞组分情况,主要分成两大类:去卷积(deconvolving)方法分析细胞组成成分与评估每种细胞类型的富集情况。今天介绍两种比较典型的工具,分别是基于前者的CIBERSORT和基于后者的xCell,两种工具都可以在网页在线运行或利用R语言编程运行。
1. CIBERSORT
文章于2015年发表于Nature Methods,目前引用量已经超过1200,可见热度。
算法本身的理解目前对于我来讲有一定难度,总体是利用线性支持向量回归(linear support vector regression)方法对肿瘤组织表达矩阵进行反卷积,分析组织中各类型的细胞含量。
文章给出了一个名为LM22的leukocyte gene signature matrix作为参考集,包含22种白细胞亚型,
It contains 547 genes that distinguish 22 human hematopoietic cell phenotypes, including seven T-cell types, naïve and memory B cells, plasma cells, natural killer (NK) cells and myeloid subsets.
1.1 网页版
http://cibersort.stanford.edu/是其在线工具的网址,注册后即可获得500M的存储空间,进而使用。
首先点击Menu下的Upload Files,上传我们需要进行分析的表达矩阵,格式要求如下:
总结来说就是需要上传制表符分隔的,每行为基因,每列为样本的表达谱文件,基因名采用HUGO gene symbols,表达值不经过log2处理,且不能有缺失值。
文件上传成功后,File Type选择Mixture,Title自行编写,之后点击Menu下的Run CIBERSORT,进入下面页面
第一个“绝对模式”和“相对模式”的选择,根据页面所列的细节,个人认为暂不勾选较好
Signature gene file 选择LM22(22 immune cell types) (另:工具也可以自行确定signature matrix,分析其他细胞类型情况,我们先行跳过)
Mixture file 选择我们之前upload好的文件
Permutations 选择1000,准确性会更高,虽然运行时间变长
其余高级选项保留默认,点击Run,进行分析,分析之后即可下载各种文件格式的结果。结果示例如下图:
1.2 R函数版
我们知道上述网页工具已经是相当简便的了,那么我们再用R函数做CIBERSORT是不是就没有意义呢,不是,最起码网不好的时候不用着急。。。
R函数版非常简单,只需要source一下封装好的脚本,再把相关文件导入运算即可
source('CIBERSORT.R')
result <- CIBERSORT('LM22.txt','CIBERSORT_RNA.txt', perm = 1000, QN = TRUE)
脚本CIBERSORT.R在 https://rdrr.io/github/singha53/amritr/src/R/supportFunc_cibersort.R上可以找到,复制,粘贴,保存即可。
CIBERSORT()
有4个参数,第一个'LM22.txt'即参考集leukocyte gene signature matrix,可在https://cibersort.stanford.edu/download.php处下载,第二个'CIBERSORT_RNA.txt'是我们准备好的表达矩阵,perm是计算p值时的置换次数,我们设置为1000,与网页版保持一致,QN是是否进行分位数归一化,默认为TRUE。运行后即可得到样本各细胞组分含量的结果。
2. xCell
文章于2017年发表于Genome Biology,目前引用在230+,影响力并没有CIBERSORT这么广泛。
算法包含了5个大类的64种细胞类型
2.1 网页版
https://xcell.ucsf.edu/是其在线工具的网址,不需注册
只需要上传基因表达数据,填写自己的邮箱地址,Run。结果运行出来后,会通过邮件的形式发至我们留的邮箱。注意填写RNA-seq与否的选项框。
表达数据的格式要求:
2.2 R包版
R包xCell存放在Github上,https://github.com/dviraran/xCell
devtools::install_github('dviraran/xCell')
library(xCell)
xCell = xCellAnalysis(expr, rnaseq = TRUE) # RNA-seq
# xCell = xCellAnalysis(expr, rnaseq = FALSE) # 非RNA-seq
主要就是xCellAnalysis()
函数,第一个参数是我们的表达矩阵对象,同时注意rnaseq参数是或否的选择。