摘要
最近不断做项目,闲暇之余也优化了某些项目流程。这次要补充的是分析miRNA时要对reads_length进行统计。一般定义的miRNA长度大约在18-24bp,如果你的统计结果在这个范围内,说明reads是可靠的,可以进一步分析。
环境与方法
R version 3.6.1 (2019-07-05)
绘图包,ggplot2
原始数据
我设置了过滤,14之前是没有reads的,咱们后面需要统计的也是15-24bp的数据。
使用代码
library(ggplot2) #调用ggplot2包,没有的话需要自己安装install.packages("ggplot2")
count = read.table('pi_distCount.sum',header = T,check.names = F) #读取文件
for(i in rownames(count)){ #读取样品名
result_name = paste(i,"_Countstat.pdf",sep="") #根据样品名生成PDF文件
pdf(result_name,width=15,height=6)
data = data.frame(obj = c("15","16","17","18","19","20","21","22","23","24"), val = t(count[i,c("15","16","17","18","19","20","21","22","23","24")])) #转置数据,行变列
plot = ggplot(data,aes(x=obj,y=data[,2],fill=obj))+geom_bar(stat="identity")+theme(legend.title=element_blank(),legend.text=element_text(size=6),legend.key=element_rect(size=6))+labs(x='Reads Length',y='Number of matched reads')
print(plot)
dev.off()
}
结果展示
总结
这个本来没什么难点,但是我在写这个脚本的时候卡了好长一段时间。问题在于在for循环里,ggplot命令需要进行赋值(p),然后使用print()进行输出生成。单独绘制样品就不需要这样。