Nesvilab/FragPipe

Testing FragPipe 22.0 linux container version

Closed this issue · 11 comments

Hello,

I'm testing the linux container version of FragPipe 22.0 with this command:

singularity exec -e --bind /home/proteomics/mysoftware/FragPipe-22-test:/home/tmp docker://proteomicsunitcrg/fragpipe:22.0 /fragpipe_bin/fragPipe-22.0/fragpipe/bin/fragpipe --headless --workflow /home/proteomics/mysoftware/FragPipe-22-test/fragpipe-docker.workflow --manifest /home/proteomics/mysoftware/FragPipe-22-test/fragpipe-docker.manifest --workdir /home/proteomics/mysoftware/FragPipe-22-test/output-22.0

and I got this error:

2024-05-30 15:53:23,354 ERROR - MSFragger path does not exist.

But it does exist. If I do:

singularity exec -e --bind /home/proteomics/mysoftware/FragPipe-22-test:/home/tmp docker://proteomicsunitcrg/fragpipe:22.0 java -jar /home/tmp/extra-tools-22.0/MSFragger-4.1/MSFragger-4.1.jar

I get:

MSFragger version MSFragger-4.1

The fragpipe-docker.workflow is the one from the previous version. Maybe it has changed? So I'm using this command to load MSFragger within the workflow file:

fragpipe-config.bin-msfragger=/home/tmp/extra-tools-22.0/MSFragger-4.1/MSFragger-4.1.jar

Thanks!

fcyu commented

The fragpipe-docker.workflow is the one from the previous version. Maybe it has changed? So I'm using this command to load MSFragger within the workflow file:

Yes, the options to specify the tools' path have been changed: https://fragpipe.nesvilab.org/docs/tutorial_headless.html. Need to update your workflow file accordingly. Even better, open the FragPipe GUI and export a new workflow. There are a lot more options and changes.

Best,

Fengchao

I tried but it seems that is not generating the local path where MSFragger is in. This is the GUI with the MSFragger panel:

2024-05-30 18_31_44-100 - 10 14 1 100 - Conexión a Escritorio remoto

And by clicking to "Save to custom folder":

2024-05-30 18_36_31-100 - 10 14 1 100 - Conexión a Escritorio remoto

I get this test.workflow file but with no MSFragger folder path inside:

test.zip

Do you know why?

fcyu commented

Could you try using the --config-tools-folder when running FragPipe in CLI?

Thanks,

Fengchao

Yes, now it finds the path! But I got this almost at the end of the run:

        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
  File "/home/proteomics/.local/bin/easypqp", line 5, in <module>
    from easypqp.main import cli
  File "/home/proteomics/.local/lib/python3.10/site-packages/easypqp/main.py", line 9, in <module>
    from .convert import conversion, basename_spectralfile
  File "/home/proteomics/.local/lib/python3.10/site-packages/easypqp/convert.py", line 580, in <module>
    import numba
  File "/home/proteomics/.local/lib/python3.10/site-packages/numba/__init__.py", line 55, in <module>
    _ensure_critical_deps()
  File "/home/proteomics/.local/lib/python3.10/site-packages/numba/__init__.py", line 42, in _ensure_critical_deps
    raise ImportError("Numba needs NumPy 1.25 or less")
ImportError: Numba needs NumPy 1.25 or less
Traceback (most recent call last):
  File "/fragpipe_bin/fragPipe-22.0/fragpipe/tools/speclib/gen_con_spec_lib.py", line 580, in <module>
    main()
  File "/fragpipe_bin/fragPipe-22.0/fragpipe/tools/speclib/gen_con_spec_lib.py", line 552, in main
    main_easypqp(params, irt_df, allcmds, easypqp_convert_cmds)
  File "/fragpipe_bin/fragPipe-22.0/fragpipe/tools/speclib/gen_con_spec_lib.py", line 306, in main_easypqp
    subprocess.run([os.fspath(params.easypqp), '--version'], check=True)
  File "/usr/lib/python3.10/subprocess.py", line 526, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/home/proteomics/.local/bin/easypqp', '--version']' returned non-zero exit status 1.
