The difference of course being that you implemented those trees from scratch, while we're relying on the Kent library for the low-level management of the tree. We would probably need to break from the Kent library to pursue this approach.
On Tue, Jul 1, 2014 at 9:05 AM, Hervé Pagès <hpa...@fhcrc.org> wrote: > 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 > [[alternative HTML version deleted]]
_______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel