bug in beadarray::setWeights
1
0
Entering edit mode
@mehrdad-shamsi-3816
Last seen 9.7 years ago
Hi, Passing a list of weights, that has one vector of weights as the only component, to beadarray::setWeights causes R to aquire the entire available memory. After grabbing the maximum available memory, the function produces insufficient memory error and quits. Example: library(beadarray) data(BLData); output <- BASH(BLData, array = 1); BLData <- setWeights(BLData, wts = output$wts, array = 1); Error: cannot allocate vector of size 389 Kb In addition: Warning messages: 1: In class(x) <- NULL : Reached total allocation of 1535Mb: see help(memory.size) 2: In class(x) <- NULL : Reached total allocation of 1535Mb: see help(memory.size) 3: In x[[name]] <- value : Reached total allocation of 1535Mb: see help(memory.size) 4: In x[[name]] <- value : Reached total allocation of 1535Mb: see help(memory.size) 5: In x[[name]] <- value : Reached total allocation of 1535Mb: see help(memory.size) 6: In x[[name]] <- value : Reached total allocation of 1535Mb: see help(memory.size) Source of the problem: The way the special case of "length(array) == 1" is dealth with in is the source of the problem. Best regards -- M. S.
• 1.0k views
ADD COMMENT
0
Entering edit mode
Mark Dunning ★ 1.1k
@mark-dunning-3319
Last seen 14 months ago
Sheffield, Uk
Hi, You may need to upgrade your version of beadarray. I recall this bug being present in older versions, but it should now be fixed for Bioconductor 2.5 (beadarray 1.14.0). Regards, Mark On Sun, Nov 22, 2009 at 6:46 PM, Mehrdad Shamsi <mehrdad.shamsi at="" oicr.on.ca=""> wrote: > Hi, > > Passing a list of weights, that has one vector of weights as the only component, > to beadarray::setWeights causes R to aquire the entire available memory. > After grabbing the maximum available memory, the function produces insufficient memory error and quits. > > Example: > library(beadarray) > data(BLData); > output <- BASH(BLData, array = 1); > BLData <- setWeights(BLData, wts = output$wts, array = 1); > > Error: cannot allocate vector of size 389 Kb > In addition: Warning messages: > 1: In class(x) <- NULL : > ?Reached total allocation of 1535Mb: see help(memory.size) > 2: In class(x) <- NULL : > ?Reached total allocation of 1535Mb: see help(memory.size) > 3: In x[[name]] <- value : > ?Reached total allocation of 1535Mb: see help(memory.size) > 4: In x[[name]] <- value : > ?Reached total allocation of 1535Mb: see help(memory.size) > 5: In x[[name]] <- value : > ?Reached total allocation of 1535Mb: see help(memory.size) > 6: In x[[name]] <- value : > ?Reached total allocation of 1535Mb: see help(memory.size) > > Source of the problem: > The way the special case of "length(array) == 1" is dealth with in is the source of the problem. > > > Best regards > -- M. S. > > _______________________________________________ > Bioconductor mailing list > Bioconductor at stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor >
ADD COMMENT
0
Entering edit mode
Mark, Thanks for the help. I upgraded to the new version. The problem is resolved. But it seems that in this version's implementation of beadarray::setWeigths, the check for "length(array)==1" is redundant. In other words, the special case of length(array==1) is treated in the same way as other cases; and therefore one can get rid of check for (array(length==1) entirely. There is still one problem (bug) to be resolved: In the current implementation, if one passes a vector of weights (not a list that contains one vector) to the function, all the weights are set to the **first element** of the vector, which is the direct result of using wts[[1]] for the special case of length(array==1). One more question. I noticed that you copy BLData object to a new object, BLData.copy, and use the copy in the body of the function. Is there any specific reason for that? Regards -- M. S. From: Mark Dunning [mark.dunning@gmail.com] Sent: Monday, November 23, 2009 4:48 AM To: Mehrdad Shamsi Cc: bioconductor at stat.math.ethz.ch Subject: Re: [BioC] bug in beadarray::setWeights Hi, You may need to upgrade your version of beadarray. I recall this bug being present in older versions, but it should now be fixed for Bioconductor 2.5 (beadarray 1.14.0). Regards, Mark On Sun, Nov 22, 2009 at 6:46 PM, Mehrdad Shamsi <mehrdad.shamsi at="" oicr.on.ca=""> wrote: > Hi, > > Passing a list of weights, that has one vector of weights as the only component, > to beadarray::setWeights causes R to aquire the entire available memory. > After grabbing the maximum available memory, the function produces insufficient memory error and quits. > > Example: > library(beadarray) > data(BLData); > output <- BASH(BLData, array = 1); > BLData <- setWeights(BLData, wts = output$wts, array = 1); > > Error: cannot allocate vector of size 389 Kb > In addition: Warning messages: > 1: In class(x) <- NULL : > Reached total allocation of 1535Mb: see help(memory.size) > 2: In class(x) <- NULL : > Reached total allocation of 1535Mb: see help(memory.size) > 3: In x[[name]] <- value : > Reached total allocation of 1535Mb: see help(memory.size) > 4: In x[[name]] <- value : > Reached total allocation of 1535Mb: see help(memory.size) > 5: In x[[name]] <- value : > Reached total allocation of 1535Mb: see help(memory.size) > 6: In x[[name]] <- value : > Reached total allocation of 1535Mb: see help(memory.size) > > Source of the problem: > The way the special case of "length(array) == 1" is dealth with in is the source of the problem. > > > Best regards > -- M. S. > > _______________________________________________ > Bioconductor mailing list > Bioconductor at stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor >
ADD REPLY

Login before adding your answer.

Traffic: 695 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6