0
我使用的包[IRanges][1]
和上午在需要对于由约10倍立交桥2^31非常长的序列准确的代码。
从以下,似乎IRanges
使用int32
##### INSTALLATION FROM SRC CODE ######
## try http:// if https:// URLs are not supported
source("https://bioconductor.org/biocLite.R")
biocLite("IRanges")
##### CALL PACKAGE #####
require(IRanges)
IRanges(start=1,end=2^31-1) # Works fine
IRanges(start=1,end=2^31) # Fail
Error in .Call2("solve_user_SEW0", start, end, width, PACKAGE = "IRanges") :
solving row 1: range cannot be determined from the supplied arguments (too many NAs)
In addition: Warning message:
In .normargSEW0(end, "end") : NAs introduced by coercion to integer range
由于这种包装通常用于DNA序列,这将是能够能够处理与大于值非常有用2^32(≈10^9),因为许多生物的基因组大小比它长。
问题
- 我说得对不对以为这是一个整数溢出问题?
- 你遇到同样的问题吗?
- 有没有办法解决这个问题?
- 是否有可能(易)到找到源代码,只是修改对象类型
- 你认为存在这个包的另一个版本?
我发现的唯一的解决办法是接受降低我的水平精度和除以100的宽度都...但我不是很高兴与我的降低精度。
ř版本
R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin13.4.0 (64-bit)
调用软件包'bit64'似乎没有达到IRanges'软件包中更高的数字。那么我想我必须重写'IRanges'的一些功能。 THANKs –
@ Remi.b你能找到解决方法,或者你最终不得不编辑IRanges源代码? – knowah
我做了我自己的一系列IRanges函数,我只是用data.frame而不是创建一个新类。这实际上很简单(包括3小时调试)。我没有把这个代码放在github上,因为我没有使用github,但我应该和我很快。 –