Nesvilab / FragPipe

A cross-platform Graphical User Interface (GUI) for running MSFragger and Philosopher - powered pipeline for comprehensive analysis of shotgun proteomics data
http://fragpipe.nesvilab.org
Other
181 stars 37 forks source link

Python 3.10 & EasyPQP & LibraryGeneration disabled #1059

Closed JB91451 closed 1 year ago

JB91451 commented 1 year ago

Dear all,

I have python 3.10 installed on my computer and tried to use library generation with FragPipe. However, this version is not yet completely supported by pyopenms and thus I have use their nightly builds (currently this is 3.0). With this version, unfortunately, I can not install easypqp. If I do so by renaming the nightly build it works on command line and I can see a verison of easypqp using pip freeze:

''' C:\Users\proteomics>pip freeze absl-py==1.2.0 altgraph==0.17.2 appdirs==1.4.4 astunparse==1.6.3 attrs==22.1.0 biopython==1.79 cachetools==5.2.0 cascade-config==0.3.0 certifi==2022.6.15 cffi==1.15.1 charset-normalizer==2.1.0 click==8.1.3 colorama==0.4.5 cycler==0.11.0 Cython==0.29.30 deeplc==1.1.2 docopt==0.6.2 easypqp==0.1.36 fastobo==0.12.1 flatbuffers==1.12 fonttools==4.34.0 future==0.18.2 gast==0.4.0 google-auth==2.10.0 google-auth-oauthlib==0.4.6 google-pasta==0.2.0 greenlet==1.1.3.post0 grpcio==1.47.0 h5py==3.7.0 idna==3.3 Jinja2==3.1.2 joblib==1.2.0 jsonschema==3.2.0 KDEpy==1.1.0 keras==2.9.0 Keras-Preprocessing==1.1.2 kiwisolver==1.4.3 lark==1.1.3 libclang==14.0.6 llvmlite==0.39.1 lxml==4.9.1 Markdown==3.4.1 markdown-it-py==2.2.0 MarkupSafe==2.1.1 matplotlib==3.5.2 mdurl==0.1.2 ms2pip==3.11.0 ms2rescore==2.1.3 numba==0.56.3 numexpr==2.8.4 numpy==1.23.0 oauthlib==3.2.0 opt-einsum==3.3.0 packaging==21.3 pandas==1.4.3 patsy==0.5.3 pefile==2022.5.30 Pillow==9.2.0 pipreqs==0.4.11 progressbar2==4.1.1 protobuf==3.19.4 pyasn1==0.4.8 pyasn1-modules==0.2.8 pycparser==2.21 pydantic==1.10.5 pygam==0.8.0 Pygments==2.14.0 pyinstaller==5.7.0 pyinstaller-hooks-contrib==2022.15 pyopenms==3.0.0.dev20230328 pyparsing==3.0.9 PyQt6==6.3.1 PyQt6-Qt6==6.3.1 PyQt6-sip==13.4.0 pyrsistent==0.18.1 pyteomics==4.5.5 python-dateutil==2.8.2 python-utils==3.3.3 pytz==2022.1 pytz-deprecation-shim==0.1.0.post0 pywin32-ctypes==0.2.0 requests==2.28.1 requests-oauthlib==1.3.1 rich==13.3.2 rpy2==3.5.5 rsa==4.9 scikit-learn==0.24.2 scipy==1.9.3 seaborn==0.12.1 signalp6 @ file:///C:/Programs/SignalP_6_0/signalp-6-package six==1.16.0 spectrum-utils==0.3.5 SQLAlchemy==1.4.42 statsmodels==0.13.2 tables==3.7.0 tensorboard==2.9.1 tensorboard-data-server==0.6.1 tensorboard-plugin-wit==1.8.1 tensorflow==2.9.1 tensorflow-estimator==2.9.0 tensorflow-io-gcs-filesystem==0.26.0 termcolor==1.1.0 threadpoolctl==3.1.0 tomlkit==0.11.5 torch==1.13.1 tqdm==4.64.1 typing_extensions==4.3.0 tzdata==2022.6 tzlocal==4.2 urllib3==1.26.11 Werkzeug==2.2.2 wrapt==1.14.1 xgboost==1.6.2 yarg==0.1.9

'''

