R语言ggplot2画图——将目标区间/位点/基因画到染色体上

本文主要参考ggplot2画图——将筛选到的突变位点(基因)画到染色体上_如何绘制snp在染色体上的分布图-CSDN博客

上述博主是将位点标注于染色体上,本文主要是将目标区段(蓝色部分)标注在染色体上。

01.准备基础文件

chr_length_2.txt——染色体长度文件,通过TBtools获取(染色体长度怎么获取? - 知乎

qtl_2.txt——目标区间文件,包含(染色体,起始位置,结束位置,以及与chr_length_2.txt相同的横坐标位置--chr_length_2.txt的横坐标位置在chr$x <- seq(1,6)+rep(seq(0,15,3),each=1)  代码中生成)

genes.txt——基因位置文件,包含(基因名称,基因起始位置,基因结束位置,与chr_length_2.txt相同的横坐标位置)

02 具体执行代码如下 

rm (list=ls ())  ###清空环境
setwd("/Users/yulu/Desktop") ####setwd设置环境
library(ggplot2) ###加载ggplot2
install.packages("ggchicklet", repos = "https://cinc.rud.is")
library(ggchicklet)

chr <- read.table("chr_length_2.txt") #读取文件
colnames(chr) <- c("Chr","End") #命名列名
chr <- chr[order(chr$Chr),] #根据染色体名对数据进行排序
chr$x <- seq(1,6)+rep(seq(0,15,3),each=1)  #计算染色体在图上的横坐标。这里有6条染色体,每条染色体宽为1,所以用seq(1,6)生成每条染色体的横坐标。且我希望3倍的染色体宽度,所以使用的方法是:rep(seq(0,15,3),each=1)
head(chr)
Chr      End  x
1   2 35937250  1
2   4 35502694  5
3   5 29958434  9
4   6 31248787 13
5   7 29697621 17
6  10 23207287 21

qtl <- read.table("qtl_2.txt") #读取文件
colnames(qtl) <- c("Chr","Start","End","x") #命名列名Chr	Start	End x
head(qtl)
Chr    Start      End  x
1   2 23849813 27925718  1
2   4 22893919 34271097  5
3   5 23843993 28484888  9
4   6  4234201  9537606 13
5   7  1591894  4681830 17
6  10  6645044 13726954 21

genes <- read.table("genes.txt") 
colnames(genes) <- c("gene","Start","End","x")
head(genes)
gene    Start      End x
1  a.1 24977336 24973386 1
2  a.2 27166898 27165434 1
3  b.1 30293040 30291461 5
4  b.2 31958630 31957653 5
5  b.3 33167054 33169943 5
6    c 25807160 25803530 9

pdf(file = "chr.pdf",height = 6,width = 10)###保存为pdf
p=ggplot()+
  ggchicklet:::geom_rrect(chr,mapping=aes(ymin=0,ymax=End,xmin=x-0.5,xmax=x+0.5),
            color="black",fill="white")+ ###绘制第一个图层-整体的染色体
  geom_rect(qtl,mapping=aes(ymin=Start,ymax=End,xmin=x-0.5,xmax=x+0.5),
            fill="#1874CD",alpha=0.6)+  ###绘制第二个图层-目标区段
  geom_rect(genes,mapping=aes(ymin=Start,ymax=End,xmin=x-0.5,xmax=x+0.5),
            color="black",fill="black",alpha=0.5)+  ##绘制第三个图层--目标基因的位置
  theme_classic()
p
dev.off()

###ggchicklet:::geom_rrect是染色体两端变圆,xmin=x-0.5,xmax=x+0.5保持一致,确保x轴一致

03 结果

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值