#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
01 CIBERSORT文件准备
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 给文本文件按行为单位进行排序和去除重复行,是文本处理任务中非常常见的,尤其是对超大文本文件的排序和去重,由于所需空...