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()