R语言怎么绘制MA图
发表于:2025-11-20 作者:千家信息网编辑
千家信息网最后更新 2025年11月20日,这篇文章主要介绍"R语言怎么绘制MA图"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"R语言怎么绘制MA图"文章能帮助大家解决问题。MA plot即M-vers
千家信息网最后更新 2025年11月20日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安全错误
数据库的锁怎样保障安全
软考数据库真题
天津服务器推荐云空间
华三服务器管理口账号密码
上海crm软件开发机构
学软件开发可以做软件销售
多实例数据库好处
信息网络安全攻防
数据库修改某个字段的数据
网络安全专用产品销售许可
服务器存储账户口令
宇通网络技术有限公司
高中网络技术课件
se数据库验证
数据库中groupby是什么
安徽数据库安全箱服务费
小公司适合用服务器么
优阅数据库
数据库管理员考试网址
立创 AD数据库
保定市亨盛软件开发有限公司
非关系型数据库适用场景
临沂软件开发公司排名
2015 网络安全政策
数据库查询设置日期格式
如何修改代理服务器
津心办软件开发
日本软件开发常用语言
发表论文都有什么数据库
重庆专业软件开发机构
2018金融网络安全手册