01 CIBERSORT文件准备

#install.packages('e1071')

#if (!requireNamespace("BiocManager", quietly = TRUE))
#    install.packages("BiocManager")
#BiocManager::install("preprocessCore")

#if (!requireNamespace("BiocManager", quietly = TRUE))
#    install.packages("BiocManager")
#BiocManager::install("limma")


library("limma")   
source("https://bioconductor.org/biocLite.R")

if (!requireNamespace("AnnotationDbi", quietly = TRUE)) BiocManager::install("AnnotationDbi")
library("AnnotationDbi")
#要自己准备TCGA的样本的表达文件exp
#BiocManager::install("org.Hs.eg.db")
#1、TCGA基因ID的转换
library(stringr)
exp$Ensembl_ID <- rownames(exp)
exp$Ensembl_ID=str_sub(exp$Ensembl_ID,1,15)
library(clusterProfiler)
library(org.Hs.eg.db)
# 查看org.Hs.eg.db 包提供的转换类型
keytypes(org.Hs.eg.db)
# 需要转换的Ensembl_ID
Ensembl_ID <- exp$Ensembl_ID
# 采用bitr()函数进行转换
gene_symbol <- bitr(Ensembl_ID, fromType="ENSEMBL", toType=c("SYMBOL", "ENTREZID"), OrgDb="org.Hs.eg.db")
# 查看转换的结果
head(gene_symbol)

gene_symbol= gene_symbol[match(exp$Ensembl_ID,gene_symbol$ENSEMBL),]#匹配到表达矩阵中
exp$SYMBOL <- gene_symbol$SYMBOL
#整理去重,把重复的取平均值

exp <- exp[,-(ncol(exp)-1)]
exp2<-avereps(exp,ID=exp$SYMBOL)
exp2 <- as.data.frame(exp2)
exp2 <- exp2[!is.na(exp2$SYMBOL),]#去除没有匹配的
rownames(exp2) <- exp2$SYMBOL
exp <- exp2[,-ncol(exp2)]

#2、转换为矩阵,分析需要数据
dimnames=list(rownames(exp),colnames(exp))
data=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=dimnames)

#3、去除正常样本
data <- data[,group_list== "tumor"]


#3、再转换数据
v <-voom(data, plot = F, save.plot = F)#校正文件,因为我们下载的是转录的数据,必须转化为芯片数据
out=v$E
out=rbind(ID=colnames(out),out)
write.table(out,file="uniq.symbol.txt",sep="\t",quote=F,col.names=F)   

#4、CIBERSORT
source("TMBimmune19.CIBERSORT.R")
results=CIBERSORT("ref.txt", "uniq.symbol.txt", perm=100, QN=TRUE)
#OK完美运行
```r
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容