yufree / xcmsrocker

Rocker image for metabolomics data analysis
https://hub.docker.com/repository/docker/yufree/xcmsrocker
MIT License
13 stars 3 forks source link

PMDDA Error in unserialize(node$con) : error reading from connection #3

Open wushaowen1992 opened 2 years ago

wushaowen1992 commented 2 years ago

Hi yufree, I am trying to use this good tool xcmsrocker that you developed and try to repeat your PMDDA workflow, however, when I run the demo data, and reach to the step:

IPO

resultRetcorGroup <- optimizeRetGroup(xset = optimizedXcmsSetObject, params = retcorGroupParameters, plot = F, subdir = NULL)

I always got an error says "Error in unserialize(node$con) : error reading from connection". From the internet, it seems to be a problem with parallel calculation, I wonder if you know how to deal with this issue? Thanks very much for your help.

yufree commented 2 years ago

Yes. This error is parallel computation related. I wonder where you run the xcmsrokcer? HPC or local computer?

wushaowen1992 commented 2 years ago

I am runing on a local computer, with 16 cores of CPU and 32 G of memory.

wushaowen1992 commented 2 years ago

How can I reduce the number of parallel calculation in order to keep it going? Although this will prolong the running time. Thanks.

yufree commented 2 years ago

You can add the following code before the error codes to skip the parallel computation:

BiocParallel::register(BiocParallel::SerialParam(), default = TRUE)

Another option is to use a local version of PMDDA. xcmsrocker is mainly designed for hpc and user need to know how to mapping local path through docker to use their own data. In your case, a local version might be much easier. You could clone this repo: https://github.com/yufree/pmdda

Click 'PMDDA.Rproj' in RStudio to open the project. Then you will need renv package to reproduce the software environment needed for PMDDA:

install.packages('renv')
renv::restore()
wushaowen1992 commented 2 years ago

Thanks for this detailed information. I will try to follow the local version.

wushaowen1992 commented 2 years ago

Hi, I tried to work with both xcmsrocker and local PMDDA project, both have some issues. I tried to use xcmsrocker, with BiocParallel::register(BiocParallel::SerialParam(), default = FALSE), IPO could work. but when I reach to the step, # back up peak list as csv file and xcmsSet object mzrt <- enviGCMS::getmzrt(srm, name = 'srm') I see the srmxset.rds, but no csv file, and an error says: Note: you might want to set/adjust the 'sampclass' of the returned xcmSet object before proceeding with the analysis. Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘featureValues’ for signature ‘"xcmsSet"’ How could I deal with this issue? Thank you.

yufree commented 2 years ago

It's wired. Anyway the csv file could be generated via the srmxset.rds. You can try the following code:

mzrt<-readRDS('srmxset.rds')
enviGCMS::getmzrt(mzrt,'srm')

Then you should see srmmzrt.csv.