例图(人基因组1:160000000-161000000区域内的基因分布): 

PPT、PS等好多工具可以帮助你实现这样的图,但是如果批量画呢?可能手都废了吧,还是上代码吧。

为大家分析一下上图的特点:
1.中间灰色的bar两端分别有一段突出
2.目标区域中间的基因是彩色的,目标区域上下游的基因用灰色标注
3.基因的Symbol没有重叠
4.基因的名字标注在基因最中间的位置

首先用你能用的办法将目标区域(1:160000000-161000000)内的基因、目标区域上游的两个基因、目标区域下游的一个基因的位置都提取出来,然后为每个基因赋一个颜色。中间灰色的bar两端的突出可以从第一个基因的开始位置向上游扩100K、最后一个基因的结束位置向下游扩100K。整理成作图用的输入文件,如下:

第1-3列是作图基因的位置,第7列是基因的名字。

第4-5列是整个灰色bar的位置(经过上下游扩完以后的)。

第6列是基因的颜色,目标区域上下游的基因用灰色表示,目标区域内的基因用你想要的颜色表示。

为了方便调整基因的symbol不重叠,增加第8列,1和2表示基因名字在图的上部和下部。

用ggplot2作图很方便,每个bar的可以通过画矩形框填充不同的颜色实现。

#将输入文件读进来 > library(ggplot2) > library() > data<-read.table(file=”Region.xls”,header=T,sep="\t",stringsAsFactors=F) #计算基因最中间的位置方便标基因label > data$middle<-(data$end - data$start)/2+data$start > color<data$color #geom_rect函数先画灰色的bar,再画基因,用geom_text_repel函数标基因的label > p<-ggplot(data)+geom_rect(aes(xmin=astart,xmax=aend,ymin=-0.01,ymax=0.01),colour="grey",fill="grey",size=0.1)+geom_rect(aes(xmin=start, xmax=end,ymin=-0.03,ymax=0.03),colour="grey", fill=color,size=0.1)+geom_text_repel(aes(x=middle,y=rep(0,length(color)),label=name),min.segment.length = 1,nudge_y = ifelse(data$index==1,0.3,-0.3)) > p<-p+ylim(c(-1,1)) > p<-p+theme_classic() +theme(axis.line = element_blank(),axis.text = element_blank(),axis.ticks = element_blank(),axis.title = element_blank()) > print(p)

 思路明确了,就可以举一反三画各种你想要的变形,比如说画基因中Exon和Intron的结构等等。
类似的结构图,也有其他工具可以实现,费些时间但会更精美。
1.IBS软件绘制(http://ibs.biocuckoo.org/download.php)
2.GSDS在线绘制(http://gsds.cbi.pku.edu.cn/index.php)
3.R包gggenes和ggbio等。
以上就是使用这个软件批量可视化某区域基因结构图的基本操作流程。当然,这个软件还有很多其他功能,这里由于篇幅有限,就只简单分享一下。
再多的操作文档,总是不如实际操作来得理解深刻。百迈客云平台(BMKCloud)实现你零基础分析的所有梦想!52款APP实现高度自由个性化分析,118款工具、交互的个性化分析提供无上限分析实操,云平台课堂高效助您方案设计和信息分析(http://www.biocloud.net/),百迈客云成为您的私人信息分析平台,让基因分析更简单。
所以大家快快动起手来,在实际操作中理解学习,若在学习中有不懂或疑问的地方,您可给我们留言,我们会有专职客服为您服务!
最近文章