Hi Hector, Michael,

On 07/01/2014 05:57 AM, Michael Lawrence wrote:
It seems tough to make this work. There is no way for the R serialization
machinery to understand what needs to be serialized after the external
pointer. The easiest approach to fixing this would be to reimplement
everything on top of SEXPs, which is to say, it would not be easy.

This is what I did with PDict objects to store the Aho-Corasick tree.
It's actually easier than it sounds. You can use any atomic type, say
INTSXP or RAWSXP, it doesn't matter, That's just a way to get memory.
Then you do what you want with it (thru casting the pointer to it).
It not only solves the serialization problem, it also automatically
manages the memory, which is now in the hands of the garbage collector.

Cheers,
H.

Alternatively, we could write our own serializer. It seems R needs a way to
register (de)serializers for external pointers.


On Tue, Jul 1, 2014 at 5:37 AM, Hector Corrada Bravo <hcorr...@gmail.com>
wrote:

Confirmed. Will look into it now.
Thanks for writing!
Hector


On Tue, Jul 1, 2014 at 2:40 AM, Kristoffer Vitting-Seerup <
kristoffer.vittingsee...@bio.ku.dk> wrote:

Hi bioc-devel

I’ve fond an error in the usage of GIntervalTree:

test <- GRanges(seqnames='Chr1', range=IRanges(start=10,end=20))
test
GRanges with 1 range and 0 metadata columns:
       seqnames    ranges strand
          <Rle> <IRanges>  <Rle>
   [1]     Chr1  [10, 20]      *

this object I can save and load without problem:

save(test, file='test.Rdata')
rm(test)
load('test.Rdata')
test
GRanges with 1 range and 0 metadata columns:
       seqnames    ranges strand
          <Rle> <IRanges>  <Rle>
   [1]     Chr1  [10, 20]      *


But if I convert to to a GIntervalTree (for faster overlap finding) I get
a fatal error when loading:

test2 <- GIntervalTree(test)
test2
GIntervalTree with 1 range and 0 metadata columns:
       seqnames    ranges strand
          <Rle> <IRanges>  <Rle>
   [1]     Chr1  [10, 20]      *
save(test2, file='test2.Rdata')
rm(test2)
load('test2.Rdata')
test2
GIntervalTree with 1 range and 0 metadata columns:

  *** caught segfault ***
address 0xc, cause 'memory not mapped'

Traceback:
  1: .Call(.NAME, ..., PACKAGE = PACKAGE)
  2: .Call2(fun, object@ptr, ..., PACKAGE = "IRanges")
  3: .IntervalForestCall(from, "asIRanges")
  4: asMethod(object)
  5: as(x@ranges, "IRanges")
  6: .GT_reorderValue(x, as(x@ranges, "IRanges"))
  7: .local(x, ...)
  8: ranges(x)
  9: ranges(x)

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace


My session info:
sessionInfo()
R version 3.1.0 (2014-04-10)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] C

attached base packages:
[1] grDevices datasets  grid      parallel  stats     graphics  utils
methods   base

other attached packages:
  [1] spliceR_1.5.0         plyr_1.8.1            RColorBrewer_1.0-5
  VennDiagram_1.6.5     cummeRbund_2.7.1      Gviz_1.9.4
  rtracklayer_1.25.8    GenomicRanges_1.17.14 GenomeInfoDb_1.1.5
  IRanges_1.99.13
[11] S4Vectors_0.0.6       fastcluster_1.1.13    reshape2_1.4
  ggplot2_0.9.3.1       RSQLite_0.11.4        DBI_0.2-7
BiocGenerics_0.11.2

loaded via a namespace (and not attached):
  [1] AnnotationDbi_1.27.6     BBmisc_1.6               BSgenome_1.33.5
      BatchJobs_1.2            Biobase_2.25.0           BiocParallel_0.7.0
     Biostrings_2.33.8        Formula_1.1-1
  GenomicAlignments_1.1.10
[10] GenomicFeatures_1.17.6   Hmisc_3.14-4             MASS_7.3-33
      R.methodsS3_1.6.1        RCurl_1.95-4.1           Rcpp_0.11.1
      Rsamtools_1.17.14        VariantAnnotation_1.11.5 XML_3.98-1.1
[19] XVector_0.5.6            biomaRt_2.21.0           biovizBase_1.13.7
      bitops_1.0-6             brew_1.0-6               cluster_1.15.2
     codetools_0.2-8          colorspace_1.2-4         dichromat_2.0-0
[28] digest_0.6.4             fail_1.2                 foreach_1.4.2
      gtable_0.1.2             iterators_1.0.7          lattice_0.20-29
      latticeExtra_0.6-26      matrixStats_0.8.14       munsell_0.4.2
[37] proto_0.3-10             scales_0.2.4             sendmailR_1.1-2
      splines_3.1.0            stats4_3.1.0             stringr_0.6.2
      survival_2.37-7          tools_3.1.0              zlibbioc_1.11.1



--
Kindest regards
Kristoffer Vitting-Seerup, cand.scient. (M.Sc.),
Ph.D Fellow
Sandelin Group

Bioinformatics Centre | Biotech Research & Innovation Centre (BRIC), Dep.
Of Biology
University of Copenhagen
Building 1, 3th floor, office 3 (1-3-03)
Ole Maaløes Vej 5
DK-2200 Copenhagen N
Denmark
http://binf.ku.dk | http://www.bric.ku.dk







         [[alternative HTML version deleted]]


_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel



         [[alternative HTML version deleted]]


_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel



        [[alternative HTML version deleted]]



_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel


--
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpa...@fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to