0

問題

私はこのパッケージを使用しており、[IRanges][1]2^31 を約 10 倍超える非常に長いシーケンスを正確にコーディングする必要があります。

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) よりも長いゲノム サイズを持つ生物が多いため、2^32 (≈ 10^9) より大きい値を処理できると非常に便利です。

質問

  • これは整数オーバーフローの問題だと考えるのは正しいですか?
  • 同じ問題が発生しますか?
  • この問題を回避する方法はありますか?
    • ソースコードを見つけてオブジェクトタイプを変更することは可能ですか(そして簡単ですか)
    • このパッケージの別のバージョンが存在すると思いますか?

私が見つけた唯一の解決策は、精度のレベルを下げて各幅を 100 で割ることを受け入れることですが、精度を下げることにあまり満足していません。

R版

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)
4

1 に答える 1