[BioC] Rsamtools: Realloc integer overflow?

Martin Morgan mtmorgan at fhcrc.org
Tue Jun 4 03:26:13 CEST 2013


On 06/03/2013 05:27 PM, Michael Lawrence wrote:
> Hey guys,
>
> Whenever I try to calculate the coverage for a BAM file with more than say
> 500 million reads, I get this error:
>
> Error in coverage(readBamGappedAlignments(x, param = param), shift =
> shift,  : \n  error in evaluating the argument 'x' in selecting a method
> for function 'coverage': Error in value[[3L]](cond) (from #2) : \n
> 'Realloc' could not re-allocate memory (18446744065128005632 bytes)\n
>
> This looks like integer overflow, possibly within _grow_SCAN_BAM_DATA().
> Could we just use long there?

I wonder if it would be more sensible if less convenient to do this (under 
Bioc-devel)

   bf <- open(BamFile(fl, yieldSize=100000000))
   cvg <- coverage(readGAlignmentsFromBam(bf))
   while (length(aln <- readGAlignmentsFromBam(bf)))
       cvg <- cvg + coverage(aln)
   close(bf)

? It opens the door for better memory management and parallel evaluation.

I'm concerned that using size_t (Realloc casts to this) or ptrdiff_t (the size 
of R long vectors) would only get us through the C code; the representation of 
this in R would require R long vectors, and Rsamtools does not (yet?) support that.

Martin

>
> Michael
>
> 	[[alternative HTML version deleted]]
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at r-project.org
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
>


-- 
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793



More information about the Bioconductor mailing list