r:用circlize包绘制染色体圈图

本博客使用的教程来自Circular Visualization in R (jokergoo.github.io),可以在该网站查找circlize包的所有用法。

一、染色体圈图初始化

一行代码即可绘制出人类染色体,该函数会创建一个具有染色体名称和轴的轨迹。

circos.initializeWithIdeogram()

 

默认情况下, circos.initializeWithIdeogram() 使用人类基因组 hg19 的 cytoband 数据初始化绘图。用户还可以通过指定 species 参数来初始化其他物种,它将自动下载相应物种的 cytoband 文件。

circos.initializeWithIdeogram(species = "hg18")
circos.initializeWithIdeogram(species = "mm10")
hg18mm10

可以通过指定 chromosome.index 来选择染色体的子集,并对染色体进行排序 

circos.initializeWithIdeogram(chromosome.index = paste0("chr", c(3,5,2,8)))
text(0, 0, "subset of chromosomes", cex = 1)#在圈图中插入文字

二、加入基因组数据 

这里只介绍 BED 格式的数据(其中第一列是染色体名称,第二列和第三列是开始和结束位置,第四列及之后是关联值)

bed = generateRandomBed(nc = 2)#随机生成示例数据
head(bed, n = 2)
#   chr  start    end     value1     value2
#1 chr1 150969 175741  0.2828066 0.63818454
#2 chr1 316425 381038 -0.4544091 0.02978984
1、绘制折线图 

circos.track函数表示新建一个圈层

circos.track(factors=bed$chr, x = bed$start, y = bed$value1, track.index=3,
             track.height = 0.1,ylim=c(-2,2),bg.col="pink",
             panel.fun = function(x, y) {
               
               circos.lines(x, y, col = "red") #默认折线图,x和y来自上边的参数传递
             })

2、绘制点图
circos.track(factors=bed$chr, x = bed$start, y = bed$value1,#track.index=3,
             #bg.col=rainbow(19),
             track.height = 0.1,ylim=c(-2,2),
             panel.fun = function(x, y) {
               circos.points(x, y, col = "red",cex =0.3) 
               circos.segments(x0=CELL_META$xlim[1],x1=CELL_META$xlim[2],
                               y0=th,y1=th,col = 'black')
             })

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值