vioplot

#install.packages("vioplot")

library(vioplot)                                                    #引用包

normal=6                                                            #正常样品数目
tumor=6                                                             #肿瘤样品数目

rt=read.table("CIBERSORT.filter.txt",sep="\t",header=T,row.names=1,check.names=F)   #读取输入文件

pdf("vioplot.pdf",height=8,width=15)              #保存图片的文件名称
par(las=1,mar=c(10,6,3,3))
x=c(1:ncol(rt))
y=c(1:ncol(rt))
plot(x,y,
     xlim=c(0,63),ylim=c(min(rt),max(rt)+0.02),
     main="",xlab="", ylab="Fraction",
     pch=21,
     col="white",
     xaxt="n")

#对每个免疫细胞循环,绘制vioplot,正常用蓝色表示,肿瘤用红色表示
for(i in 1:ncol(rt)){
  normalData=rt[1:normal,i]
  tumorData=rt[(normal+1):(normal+tumor),i]
  vioplot(normalData,at=3*(i-1),lty=1,add = T,col = 'blue')
  vioplot(tumorData,at=3*(i-1)+1,lty=1,add = T,col = 'red')
  wilcoxTest=wilcox.test(normalData,tumorData)
  p=round(wilcoxTest$p.value,3)
  mx=max(c(normalData,tumorData))
  lines(c(x=3*(i-1)+0.2,x=3*(i-1)+0.8),c(mx,mx))
  text(x=3*(i-1)+0.5, y=mx+0.02,labels=ifelse(p<0.001, paste0("p<0.001"), paste0("p=",p)), cex = 0.8)
  text(seq(1,64,3),-0.03,xpd = NA,labels=colnames(rt),cex = 1,srt = 45,pos=2)
}
dev.off()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Day 1: 沙田马场、黄大仙庙、旺角、尖沙咀 地铁都可达。 沙田马场看赛马,但周三、周六、周日才有比赛。看香港赛...
    刘鲨鱼阅读 1,436评论 0 0
  • 文/赵元波 幅员辽阔的非洲大陆每年分为旱季和雨季两个季节,当地有一种特殊的鱼类,不但可以像其他鱼一样用腮呼吸,更为...
    赵元波阅读 1,807评论 0 0
  • 一、Android Studio 默认自动生成的 jar 包 众所周知 Android Studio 会在 lib...
    王学宏阅读 9,843评论 5 17
  • 看看记录已经连续日更了80天了,作为一个没什么恒心做成某件事的人来说这已经算是一次不小的挑战。虽然这80天的日更,...
    大米粒的小小米阅读 890评论 0 0
  • 昨天下午,体育组的老师组织大家开始跳操,一个多小时,出了汗,跟着运动的节奏,感受运动的快乐。做一个爱运动的人,快乐...
    Bessie静阅读 2,732评论 0 1