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