棒棒糖图

inputFile="cnvMatrix.txt" #输入文件

rt=read.table(inputFile, header=T, sep="\t", check.names=F, row.names=1)


#对符合条件的行 求和

GAIN=rowSums(rt> 0)        #获取拷贝数增加的样品数目:CASP9 20

LOSS=rowSums(rt< 0)        #获取拷贝数缺失的样品数目:CASP9 32

#ncol(rt)总共多少样本

GAIN=GAIN/ncol(rt)*100      #计算拷贝数增加的百分率:CASP9 4.5454545

LOSS=LOSS/ncol(rt)*100      #计算拷贝数缺失的百分率

data=cbind(GAIN, LOSS)

#CASP9 4.5454545 7.2727273

#按拷贝数增加的频率,对样品进行排序

data=data[order(data[,"GAIN"],decreasing = T),]

#绘制图形

#1对应每一列,2对应每一行

data.max = apply(data, 1, max)

data.max#取出每个基因的最大值

pdf(file="CNVfreq.pdf", width=9, height=6)

cex=1.3 #表示相对于默认大小缩放倍数的数值

par(cex.lab=cex, cex.axis=cex, font.axis=2, las=1, xpd=T)#将绘图区分割成规则的几个部分

#柱状图#用每个基因的最大值画

bar=barplot(data.max, col="grey80", border=NA,

            xlab="", ylab="CNV.frequency(%)", space=1.5,

            xaxt="n", ylim=c(0,1.2*max(data.max)))

#加点

points(bar,data[,"GAIN"], pch=20, col=2, cex=3)#绘制gain圆圈,2红色

points(bar,data[,"LOSS"], pch=20, col=4, cex=3)#绘制loss圆圈,4蓝色

#加点标注

legend("top", legend=c('GAIN','LOSS'), col=c(2,4), pch=20, bty="n", cex=2, ncol=2)

par(srt=45)

#加上基因名字

text(bar, par('usr')[3]-0.2, rownames(data), adj=1, cex=0.7)#x轴上加上基因的名称

dev.off()


你可能感兴趣的:(棒棒糖图)