patrickbryant1 / SpeedPPI

Rapid protein-protein interaction network creation from multiple sequence alignments with Deep Learning
Other
65 stars 14 forks source link

SpeedPPI some_vs_some test failure #2

Closed lucajovine closed 1 year ago

lucajovine commented 1 year ago

Hi @patrickbryant1 , I finally got round to installing SpeedPPI, but when I run the test I get the following:

speedppi_test.log

patrickbryant1 commented 1 year ago

Hi, in the log it says that the error is related to the installation of the packages somehow: AttributeError: module 'collections' has no attribute 'Iterable' How did you install your environment? Are you sure you have the right python version. A quick search shows that this may be related to python 3.10.

lucajovine commented 1 year ago

I just did "conda env create -f speed_ppi.yml", as by the instructions...

If there is a requirement for a specific version of python, shouldn't that be specified in this file?

(and yes, my default python is (mini)conda's python 3.10.10)

patrickbryant1 commented 1 year ago

Yes, this should have been specified. I changed the yml to have python 3.9. I think whatever you have is used as default. Can you please try it again?

lucajovine commented 1 year ago

Of course - will re-install and re-test, then let you know. Thank you!

lucajovine commented 1 year ago

Hi again, the test is now producing prediction files, so using python 3.9 instead of 3.10 indeed seems to have fixed the issue. Thanks!!

lucajovine commented 1 year ago

One minor thing re: the described installation procedure, for the test to run I also had to do:

mv data/uniclust30/uniclust30_2018_08/* data/uniclust30/
rmdir data/uniclust30/uniclust30_2018_08

because the files are expected to be in data/uniclust30 rather than data/uniclust30/uniclust30_2018_08

patrickbryant1 commented 1 year ago

Great to hear! Thanks for the tip, updated this to simply be in "/data/uniclust30_2018_08"

lucajovine commented 1 year ago

Uhm... however, now I am getting:

RuntimeError: jaxlib version 0.4.7 is newer than and incompatible with jax version 0.3.25. Please update your jax and/or jaxlib packages.

Re-set version with:

conda install -c conda-forge jaxlib=0.3.24

and now trying again...

patrickbryant1 commented 1 year ago

I think this must be related to what you have installed locally since jax 0.4 is not supported here and not installed in the conda env. Make sure that your conda uses the packages installed in the SpeedPPI env.

lucajovine commented 1 year ago

Yes, I think it inherited it from my conda base... seems to be running again now, will confirm when it's done.

lucajovine commented 1 year ago
AttributeError: module 'numpy' has no attribute 'int'.

Do I also need a specific version of numpy? I have 1.23.5... which should be fine for numpy>=1.19.5

The whole error log is:

(...)
Running pred 1 out of 3
Traceback (most recent call last):
  File "/usr/local/speedppi/SpeedPPI/./src/run_alphafold_some_vs_some.py", line 29, in <module>
    from alphafold.common import protein
  File "/usr/local/speedppi/SpeedPPI/src/alphafold/common/protein.py", line 19, in <module>
    from alphafold.common import residue_constants
  File "/usr/local/speedppi/SpeedPPI/src/alphafold/common/residue_constants.py", line 773, in <module>
    restype_atom37_to_rigid_group = np.zeros([21, 37], dtype=np.int)
  File "/usr/local/conda/miniconda3/envs/SpeedPPI/lib/python3.9/site-packages/numpy/__init__.py", line 305, in __getattr__
    raise AttributeError(__former_attrs__[attr])
AttributeError: module 'numpy' has no attribute 'int'.
`np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
    https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
Running pred 2 out of 3
Traceback (most recent call last):
  File "/usr/local/speedppi/SpeedPPI/./src/run_alphafold_some_vs_some.py", line 29, in <module>
    from alphafold.common import protein
  File "/usr/local/speedppi/SpeedPPI/src/alphafold/common/protein.py", line 19, in <module>
    from alphafold.common import residue_constants
  File "/usr/local/speedppi/SpeedPPI/src/alphafold/common/residue_constants.py", line 773, in <module>
    restype_atom37_to_rigid_group = np.zeros([21, 37], dtype=np.int)
  File "/usr/local/conda/miniconda3/envs/SpeedPPI/lib/python3.9/site-packages/numpy/__init__.py", line 305, in __getattr__
    raise AttributeError(__former_attrs__[attr])
AttributeError: module 'numpy' has no attribute 'int'.
`np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
    https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
Running pred 3 out of 3
Traceback (most recent call last):
  File "/usr/local/speedppi/SpeedPPI/./src/run_alphafold_some_vs_some.py", line 29, in <module>
    from alphafold.common import protein
  File "/usr/local/speedppi/SpeedPPI/src/alphafold/common/protein.py", line 19, in <module>
    from alphafold.common import residue_constants
  File "/usr/local/speedppi/SpeedPPI/src/alphafold/common/residue_constants.py", line 773, in <module>
    restype_atom37_to_rigid_group = np.zeros([21, 37], dtype=np.int)
  File "/usr/local/conda/miniconda3/envs/SpeedPPI/lib/python3.9/site-packages/numpy/__init__.py", line 305, in __getattr__
    raise AttributeError(__former_attrs__[attr])
AttributeError: module 'numpy' has no attribute 'int'.
`np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
    https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
Traceback (most recent call last):
  File "/usr/local/speedppi/SpeedPPI/./src/build_ppi.py", line 32, in <module>
    ppi_net = pd.concat(all_ppis)
  File "/usr/local/conda/miniconda3/envs/SpeedPPI/lib/python3.9/site-packages/pandas/util/_decorators.py", line 311, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/conda/miniconda3/envs/SpeedPPI/lib/python3.9/site-packages/pandas/core/reshape/concat.py", line 347, in concat
    op = _Concatenator(
  File "/usr/local/conda/miniconda3/envs/SpeedPPI/lib/python3.9/site-packages/pandas/core/reshape/concat.py", line 404, in __init__
    raise ValueError("No objects to concatenate")
ValueError: No objects to concatenate
mv: cannot stat './data/dev/some_vs_some//pred*/*.pdb': No such file or directory
Moved all high confidence predictions to ./data/dev/some_vs_some//high_confidence_preds/
patrickbryant1 commented 1 year ago

I have not seen this before, but it may be that numpy changed something in v.1.20 like it says. I actually think it has to be higher than 1.19.5 to match the other dependencies. I will look into this.

patrickbryant1 commented 1 year ago

Try with numpy<=1.23.2. This is the version I have. Otherwise I recommend installing the python pip env. There, all versions should work. The issues with incompatible versions arise with dependencies in the conda builds.