R语言怎么绘制MA图
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍"R语言怎么绘制MA图"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"R语言怎么绘制MA图"文章能帮助大家解决问题。MA plot即M-vers
千家信息网最后更新 2026年11月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安全错误
数据库的锁怎样保障安全
云南咖啡
广州为想互联网科技有限公司
河南云网互联网络科技有限公司
互联网最新的科技
互联网金融公司科技
青岛互联网科技公司
有木互联网科技
广西互联网科技公司
撒么互联网科技公司
互联网科技生活的内容
上海电发互联网科技有限公司
深圳市运趣互联网科技有限公司
厦门比较好的科技互联网公司
黑科技闪耀互联网之光
千方科技属于互联网企业吗
和信科技工业互联网
996高科技互联网公司
悟空问答互联网科技
恒生科技指数 中概互联网
陕西彩京云互联网科技有限公司
有格互联网科技
百单网互联网科技有限公司
重生之互联网科技帝国
喔噻互联网科技
唐信互联网科技
中国科技互联网公司收入
青岛科技大学互联网大赛研究生
互联网相关科技技术
优雇互联网科技有限公司
知域互联网科技有限公司官网