我正在尝试使用 BED 文件中的简单基因组符号生成 circos 图。但是,当我使用circos.genomeRect
它时会导致错误,或者在不绘制矩形而是半圆的轨道中,如下所示。
考虑以下可重现的示例:
library("circlize")
library("tidyverse")
circos.par(start.degree = 90,
cell.padding = c(0, 0, 0, 0),
#points.overflow.warning=FALSE,
track.height = 0.10
)
# Initialize genome (bed file with genome sizes)
genome <- tibble(chr=c("chr1","chr2"), start = c(1,1), end = c(6000000, 3000000))
circos.genomicInitialize(genome, plotType = c("axis"), major.by = 1000000)
# Add track with annotation
feature <- tibble(chr = c("chr1", "chr1"), start = c(2500, 4500000), end = c(4150000, 6350000))
circos.genomicTrack(feature, ylim=c(0,1),
panel.fun = function(region, value, ...) {
circos.genomicRect(region, value, ytop.column = 1, ybottom = 0, col="blue")
})
circos.clear()
这将返回一个错误:
if (sum(l) && circos.par("points.overflow.warning")) { 中的错误:需要 TRUE/FALSE 的缺失值
另外:警告消息:在 is.na(x) | is.na(y) : if (sum(l) && circos.par("points.overflow.warning")) { : 需要 TRUE/FALSE 的缺失值
此时,如果points.overflow.warning=FALSE
在circos.par
上面设置,错误就会消失,但一定会发生其他一些错误,即这不会绘制矩形:
我错过了什么吗?这个简单的例子有什么问题?谢谢
编辑
我刚刚注意到我绘制的特征数据框有一个坐标错误,因为它比染色体的实际大小延伸得更长。但是,如果解决了这个问题,例如:feature <- tibble(chr = c("chr1", "chr1"), start = c(2500, 4500000), end = c(4150000, 5350000))
,就会出现一个新错误!!
警告信息:在 is.na(x) | is.na(y) :较长的对象长度不是较短对象长度的倍数