日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

R语言acres92 region_[R语言 学习笔记] circlize绘制基因组圈图的原理与使用(一)...

發布時間:2025/3/15 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言acres92 region_[R语言 学习笔记] circlize绘制基因组圈图的原理与使用(一)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

由于圖形大多由點、線、多邊形等簡單圖形組成,circlize實現了在圓形作圖區域添加圖形的低級繪圖函數,通過低級繪圖函數的不同組合,可以輕松生成更復雜的圖形。這一原則確保了各種類型的高級圖形不會受軟件包本身的通用性限制,并且可以在此基礎上構建針對特定興趣的高級包。

歡迎大家批評指正

轉載請標明出處:https://www.ivistang.com/articles/296

circlize的原理

circlize會把一塊畫布上的常見坐標系統轉化成極坐標系統,并將其標注成普通的二維坐標系。這一塊區域就被稱為track,不同track組成了一個形如圈的sector。

panel.fun參數

panel.fun通常會在當前track區域進行繪制,為了能夠批量在當前sector繪制圖形,可以設置sector.index=get.cell.meta.data("sector.index")以及track.index=get.cell.meta.data("track.index"),通過trackPlotRegion來繪制新的sector。panel.fun的通常設置形式是panel.fun=function(region,value,...){...}。circos.genomicTrackPlotRegion接受的輸入形式為數據框,這可以類比為一個bed文件。一個通常的bed文件應該至少有四行,region就是前三列,表示了染色體、起始位點、終止位點。value則對應了其他數據列。

和弦圖示例

代碼如下:

library(circlize)

genome=read.cytoband(species = "hg19") ###circlize包預制的hg19基因組

chr=data.frame(chr=names(genome$chr.len),start=1,end=genome$chr.len)

set.seed(12345)

bed=generateRandomBed(nr = 50,species = "hg19") ###生成隨機bed注釋

bed$color=sample(rainbow(7),size = 55,replace = TRUE)

link1=generateRandomBed(nr=100)

link1$color="skyblue"

link2=generateRandomBed(nr=100)

link2=link2[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.height=0.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 = 40000000

major.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.labels=major.at/1000000

circos.axis(h = 1,labels.cex = 0.8, major.at = major.at, labels = major.tick.labels,labels.font=2,col="grey",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,col="grey",border=NA)

})

####添加基因塊####

circos.genomicTrackPlotRegion(bed,ylim = c(0, 1), bg.border = NA, track.height=0.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,col=value$color,sector.index = sector.index,track.index = track.index,border=NA)

})

####添加link####

circos.genomicLink(link1, link2, col = link1$color, border = NA)

#dev.off()

結果圖

總結

以上是生活随笔為你收集整理的R语言acres92 region_[R语言 学习笔记] circlize绘制基因组圈图的原理与使用(一)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。