prody/ProDy

Error using calcModes()

Tuyt691 opened this issue · 10 comments

Hello,
I'm new to prody and I am currently completing the tutorial. My problem is at the Dynamic analysis > PCA calculation, when we want to calculate modes ( pca.calcModes()). I get the following error when running the code : eigh() got an unexpected keyword argument 'turbo' . Before this command, everything was ok.
I am using python 3.10.14 and prody 2.4.1.
How to solve this issue ?

The same error occurs when trying to pass anm, atoms = calcANM(ubi_selection, selstr='calpha').

Hello, the problem is that you are using a new version of numpy and prody doesn't support that yet. Please try the following
pip install numpy==1.23.5

We have fixed this in the development version of prody but haven't yet sent it to a release

I have the exact same problem. Have tried reinstalling numpy and prody for several times but no luck:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/virtual/venv/lib/python3.10/site-packages/prody/dynamics/anm.py", line 230, in calcModes
    values, vectors, vars = solveEig(self._hessian, n_modes=n_modes, zeros=zeros,
  File "/virtual/venv/lib/python3.10/site-packages/prody/utilities/eigtools.py", line 99, in solveEig
    values, vectors = _eigh(M, eigvals, turbo)
  File "/virtual/venv/lib/python3.10/site-packages/prody/utilities/eigtools.py", line 43, in _eigh
    values, vectors = linalg.eigh(M, turbo=turbo, eigvals=eigvals)
TypeError: eigh() got an unexpected keyword argument 'turbo'

I installed prody under venv but I also tried installing it directly. The error is the same.
I also checked the numpy version that I have and it is 1.23.5

Try downgrading scipy too. Linalg could be from either of them

Scipy 1.11.4 should still have turbo and the latest one doesn’t

It is removed in scipy 1.14.0: “ The turbo and eigvals arguments from scipy.linalg.{eigh,eigvalsh} have been removed.”

We have this info in earlier versions: “ Deprecated since version 1.5.0: 'eigvalsh' keyword argument turbo is deprecated in favor of driver=gvd option and will be removed in SciPy 1.14.”

I’ll add a try/except block for this but in the meantime any scipy < 1.14.0 should work

It is removed in scipy 1.14.0: “ The turbo and eigvals arguments from scipy.linalg.{eigh,eigvalsh} have been removed.”

We have this info in earlier versions: “ Deprecated since version 1.5.0: 'eigvalsh' keyword argument turbo is deprecated in favor of driver=gvd option and will be removed in SciPy 1.14.”

I’ll add a try/except block for this but in the meantime any scipy < 1.14.0 should work

This works. Thank you so much!!

You're welcome