R语言怎么绘制MA图
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章主要介绍"R语言怎么绘制MA图"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"R语言怎么绘制MA图"文章能帮助大家解决问题。MA plot即M-vers
千家信息网最后更新 2025年02月04日R语言怎么绘制MA图
这篇文章主要介绍"R语言怎么绘制MA图"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"R语言怎么绘制MA图"文章能帮助大家解决问题。
MA plot即M-versus-A plot,在芯片数据处理出现之前也称为Bland-Altman plot,是由发明者名字命名的,而MA plot是对M与A作图而得名,M是minus的缩写,代表两个值之差,A是add的缩写,代表两个值之和。有研究者也把MA plot称为Ratio-Intensity (RI) plots,同时MA也正好是micro-array的简写。
MA图简介
MA图主要应用在基因组数据可视化方面,实现数据分布情况的展示。早期主要应用于DNA芯片数据,现在常用于高通量测序数据中基因差异表达分析结果的展示。
M一般做Y轴,A一般做X轴。
M常对应差异表达分析获得的差异对比组之间基因表达变化log2FC。
A可以利用差异对比组的FPKM进行计算,以R和G来表示差异对比组的话,可以取R组基因的平均FPKM和G组基因的平均FPKM进行计算。
MA图绘制
首先准备数据:
第一列为基因ID,*_FPKM为样品FPKM值(列名必须包含"FPKM"),第四列为FDR,第五列为log2FC,第六列为基因上下调信息。
然后,我们使用R语言来绘制MA图,代码如下:
### load libraryrequire(ggplot2)library(RColorBrewer)library(getopt)mycol<-brewer.pal(9, "Set1")# load libraryargs <-commandArgs(TRUE)# check args lengthif( length(args) != 2 ) { print(args) usage() stop("the length of args != 6")}plot_MA <- function(log10exp=NULL, log2FC=NULL, FDR=NULL, Significant=NULL, xlab="log10(FPKM)", ylab="log2(FC)", main="MA plot") { # check args # check null if( is.null(log2FC) ) stop("log2FC is NULL") if( is.null(FDR) ) stop("FDR is NULL") if( is.null(Significant) ) stop("Significant is NULL") # check length len <- c(length(log10exp), length(log2FC), length(FDR)) if( len[1] != len[2] ) stop(paste("length(log10exp) != length(log2FC): ", len[1], " != ", len[2], sep="")) if( len[2] != len[3] ) stop(paste("length(log2FC) != length(FDR): ", len[2], " != ", len[3], sep="")) if( len[1] == 0 ) stop("length(log2FC) == 0") # plot Significant<-factor(Significant,levels=c("up","down","normal")) p <- qplot(log10exp, log2FC, xlab=xlab, ylab=ylab, main=main, size=I(0.7), colour=Significant) p <- p+ scale_color_manual(values = c("up"=mycol[1],"normal"=mycol[2],"down"=mycol[3])) p<-p+theme_bw()+ theme( panel.grid=element_blank(), axis.text.x=element_text(colour="black"), axis.text.y=element_text(colour="black"), panel.border=element_rect(colour = "black"), legend.key = element_blank(), legend.title = element_blank()) # return return(p)}ori_data <- read.delim(args[1], row.names = 1, header=TRUE,check.names =F)colnames(ori_data)<-read.delim(args[1], row.names = 1, header=F,check.names =F,stringsAsFactors=F,nrows=1)f <- grepl("FPKM",colnames(ori_data))print(f)fpkm <- ori_data[ , f] log2FC <- ori_data[ , "log2FC"] FDR <- ori_data[ ,"FDR"] significant <- ori_data[ , "regulated"] significant<-as.factor(significant)print(" MA plot")# MA plotma <- plot_MA(log10exp=log10(rowMeans(fpkm)), log2FC=log2FC, FDR=FDR, Significant=significant )png(filename=paste(args[2],".png",sep=""), height = 3000, width = 3000, res = 500, units = "px")print(ma)dev.off()pdf(file=paste(args[2],".pdf",sep=""), height = 15, width = 15)print(ma)dev.off()
脚本运行命令:
Rscript plot_MA.R ref_trans_full_table.xls MA
其中ref_trans_full_table.xls是输入文件,MA是输出图片的名称前缀。
关于"R语言怎么绘制MA图"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
基因
数据
差异
语言
知识
两个
代表
缩写
芯片
行业
分析
应用
不同
实用
上下
之和
之间
代码
前缀
发明者
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
studio如何连接服务器
海康威视共享软件开发
怎么清除王者里多余的服务器
山西常用软件开发费用
数据库表项意义
软件开发方法是指()
德颐网络技术有限
软件开发费能否抵扣
数据库表设计和优化
php怎么往数据库插入记录
近距离网络技术
服务器重启资源管理器
模拟报警软件开发的原理
数据库一直显示在还原状态
网络安全攻防演练发现问题
工程造价计算机网络技术
云桌面的网络安全
永州安卓软件开发培训
魔兽怀旧服转服去哪个服务器
远程服务器链接mysql
网络安全管理中
国旗下讲话网络安全文明上网
党员 网络安全
两会 网络安全 360
数据库格式化日期的函数是
数据库性能查看
近距离网络技术
虹口区银联网络技术价格咨询
兴化小型网络技术参考价格
什么是h3c无限网络技术