Hi all, I now have all packages installed to test things and can reproduce the problem. I must confess that I don't have a deep understanding on how S4 initialization works, so solution attempts on my side are very trial-and-errory.
I will have to look into the workings of these initialization methods anyway in the future. The RMassBank version currently on Bioc-devel uses the default constructor (i.e. doesn't actually define an "initialize" method). However, one of my development versions has an initialize method, which I introduced to work around a bug with Versioned initialize (see my question here [1], the reply [2], and my current code [3]). That one is *also* incompatible with the new MSnbase constructors because of some argument mapping issues (but there might also be a workaround for that.) [1] https://stat.ethz.ch/pipermail/bioc-devel/2016-January/008528.html [2] https://stat.ethz.ch/pipermail/bioc-devel/2016-January/008576.html [3] https://github.com/MassBank/RMassBank/blob/s4power/R/SpectrumMethods.R#L124 On 07.10.2016 22:34, Laurent Gatto wrote: > On 7 October 2016 21:30, Rainer Johannes wrote: > >> an update: >> >> I've switched back to the "default" initialize methods for Spectrum1 >> and Spectrum2 objects in MSnbase (not implemented in C) and with these >> installing RMassBank seems to work. >> I have however now to run some intense torture tests on MSnbase to >> ensure that we don't run again into the random memory problems that we >> had in MSnbase (issue https://github.com/lgatto/MSnbase/issues/138) > I have done the same thing, which also needed addressing some unit > tests. I will push these updates to master for after a final package > check, but wait for the results of your intense torture tests before > committing to svn. > > Laurent > >> jo >> >> >>> On 7 Oct 2016, at 20:14, Rainer Johannes <johannes.rai...@eurac.edu> wrote: >>> >>> we could try to switch back from the C-constructors to the "old" ones, I'll >>> check later >>> >>>> On 7 Oct 2016, at 20:03, Schymanski, Emma <emma.schyman...@eawag.ch> wrote: >>>> >>>> Hi Laurent, >>>> >>>> I don't have an answer for you right now - but in CC are also the other 3 >>>> involved in trying to fix this on our side... >>>> Just to make sure that all have the respective email addresses to try >>>> speed up the debugging... >>>> >>>> Thanks! >>>> Emma >>>> ________________________________________ >>>> From: Laurent Gatto [lg...@cam.ac.uk] >>>> Sent: Friday, 7 October 2016 7:52 PM >>>> To: Schymanski, Emma; Martin Morgan >>>> Cc: bioc-devel@r-project.org; Rainer Johannes >>>> Subject: Re: [Bioc-devel] RMassBank build error >>>> >>>> Dear Emma, >>>> >>>> The error is very strange indeed, and I hope Martin can help us out here. >>>> >>>> With the latest RMassBank and MSnbase, I get >>>> >>>>> new("RmbSpectrum2") >>>> Error in initialize(value, ...) : >>>> 'initialize' method returned an object of class “Spectrum2” instead of >>>> the required class “RmbSpectrum2” >>>> >>>> which reproduces the error. >>>> >>>> The RmbSpectrum2 class is defined in a standard way >>>> >>>> .RmbSpectrum2 <- setClass("RmbSpectrum2", >>>> representation = representation( >>>> satellite="logical", >>>> low="logical", >>>> rawOK ="logical", >>>> good = "logical", >>>> mzCalc = "numeric", >>>> formula = "character", >>>> dbe = "numeric", >>>> formulaCount = "integer", >>>> dppm = "numeric", >>>> dppmBest = "numeric", >>>> ok = "logical", >>>> info = "list" >>>> ), >>>> contains=c("Spectrum2"), >>>> prototype = prototype( >>>> satellite = logical(), >>>> low = logical(), >>>> rawOK = logical(), >>>> good = logical(), >>>> mzCalc = numeric(), >>>> formula = character(), >>>> dbe = numeric(), >>>> formulaCount = integer(), >>>> dppm = numeric(), >>>> dppmBest = numeric(), >>>> ok = logical(), >>>> info = list(), >>>> new("Versioned", >>>> versions=c(classVersion("Spectrum2"), >>>> RmbSpectrum2 = >>>> "0.1.0")) >>>> )) >>>> >>>> >>>> and >>>> >>>>> new("Spectrum2") >>>> Object of class "Spectrum2" >>>> Precursor: NA >>>> Retention time: : >>>> Charge: NA >>>> MSn level: 2 >>>> Peaks count: 0 >>>> Total ion count: 0 >>>> >>>> works. >>>> >>>> The MSnbase maintainers have had a bit of a struggle with spurious and >>>> stange failures in the recent past (see [1]). This ans a whole new >>>> backend in the package have led to the following initialize method, that >>>> constructs the class directly in C >>>> >>>> setMethod("initialize", >>>> "Spectrum2", >>>> function(.Object, msLevel = 2L, peaksCount = length(mz), >>>> rt = numeric(), acquisitionNum = NA_integer_, >>>> scanIndex = integer(), tic = 0L, mz = numeric(), >>>> intensity = numeric(), fromFile = numeric(), >>>> centroided = NA, smoothed = NA, >>>> polarity = NA_integer_, merged = 1, >>>> precScanNum = NA_integer_, precursorMz = NA, >>>> precursorIntensity = NA, precursorCharge = NA_integer_, >>>> collisionEnergy = NA) { >>>> .Object <- Spectrum2_mz_sorted(msLevel, peaksCount, rt, >>>> acquisitionNum, scanIndex, >>>> tic, mz, intensity, fromFile, >>>> centroided, smoothed, polarity, >>>> merged, precScanNum, >>>> precursorMz, >>>> precursorIntensity, >>>> precursorCharge, >>>> collisionEnergy) >>>> if (validObject(.Object)) >>>> .Object >>>> }) >>>> >>>> >>>> Why is calling new("RmbSpectrum2") direclty returning an Spectrum2 >>>> object? Is this due to us not calling callNextMethod? >>>> >>>> Laurent >>>> >>>> [1] https://github.com/lgatto/MSnbase/issues/138 >>>> >>>> >>>> On 7 October 2016 17:02, Schymanski, Emma wrote: >>>> >>>>> Hi BioC team, >>>>> >>>>> In all the mzR troubles, it slipped through that RMassBank had a build >>>>> error of it's own presumably caused by an update to MSnbase - for some >>>>> reason we never received the email with the build error reports?! >>>>> We have discovered the error now, very late, and are onto finding out the >>>>> cause to fix it but it is not straightforward. Now that it is the day of >>>>> the deadline to pass build without error, are we able to have a little >>>>> leeway if needed? It's taken us the whole day to get the right binaries >>>>> to actually have a chance to start fixing... >>>>> Can someone also check or explain why we no longer receive the emails >>>>> reporting errors to us? >>>>> >>>>> Thanks, >>>>> Emma (on behalf of the others) >>>>> _______________________________________________ >>>>> Bioc-devel@r-project.org mailing list >>>>> https://stat.ethz.ch/mailman/listinfo/bioc-devel >>>> >>>> -- >>>> Laurent Gatto | @lgatt0 >>>> http://cpu.sysbiol.cam.ac.uk/ >>>> http://lgatto.github.io/ > _______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel