0

我正在尝试使用 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=FALSEcircos.par上面设置,错误就会消失,但一定会发生其他一些错误,即这不会绘制矩形:

在此处输入图像描述

我错过了什么吗?这个简单的例子有什么问题?谢谢

编辑

我刚刚注意到我绘制的特征数据框有一个坐标错误,因为它比染色体的实际大小延伸得更长。但是,如果解决了这个问题,例如:feature <- tibble(chr = c("chr1", "chr1"), start = c(2500, 4500000), end = c(4150000, 5350000)),就会出现一个新错误!!

警告信息:在 is.na(x) | is.na(y) :较长的对象长度不是较短对象长度的倍数

4

1 回答 1

1

它似乎与data.frames 而不是tibbles 一起工作:

library("circlize")

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 <- data.frame(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 <- data.frame(chr = c("chr1", "chr1"), start = c(2500, 4500000), end = c(4150000, 5350000))


circos.genomicTrack(feature, ylim=c(0,1),
                    panel.fun = function(region, value, ...) {
                      circos.genomicRect(region, value, col="blue")
                    })

circos.clear()

reprex 包(v0.3.0)于 2020-08-11 创建

于 2020-08-11T17:53:09.473 回答