外贸建站优化,深圳最近消息,网站解析后显示在建设中,做招聘网站创业由于图形大多由点、线、多边形等简单图形组成#xff0c;circlize实现了在圆形作图区域添加图形的低级绘图函数#xff0c;通过低级绘图函数的不同组合#xff0c;可以轻松生成更复杂的图形。这一原则确保了各种类型的高级图形不会受软件包本身的通用性限制#xff0c;并且…由于图形大多由点、线、多边形等简单图形组成circlize实现了在圆形作图区域添加图形的低级绘图函数通过低级绘图函数的不同组合可以轻松生成更复杂的图形。这一原则确保了各种类型的高级图形不会受软件包本身的通用性限制并且可以在此基础上构建针对特定兴趣的高级包。欢迎大家批评指正转载请标明出处https://www.ivistang.com/articles/296circlize的原理circlize会把一块画布上的常见坐标系统转化成极坐标系统并将其标注成普通的二维坐标系。这一块区域就被称为track不同track组成了一个形如圈的sector。panel.fun参数panel.fun通常会在当前track区域进行绘制为了能够批量在当前sector绘制图形可以设置sector.indexget.cell.meta.data(sector.index)以及track.indexget.cell.meta.data(track.index)通过trackPlotRegion来绘制新的sector。panel.fun的通常设置形式是panel.funfunction(region,value,...){...}。circos.genomicTrackPlotRegion接受的输入形式为数据框这可以类比为一个bed文件。一个通常的bed文件应该至少有四行region就是前三列表示了染色体、起始位点、终止位点。value则对应了其他数据列。和弦图示例代码如下library(circlize)genomeread.cytoband(species hg19) ###circlize包预制的hg19基因组chrdata.frame(chrnames(genome$chr.len),start1,endgenome$chr.len)set.seed(12345)bedgenerateRandomBed(nr 50,species hg19) ###生成随机bed注释bed$colorsample(rainbow(7),size 55,replace TRUE)link1generateRandomBed(nr100)link1$colorskybluelink2generateRandomBed(nr100)link2link2[sample(1:nrow(link2), nrow(link2)),]####设置输出文件#####pdf(random_circle1.pdf)circos.clear()####和弦图初始化####circos.initialize(factors as.factor(a$chromosome),xlim chr[,2:3])####添加坐标轴####circos.genomicTrackPlotRegion(chr, ylim c(0, 1), bg.border NA, track.height0.05,panel.fun function(region,value,...){sector.index get.cell.meta.data(sector.index)track.index get.cell.meta.data(track.index)xlim get.cell.meta.data(xlim, sector.index sector.index, track.index track.index)major.by 40000000major.at seq(floor(xlim[1]/major.by) * major.by, xlim[2], by major.by)major.at c(major.at, major.at[length(major.at)] major.by)major.tick.labelsmajor.at/1000000circos.axis(h 1,labels.cex 0.8, major.at major.at, labels major.tick.labels,labels.font2,colgrey,minor.ticks 0,sector.index sector.index,track.index track.index,major.tick.length convert_y(1.5,mm,sector.index,track.index),lwd 2)circos.rect(xlim[1],0,xlim[2],1,colgrey,borderNA)})####添加基因块####circos.genomicTrackPlotRegion(bed,ylim c(0, 1), bg.border NA, track.height0.05,panel.fun function(region,value,...){sector.index get.cell.meta.data(sector.index);print(sector.index)track.index get.cell.meta.data(track.index);print(track.index)circos.rect(region$start,0,region$end,1,colvalue$color,sector.index sector.index,track.index track.index,borderNA)})####添加link####circos.genomicLink(link1, link2, col link1$color, border NA)#dev.off()结果图