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
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
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
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