Nesvilab / FragPipe

A cross-platform proteomics data analysis suite
http://fragpipe.nesvilab.org
Other
205 stars 38 forks source link

Fragpipe error caused by MSFragger Python script at mass calibration stage #977

Closed ashwinkallor closed 1 year ago

ashwinkallor commented 1 year ago

I am running a "Non_Specific_HLA" search on Fragpipe v 19.1 for several immunopeptidomic datasets. I have set "run.msfragger=true" in the workflow. The workflow runs correctly till the MSFragger mass calibration stage, at which point I get the following error:

Operating on slice 1 of 1: Traceback (most recent call last): File "/net/pr2/projects/plgrid/plgg_iccvs/tools/FragPipe-19.1/fragpipe/tools/msfragger_pep_split.py", line 630, in main() File "/net/pr2/projects/plgrid/plgg_iccvs/tools/FragPipe-19.1/fragpipe/tools/msfragger_pep_split.py", line 614, in main calibrate_mzBIN, params_txt_new = calibrate(fasta_path_sample, calibrate_mass) File "/net/pr2/projects/plgrid/plgg_iccvs/tools/FragPipe-19.1/fragpipe/tools/msfragger_pep_split.py", line 494, in calibrate raise AssertionError(p) AssertionError: <Popen: returncode: -9 args: ['java', '-jar', '-Dfile.encoding=UTF-8', '-Xmx...> Process 'MSFragger' finished, exit code: 1 Process returned non-zero exit code, stopping

I assume the error may be caused by some conflicting parameters within fragger.params but could you let me know how this could be solved? Thanks a lot!

Best, Ashwin

fcyu commented 1 year ago

Hi Ashwin,

Can you upload your log file?

Thanks,

Fengchao

ashwinkallor commented 1 year ago

Sure, here it is:

log.txt

fcyu commented 1 year ago

Thanks for your file.

I think something was wrong with your mzml file or the memory is not big enough. Could you try to set the split database to 0, and try again?

You probability need to delete all results files in the /net/pr2/projects/plgrid/plgg_iccvs/Datasets/proteomics_datasets/immunopeptidomics/PRIDE/meta_analysis/data_all/second_round_search/non_iodoacetamide3/PXD018539 before starting a new search.

Best,

Fengchao

ashwinkallor commented 1 year ago

Thanks, Fengchao. I will implement your suggestions and try again.

ashwinkallor commented 1 year ago

In which file is this option of "split database" ? I don't see it in either fragger.params or the workflow files?

fcyu commented 1 year ago

It is msfragger.misc.slice-db in the workflow file.

Best,

Fengchao

ashwinkallor commented 1 year ago

I changed the msfragger.misc.slice-db to '0' but now Fragpipe stops at MSFragger and does not run DIA-NN, Percolator, Philosopher etc. The log file is attached. log2.txt

fcyu commented 1 year ago

Thanks for the update.

Something does not look right: FragPipe detected that there are 154 GB free memory, but MSFragger couldn't get enough memory to build an index with size 57.84 GB. I think you need to double check and troubleshoot your computer.

Also, you set the thread number to 1. This is something maybe you could change.

Best,

Fengchao

ashwinkallor commented 1 year ago

Okay, I have just modified the number of threads and have restarted the run. I am running on a cluster and have allocated 6 cores to a single run, each 50 GB.

As an additional question, is mass calibration really necessary? Would the results drastically change if I set mass calibrate to "0" in the workflow file?

fcyu commented 1 year ago

As an additional question, is mass calibration really necessary? Would the results drastically change if I set mass calibrate to "0" in the workflow file?

It won't change the result drastically in most cases. You can disable it by setting msfragger.calibrate_mass to 0.

Best,

Fengchao

ashwinkallor commented 1 year ago

Hi, I tried changing the msfragger.calibrate_mass to '0' in the workflow file then ran Fragpipe. However, I am now recieiving a CalledSubprocessError (log file attached). I checked the msfragger_split_peptides.py script and on line 611, there is only an option of "if calibrate_mass in [1 , 2]". I wonder if this is what is causing the error, because '0' is not in any of the options?

log3.txt

fcyu commented 1 year ago

If calibrate_mass=0, FragPipe won't use the Python script at all (see the attached log file as an example). Something must be wrong in your settings. Can you create a new folder and start from the scratch?

Also, I noticed that you didn't configure IonQuant but use freequant to do LFQ. I suggest you download and configure IonQuant and use that for LFQ.

Best,

Fengchao

log_2023-01-24_13-57-56.txt

fcyu commented 1 year ago

I apologize that I confused the calibrate_mass with the slice-db. Yes, with calibrate_mass=0 but slice-db > 0, FragPipe uses the Python script, but I could not reproduce your error.

Best,

Fengchao

ashwinkallor commented 1 year ago

Thank you very much. I am trying these changes again.

ashwinkallor commented 1 year ago

Hi Fengchao,

I think the issue appears to be resolved now. I just completed running two separate datasets without any further errors. I set both "msfragger.misc.database-slice" and "calibrate-mass" to '0' (attached one of the log files), so I guess this prevented the msfragger_split_peptides.py from running. Perhaps there are issues with the memory that are causing problems in the splits/calibration steps.

Thanks again for all your support and patience. I am closing the ticket now.

Best, Ashwin log6.txt