搜索
查看: 2607|回复: 15

利用R画染色体分段标记

[复制链接]

2

主题

14

帖子

211

积分

版主

Rank: 7Rank: 7Rank: 7

积分
211
发表于 2016-11-22 11:27:26 | 显示全部楼层 |阅读模式
本帖最后由 秋叶麒麟 于 2017-1-19 11:15 编辑

之前看了一篇文献,文章名叫Genome-wide patterns of genetic variation among elite maize inbred lines,里面有个图,通过不同颜色把染色体分成了多种区段。文章里的例图如下:


我自己造了个类似的数据,参考附件。
第一列为染色体号,第二列为分段起始位点,第三列为分段终止位点,第四列是样品类别,第五列为分段类别,第六列在每条染色体最后的那一行有样品类别信息(第六列之所以这么处理是为了方便后面的添加柱子的样品类别注释)。
这里简单的利用ggplot2画的。代码如下:
[AppleScript] 纯文本查看 复制代码
library(ggplot2)#导入ggplot2包
a<-read.table(file = "G:/work/test_data.list", header=F,sep="\t",stringsAsFactors=F)#读入数据

g<-sprintf("%s%s","Chr",unique(a[,1]))#选出染色体号,同时每个号码前加上Chr前缀,以备后面用来标记x轴
a[,7]<-a[,3]-a[,2]#提取每段长度
for(i in 1:length(a[,1])){
  if(a[i,4] == "478"){
    a[i,8]=a[i,1]-0.2
  }else{
    a[i,8]=a[i,1]+0.2
  }
}  #总共有两组样本,为了区别分开,所以478的样本对应x坐标为染色体号-0.2,zheng58的样本对应x坐标为染色体号+0.2
colors<-c("red","blue","green")#三种分段,分别标记的颜色为红蓝绿,自己可以随意选取。
p<-ggplot(a,aes(x=a[,8],y=a[,7],fill=a[,5],group=a[,4]))+geom_bar(stat = "identity")+    #x轴选的是染色体号加减0.2的数据,以样本类别分组,以分段类别来填充。
  geom_text(aes(label = a[,6]), size = 3, hjust = 0, vjust = 0,position = "stack",angle=45)+ #每个柱子的最上面添加注释样品类别信息
  theme_bw() + theme(panel.grid.major = element_blank(),
                     legend.position = c(0.9,0.9),legend.title=element_blank())+#去背景,同时调整legend的位置,以及去除legend的title
  scale_fill_manual(values = colors)+#设置填充的颜色
  scale_x_continuous(breaks = c(1:10),labels = g)+labs(x="",y="")+#自己设置x轴的刻度信息
  scale_y_continuous(labels = c(0,"100MB","200MB","300MB"))#设置y轴的刻度信息。

pdf(file = "result.pdf",height = 8,width = 10)
print(p)
dev.off()
png(filename = "result.png",type = "cairo",height = 600,width = 1000)
print(p)
dev.off()       #分别生成一张png图和一张pdf图。亲测可用。好吧,暂时就到这了。


下面是我画的图(ps:数据乱弄的没任何意义,只是为了模仿文献里的图片而已)


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x



上一篇:snp功能注释
下一篇:gene symbol 中的奇怪开头基因
回复

使用道具 举报

0

主题

22

帖子

174

积分

注册会员

Rank: 2

积分
174
发表于 2016-11-26 09:35:16 | 显示全部楼层
的确有效,我试试自己的数据,最近也正想画这种图
回复 支持 反对

使用道具 举报

3

主题

12

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
发表于 2016-12-1 15:34:40 | 显示全部楼层
怎么样获得测试数据的下载权限呢
回复 支持 反对

使用道具 举报

2

主题

14

帖子

211

积分

版主

Rank: 7Rank: 7Rank: 7

积分
211
 楼主| 发表于 2016-12-5 18:14:26 | 显示全部楼层
zt1989 发表于 2016-12-1 15:34
怎么样获得测试数据的下载权限呢

我设置的是注册了就能下载啊
回复 支持 反对

使用道具 举报

20

主题

67

帖子

668

积分

版主

Rank: 7Rank: 7Rank: 7

积分
668
QQ
发表于 2016-12-8 07:52:44 | 显示全部楼层
Awesome !!! I was trying to do so in R but didn't make it because of the limitation of time, so I just plotted in PowerPoint. Yours looks great ~~~
You really shouldn't spend your time reinventing the wheel
回复 支持 反对

使用道具 举报

2

主题

14

帖子

211

积分

版主

Rank: 7Rank: 7Rank: 7

积分
211
 楼主| 发表于 2016-12-14 11:32:51 | 显示全部楼层
bioinfo.dong 发表于 2016-12-8 07:52
Awesome !!! I was trying to do so in R but didn't make it because of the limitation of time, so I ju ...

Thank you!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2017-1-4 00:33:54 | 显示全部楼层
赞!!!!!
回复

使用道具 举报

6

主题

23

帖子

177

积分

注册会员

Rank: 2

积分
177
发表于 2017-2-20 21:54:37 | 显示全部楼层
学习学习,正好做了gisticf分析,但是软件出的图太丑了,自己想重新画,但是和染色体对应这个问题好难,看了楼主的,好像就是把test_data的数据Y坐标加在一起了,请教楼主,如果要对应上chrom_size.hg19.txt,yao 要怎样设置呢
回复 支持 反对

使用道具 举报

2

主题

14

帖子

211

积分

版主

Rank: 7Rank: 7Rank: 7

积分
211
 楼主| 发表于 2017-3-1 11:29:32 | 显示全部楼层
qin_qinyang 发表于 2017-2-20 21:54
学习学习,正好做了gisticf分析,但是软件出的图太丑了,自己想重新画,但是和染色体对应这个问题好难,看 ...

gistic分析就是那个拷贝数的那个是吧?根据给的对应的位置信息,你可以计算下区段的距离,这个应该很好算的。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

21

积分

新手上路

Rank: 1

积分
21
发表于 2017-6-22 13:55:42 | 显示全部楼层
楼主,能不能添加点别的功能,比如外加一列数据,可以转换为颜色,由颜色的深浅表示相应数据的大小
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树    

GMT+8, 2018-1-24 11:54 , Processed in 0.092424 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.