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

使用rGADEM包GADEM函数时遇序列检索错误求助

解决rGADEM运行GADEM函数时的序列提取错误

问题详情

我有一份Bed格式的大峰列表,已转换为GenomicRange对象,使用rGADEM包寻找de novo基序时,运行GADEM函数出现如下错误:

[ Retrieving sequences... Error in.Call2("C_solve_user_SEW", refwidths, start, end, width, translate.negative.coord: solving row 136: 'allow.nonnarrowing' is FALSE and the supplied start (55134751) is > refwidth + 1 ]

补充说明:使用少于136行的示例输入文件时,程序可正常运行并得到基序。

运行代码:

library(GenomicRanges)
library(rGADEM)
data = makeGRangesFromDataFrame(data, keep.extra.columns = TRUE)
data = reduce(data)
data = resize(data, width = 50, fix='center')
gadem<-GADEM(data,verbose=1,genome=Hsapiens)
plot(gadem) 

20行示例数据:

1      chr6  29723590  29723790
2     chr14 103334312 103334512
3      chr1 150579030 150579230
4      chr7  76358527  76358727
5      chr6  11537891  11538091
6     chr14  49893256  49893456
7      chr5 179623200 179623400
8      chr1 228082831 228083031
9     chr12  93441644  93441844
10    chr10   3784776   3784976
11     chr3 183635833 183636033
12     chr7    975301    975501
13    chr12 123364510 123364710
14     chr1   1615578   1615778
15     chr1  36156320  36156520
16    chr14  55051781  55051981
17     chr8  11867697  11867897
18    chr22  38706135  38706335
19     chr6  44265256  44265456
20     chr1 185316658 185316858 

问题原因

错误指向第136行的区域:执行resize(data, width = 50, fix='center')时,该区域的中心位置过于靠近染色体末端,导致扩展后的起始位置超过了对应染色体的总长度,无法从参考基因组中提取有效序列。

解决方案

1. 过滤无效区域

在resize操作后,添加代码过滤掉起始位置小于1或终止位置超过染色体长度的区域:

library(GenomicRanges)
library(rGADEM)

data = makeGRangesFromDataFrame(data, keep.extra.columns = TRUE)
data = reduce(data)
data = resize(data, width = 50, fix='center')

# 获取参考染色体长度并过滤无效区域
chr_lengths <- seqlengths(Hsapiens)
valid_data <- data[start(data) >= 1 & end(data) <= chr_lengths[seqnames(data)]]

# 运行GADEM
gadem <- GADEM(valid_data, verbose=1, genome=Hsapiens)
plot(gadem)

2. 调整resize的锚点策略

如果不想丢弃区域,可以改用fix='start'或fix='end'进行resize,避免中心扩展时超出染色体边界:

# 以起始位置为锚点扩展
data = resize(data, width = 50, fix='start')
# 或以终止位置为锚点扩展
# data = resize(data, width = 50, fix='end')

3. 检查并修正原始Bed数据

直接查看第136行的原始Bed区域,确认其是否接近染色体末端。必要时手动调整该区域的宽度,或修改resize的宽度参数,避免超出染色体范围。

内容的提问来源于stack exchange,提问作者mehdi heidari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:25:19