However, this is not recognized by FragPipe and there is still the hint to install it and library generation is not active in the corresponding tab. When I click the button an extremely large window apears after a while and the log states the error message below.

Is there any way to install easypqp properly?

Best, Juergen

''' Found existing installation: easypqp 0.1.35 Uninstalling easypqp-0.1.35: Successfully uninstalled easypqp-0.1.35Found existing installation: pyopenms 3.0.0.dev20230328 Uninstalling pyopenms-3.0.0.dev20230328: Successfully uninstalled pyopenms-3.0.0.dev20230328Collecting easypqp Using cached easypqp-0.1.36-py2.py3-none-any.whl Requirement already satisfied: lxml in c:\programs\python310\lib\site-packages (4.9.1) Requirement already satisfied: biopython in c:\programs\python310\lib\site-packages (from easypqp) (1.79) Using cached easypqp-0.1.35-py2.py3-none-any.whl Using cached easypqp-0.1.34.tar.gz (194 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Requirement already satisfied: Click>=8.0.0 in c:\programs\python310\lib\site-packages (from easypqp) (8.1.3) Requirement already satisfied: numpy in c:\programs\python310\lib\site-packages (from easypqp) (1.23.0) Requirement already satisfied: scipy in c:\programs\python310\lib\site-packages (from easypqp) (1.9.3) Requirement already satisfied: scikit-learn in c:\programs\python310\lib\site-packages (from easypqp) (0.24.2) Requirement already satisfied: statsmodels in c:\programs\python310\lib\site-packages (from easypqp) (0.13.2) Requirement already satisfied: pandas>=1.1.0 in c:\programs\python310\lib\site-packages (from easypqp) (1.4.3) Using cached easypqp-0.1.33.tar.gz (194 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.32.tar.gz (193 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.31.tar.gz (193 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.30.tar.gz (192 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.29.tar.gz (190 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.28.tar.gz (190 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.27.tar.gz (190 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.26.tar.gz (190 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.25.tar.gz (190 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.24.tar.gz (190 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.23.tar.gz (190 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.22.tar.gz (190 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.21.tar.gz (190 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.20.tar.gz (190 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.19.tar.gz (190 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.18.tar.gz (18 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.17.tar.gz (18 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.16.tar.gz (18 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.15.tar.gz (18 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.14.tar.gz (18 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.13.tar.gz (18 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.12.tar.gz (18 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.11.tar.gz (18 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.10.tar.gz (18 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.9.tar.gz (17 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.8.tar.gz (17 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.7.tar.gz (17 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.6.tar.gz (16 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.5.tar.gz (16 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.4.tar.gz (16 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.3.tar.gz (16 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.2.tar.gz (16 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Using cached easypqp-0.1.1.tar.gz (16 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Collecting pyprophet Using cached pyprophet-2.2.5.tar.gz (172 kB) Preparing metadata (setup.py): started Preparing metadata (setup.py): finished with status 'done' Collecting easypqp Using cached easypqp-0.1.0-py2.py3-none-any.whl (198 kB) ERROR: Cannot install easypqp==0.1.0, easypqp==0.1.1, easypqp==0.1.10, easypqp==0.1.11, easypqp==0.1.12, easypqp==0.1.13, easypqp==0.1.14, easypqp==0.1.15, easypqp==0.1.16, easypqp==0.1.17, easypqp==0.1.18, easypqp==0.1.19, easypqp==0.1.2, easypqp==0.1.20, easypqp==0.1.21, easypqp==0.1.22, easypqp==0.1.23, easypqp==0.1.24, easypqp==0.1.25, easypqp==0.1.26, easypqp==0.1.27, easypqp==0.1.28, easypqp==0.1.29, easypqp==0.1.3, easypqp==0.1.30, easypqp==0.1.31, easypqp==0.1.32, easypqp==0.1.33, easypqp==0.1.34, easypqp==0.1.35, easypqp==0.1.36, easypqp==0.1.4, easypqp==0.1.5, easypqp==0.1.6, easypqp==0.1.7, easypqp==0.1.8 and easypqp==0.1.9 because these package versions have conflicting dependencies.

The conflict is caused by: easypqp 0.1.36 depends on pyopenms>=2.6.0 easypqp 0.1.35 depends on pyopenms>=2.6.0 easypqp 0.1.34 depends on pyopenms>=2.6.0 easypqp 0.1.33 depends on pyopenms>=2.6.0 easypqp 0.1.32 depends on pyopenms>=2.6.0 easypqp 0.1.31 depends on pyopenms>=2.6.0 easypqp 0.1.30 depends on pyopenms>=2.6.0 easypqp 0.1.29 depends on pyopenms>=2.6.0 easypqp 0.1.28 depends on pyopenms>=2.6.0 easypqp 0.1.27 depends on pyopenms>=2.6.0 easypqp 0.1.26 depends on pyopenms>=2.6.0 easypqp 0.1.25 depends on pyopenms>=2.6.0 easypqp 0.1.24 depends on pyopenms>=2.6.0 easypqp 0.1.23 depends on pyopenms>=2.6.0 easypqp 0.1.22 depends on pyopenms>=2.6.0 easypqp 0.1.21 depends on pyopenms>=2.6.0 easypqp 0.1.20 depends on pyopenms>=2.6.0 easypqp 0.1.19 depends on pyopenms>=2.6.0 easypqp 0.1.18 depends on pyopenms>=2.6.0 easypqp 0.1.17 depends on pyopenms>=2.6.0 easypqp 0.1.16 depends on pyopenms>=2.6.0 easypqp 0.1.15 depends on pyopenms>=2.6.0 easypqp 0.1.14 depends on pyopenms>=2.6.0 easypqp 0.1.13 depends on pyopenms>=2.6.0 easypqp 0.1.12 depends on pyopenms>=2.6.0 easypqp 0.1.11 depends on pyopenms>=2.6.0 easypqp 0.1.10 depends on pyopenms easypqp 0.1.9 depends on pyopenms easypqp 0.1.8 depends on pyopenms easypqp 0.1.7 depends on pyopenms easypqp 0.1.6 depends on pyopenms easypqp 0.1.5 depends on pyopenms easypqp 0.1.4 depends on pyopenms easypqp 0.1.3 depends on pyopenms easypqp 0.1.2 depends on pyopenms easypqp 0.1.1 depends on pyopenms easypqp 0.1.0 depends on pyopenms

To fix this you could try to:

  1. loosen the range of package versions you've specified
  2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts '''

fcyu commented 1 year ago

Hi @JB91451 ,

You need to use Python 3.9

Best.

Fengchao

guoci commented 1 year ago

@JB91451I think you are not using the correct python on FragPipe. Can you type where pip on the command line and show the output? Is the directory of pip the same as the directory of the python path you input into FragPipe?

JB91451 commented 1 year ago

Dear Guo Chi and Fengchao,

Thank you for your support. Unfortunately, I can not use Python 3.9 on this particular computer. However, on a different PC with python 3.8 everything works as expected.

On the computer where the error occurs, the 'where pip' command returns two folders: C:\Programs\Python310\Scripts\pip.exe C:\Programs\Python_3_8_4\Scripts\pip.exe

and Python is located at: C:\Programs\Python310\python

As the issue can be circumvented by using a different PC / python version, I would be pleased with that solution.

Best regards, Juergen

fcyu commented 1 year ago

However, on a different PC with python 3.8 everything works as expected.

Ah, yes, this pull request (https://github.com/Nesvilab/FragPipe/pull/976) makes FragPipe support Python 3.8.

Best,

Fengchao