Process 'SpecLibGen' finished, exit code: 1
Process returned non-zero exit code, stopping

~~~~~~~~~~~~~~~~~~~~
Cancelling 4 remaining tasks

Maybe is the easypqp lib? But In the Dokerfile we already have it...

# install python packages
RUN pip uninstall easypqp \
    && pip install git+https://github.com/Nesvilab/easypqp.git@master \
    && pip install lxml
fcyu commented

Maybe due to this ImportError: Numba needs NumPy 1.25 or less? It is interesting. I will investigate later today.

Thanks for the testing and feedback.

Best,

Fengchao

This is related to #1430.

FYI I added this to the Dockerfile

# install python packages
RUN pip uninstall easypqp \
    && pip install git+https://github.com/Nesvilab/easypqp.git@master \
    && pip install lxml \
    && pip install numpy==1.24 \
    && pip install -U statsmodels

And got the same error:

        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
  File "/home/proteomics/.local/bin/easypqp", line 5, in <module>
    from easypqp.main import cli
  File "/home/proteomics/.local/lib/python3.10/site-packages/easypqp/main.py", line 9, in <module>
    from .convert import conversion, basename_spectralfile
  File "/home/proteomics/.local/lib/python3.10/site-packages/easypqp/convert.py", line 580, in <module>
    import numba
  File "/home/proteomics/.local/lib/python3.10/site-packages/numba/__init__.py", line 55, in <module>
    _ensure_critical_deps()
  File "/home/proteomics/.local/lib/python3.10/site-packages/numba/__init__.py", line 42, in _ensure_critical_deps
    raise ImportError("Numba needs NumPy 1.25 or less")
ImportError: Numba needs NumPy 1.25 or less
Traceback (most recent call last):
  File "/fragpipe_bin/fragPipe-22.0/fragpipe/tools/speclib/gen_con_spec_lib.py", line 580, in <module>
    main()
  File "/fragpipe_bin/fragPipe-22.0/fragpipe/tools/speclib/gen_con_spec_lib.py", line 552, in main
    main_easypqp(params, irt_df, allcmds, easypqp_convert_cmds)
  File "/fragpipe_bin/fragPipe-22.0/fragpipe/tools/speclib/gen_con_spec_lib.py", line 306, in main_easypqp
    subprocess.run([os.fspath(params.easypqp), '--version'], check=True)
  File "/usr/lib/python3.10/subprocess.py", line 526, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/home/proteomics/.local/bin/easypqp', '--version']' returned non-zero exit status 1.
Process 'SpecLibGen' finished, exit code: 1
Process returned non-zero exit code, stopping

~~~~~~~~~~~~~~~~~~~~
Cancelling 4 remaining tasks
fcyu commented

Hi @rolivella ,

I finally had some time to investigate it more, and I couldn't reproduce the error using your workflow file. Here is the log test_docker.log.

BTW, your workflow file has speclibgen.run-speclibgen=false so I had to change it to true to run EasyPQP. Not sure if the one you uploaded is the one you were using.

Best,

Fengchao

Sorry, I got mixed up with the configuration files. Everything works fine with the correct workflow file version. Thanks!

Hi!
I have a similar issue with finding the tool file paths using headless mode (latest docker).

When I use --config-tools-folder and specify the tools folder containing msfragger folder, it still requires the IonQuant and diaTracer file paths to run:
ERROR - diaTracer path does not exist.

though I will not use those tools for all runs.

Does this flag require all three? I was unsuccessful using fragpipe-config.bin- for individual tools in the .workflow.

Thank you!
Heta

fcyu commented

Hi Heta,

Yes, the current version requires all of MSFragger, IonQuant, and diaTracer. If you already have the MSFragger license, you should be able to download and use diaTracer.

Best,

Fengchao