自己运行Cibersort,画图时报错,代码如下:
#加载包
library(ggplot2)
library(reshape2)
library(ggpubr)
library(dplyr)
# 设置分析依赖的基础表达文件
# 每类免疫细胞的标志性基因及其表达
# 基因名字为Gene symbol,文件放在同一个文件夹中
source('./Cibersort.R')
LM22 <- "./LM22.txt"
# 1. Cibersort
results <- CIBERSORT(sig_matrix ="LM22.txt", mixture_file ="genefpkm.txt", perm = 50, QN = F)
# perm置换次数=50,文章中是1000
# QN如果是芯片设置为T,如果是测序就设置为F
library(ggplot2)
library(pheatmap)
# heatmap
# 按行(样本内部)标准化可以看出在各类样本内部,M2浸润程度(占比)最高
rowscale <- results[,1:ncol(LM22)]#只是相当于备份了一下results
rowscale <- rowscale[,apply(rowscale, 2, function(x){sum(x)>0})]#删除全是0的列
pheatmap(rowscale,
scale = 'row',#按行标准化,不标准化就会按绝对值显示,很诡异
cluster_col=T,#是否对列聚类,不聚类,坐标轴就按照原来的顺序显示
cluster_row=F,#是否对行聚类
angle_col = "315")#调整X轴坐标的倾斜角度
# 各类样本之间也具有自己占比高的特异性免疫细胞
columnscale <- results[,1:ncol(LM22)]
columnscale <- columnscale[,apply(columnscale, 2, function(x){sum(x)>0})]#删除全是0的列
pheatmap(columnscale,
scale = 'column',
cluster_col=F,
cluster_row=T,
angle_col = "315")
# 堆积比例图
my36colors <-c('#E5D2DD', '#53A85F', '#F1BB72', '#F3B1A0', '#D6E7A3', '#57C3F3', '#476D87','#E95C59', '#E59CC4', '#AB3282', '#23452F', '#BD956A', '#8C549C', '#585658','#9FA3A8', '#E0D4CA', '#5F3D69', '#C5DEBA', '#58A4C3', '#E4C755', '#F7F398','#AA9A59', '#E63863', '#E39A35', '#C1E6F3', '#6778AE', '#91D0BE', '#B53E2B', '#712820', '#DCC1DD', '#CCE0F5', '#CCC9E6', '#625D9E', '#68A180', '#3A6963','#968175'
)
cellnum <- results[,1:ncol(LM22)]
cell.prop<- apply(cellnum, 1, function(x){x/sum(x)})
data4plot <- data.frame()
for (i in 1:ncol(cell.prop)) {
data4plot <- rbind(
data4plot,
cbind(cell.prop[,i],rownames(cell.prop),
rep(colnames(cell.prop)[i],nrow(cell.prop)
)
)
)
}
colnames(data4plot)<-c('proportion','celltype','sample')
data4plot$proportion <- as.numeric(data4plot$proportion)
ggplot(data4plot,aes(sample,proportion,fill=celltype))+
geom_bar(stat="identity",position="fill")+
scale_fill_manual(values=my36colors)+#自定义fill的颜色
ggtitle("cell portation")+
theme_bw()+
theme(axis.ticks.length=unit(0.5,'cm'),axis.title.x=element_text(size=1))+
theme(axis.text.x = element_text(angle = 45, hjust = 0.5, vjust = 0.5))+#把x坐标轴横过来
guides(fill=guide_legend(title=NULL))
结果文件运行出来了,但是这一步出现了error
rowscale <- results[,1:ncol(LM22)]#只是相当于备份了一下results
Error in 1:ncol(LM22) : argument of length 0
想请问一下大家要怎么解决?(那一步后面的代码都还没验证,也是搬了一位的代码。)