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!
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:
And by clicking to "Save to custom folder":
I get this test.workflow
file but with no MSFragger folder path inside:
Do you know why?
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
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
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
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
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