Skip to main content
Topic: XCMS error after peak detection (Read 5096 times) previous topic - next topic

XCMS error after peak detection

Hi guys

I try to process a LC_MS data set with XCMS using the so-called betonbox. I have used this approach with many data sets without any problem. With this particular data set the mining stops after the peak detection giving me the following error

Error in checkForRemoteErrors(val) :
  2 nodes produced errors; first error: m/z sort assumption violated ! (scan 1636, p 283, current 69.8206 (I=2.03), last 69.8243)

I have attached a copy of the data processing parameteres i use. I know some of them may sound extreme for U(H)PLC data but I tried so many parametrs and alwasy get the same error message

Does anyone has an idea or a possible solution to solve this problem

Thanks
Filippos

Re: XCMS error after peak detection

Reply #1
Hi,

this most likely has to do with the raw data conversion,
I guess you have a waters instrument ?
Check the forum for "m/z sort assumption violated"

Yours,
Steffen
--
IPB Halle                          Mass spectrometry & Bioinformatics
Dr. Steffen Neumann         http://www.IPB-Halle.DE
Weinberg 3 06120 Halle     Tel. +49 (0) 345 5582 - 1470
sneumann(at)IPB-Halle.DE

Re: XCMS error after peak detection

Reply #2
Hi Stephen

Thanks for the reply. Yes the data has been created on a Waters system. I will follow the previous related posts and seek a solution

Regards
Filippos

 

Re: XCMS error after peak detection

Reply #3
Hi Steffen

I tried the code below, found on an earlier post by hpbenton to correct the problem I described earlier. It seems the code did not really do anything and the errror message is still there.

checkAllcdfs<-function(Ftype="mzXML", nSlaves=1){
  AllCDFs<-list.files(recursive=TRUE, pattern=Ftype, ignore.case=TRUE, full.names=TRUE)
  if(nSlaves >1){
      if(require(snow)){
        cl <- makeCluster(nSlaves, type = "SOCK")
      }
      clusterEvalQ(cl, library(xcms))
      unlist(clusterApply(cl, AllCDFs, checkCDFfile))
      stopCluster(cl)
  } else{
      sapply(AllCDFs, checkCDFfile)
      cat("n")
  }
}

checkCDFfile<-function(file, type=".mzXML"){
  cat("n")
  cat(paste("Loading File:", file, sep=""))
  xr<-xcmsRaw(file, profstep=0)
  for(i in 1:length(xr@scanindex)){
      scan<-getScan(xr, scan=i)
      if(is.unsorted(scan[,"mz"]) == TRUE){
        cat(" x ")
        newfile<-sub(type, "-Fixed.mzdata", file, ignore.case=TRUE)
        write.mzdata(xr, newfile)
        file.copy(file, sub(type, ".OLD", file, ignore.case=TRUE))
        unlink(file)
        rm(list=ls())
        gc()
        return(1)
      }
      if(i == length(xr@scanindex)){
        cat(" O ")
        rm(list=ls())
        gc()
        return(0)
      }
  }
}

Many thanks
Filippos