Я пытаюсь создать цирковой сюжет с простой геномной нотацией из файлов BED. Однако, когда я использую 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
Дополнительно: Предупреждающее сообщение: In 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))
, появится новая ошибка!!
Предупреждающее сообщение: In is.na(x) | is.na(y): более длинная длина объекта не кратна более короткой длине объекта