这个简单的代码:
library(GenomicRanges)
GRanges(c("chr1", "chr1", "chr1"), c(109810200, 109810201, 109810544))
失败,出现相当神秘的异常:
validObject(.对象( : 无效类 "GRanges" 对象: 1:"x@seqnames"不平行于"x" 无效的类"GRanges"对象:2:"x@strand"不平行于"x">
此外,当我尝试提供seqlengths
时:
GRanges(
c("chr1", "chr1", "chr1"),
c(109810200, 109810201, 109810544),
seqlengths=c(1, 1, 1))
我得到:
.normargSeqlengths(seqlengths, seqnames( 中的错误: 提供的"序列长度"的长度必须等于序列的数量
这表明在此过程中会丢弃一些数据。但我无法弄清楚为什么会发生这种情况。
如果能对这里发生的事情有任何见解,我将不胜感激。
环境:
> sessionInfo()
R version 3.5.2 (2018-12-20)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux buster/sid
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.8.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.8.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] parallel stats4 stats graphics grDevices utils datasets
[8] methods base
other attached packages:
[1] GenomicRanges_1.34.0 GenomeInfoDb_1.18.2 IRanges_2.16.0
[4] S4Vectors_0.20.1 BiocGenerics_0.28.0
loaded via a namespace (and not attached):
[1] zlibbioc_1.28.0 compiler_3.5.2 XVector_0.22.0
[4] GenomeInfoDbData_1.2.0 RCurl_1.95-4.12 bitops_1.0-6
我遇到了同样的错误。然后我将 seqname 和范围都转换为字符,有趣的是它奏效了!