You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决circlize包可视化基因融合时的类型比较报错?

解决circlize包绘制基因融合环形图的报错问题

问题场景

使用circlize包可视化多组基因融合关系的环形图时,运行代码出现如下报错:

Error in region1[i, 2] == region1[i, 3] : 
  comparison of these types is not implemented

原始数据定义

fusion1 <- data.frame("chr" = c("chr7", "chr1", "chr12", "chr3", "chr16", "chr7", "chr12", "chr1"),
                   "start" = c(27934839, 92327028, 24366277, 64430159, 85391249, 27934839, 67462830, 741179),
                   "end" = c(28934839, 93327028, 25366277, 65430159, 86391249, 28934839, 68462830, 1741179))

fusion2 <- data.frame("chr" = c("chr17", "chr1",  "chr12", "chr3",  "chr16", "chr17", "chr12", "chr7"),
                     "start" = c(30267305, 92456741, 24048958, 64184643, 85667520, 30274636, 66990707, 55863785),
                     "end" = c(31267305,93456741, 25048958, 65184643, 86667520, 31274636, 67990707, 56863785))

原始执行代码

library(circlize)
circos.initializeWithIdeogram()
circos.genomicLink(fusion1, fusion2, col = "red", border = NA)
circos.clear()

报错原因及解决方法

报错根源是circos.genomicLink对输入数据的类型和格式有严格要求:要么输入GRanges对象,要么数据框的列名、数据类型完全符合要求,否则会出现类型比较错误。

方案1:转换为GRanges对象(推荐)

GRanges是基因组数据的标准格式,circlize对其兼容性最好,能彻底避免类型匹配问题:

library(circlize)
library(GenomicRanges)

# 将数据框转换为GRanges对象
gr1 <- makeGRangesFromDataFrame(fusion1, keep.extra.columns = FALSE)
gr2 <- makeGRangesFromDataFrame(fusion2, keep.extra.columns = FALSE)

# 重新绘制环形图
circos.initializeWithIdeogram()
circos.genomicLink(gr1, gr2, col = "red", border = NA)
circos.clear()

方案2:修正数据框格式

如果不想依赖GenomicRanges包,可以直接调整数据框的格式:

  1. 确保列名为chr、start、end(避免引号干扰)
  2. 确认start和end列为数值类型
library(circlize)

# 修正列名(去除不必要的引号)
colnames(fusion1) <- c("chr", "start", "end")
colnames(fusion2) <- c("chr", "start", "end")

# 强制转换start/end列为数值型
fusion1[, c("start", "end")] <- lapply(fusion1[, c("start", "end")], as.numeric)
fusion2[, c("start", "end")] <- lapply(fusion2[, c("start", "end")], as.numeric)

# 重新绘图
circos.initializeWithIdeogram()
circos.genomicLink(fusion1, fusion2, col = "red", border = NA)
circos.clear()

内容的提问来源于stack exchange,提问作者Ji Seon Jeong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 00:25:08