pyMBE-dev / pyMBE

pyMBE provides tools to facilitate building up molecules with complex architectures in the Molecular Dynamics software ESPResSo. For an up-to-date API documention please check our website:
https://pymbe-dev.github.io/pyMBE/pyMBE.html
GNU General Public License v3.0
6 stars 8 forks source link

Issues running `samples/peptide.py` with espressomd 4.2.2 #82

Closed Zitzeronion closed 1 month ago

Zitzeronion commented 1 month ago

Hello pyMBE team,

Currently trying to learn coarse grained MD for protein simulations and pyMBE seems like THE tool :) When running the peptide.py script with espresso 4.2.2 I get the error

`Traceback (most recent call last): File "/home/szitz/pyMBE/samples/peptide.py", line 137, in setup_electrostatic_interactions(units=pmb.units, File "/home/szitz/pyMBE/lib/handy_functions.py", line 82, in setup_electrostatic_interactions espresso_system.actors.add(coulomb)

^^^^^^^^^^^^^^^^^^^^^^ File "script_interface.pyx", line 459, in espressomd.script_interface.ScriptInterfaceHelper.getattr AttributeError: Object 'System' has no attribute 'actors'`

There seems to be a change in espresso, see electrostatics docs v4.2.1 and electrostatics docs v4.2.2. I can create a PR, but I have absolutely no clue if the 4.2.2 fix breaks the 4.2.1 code.

Zitzeronion commented 1 month ago

There is one more problem I ran into. In line 174 of peptide.py, the code cpH.reaction( reaction_steps = total_ionisible_groups) would raise an error:

Changing reactions_steps to steps fixed it for me. In the espresso docs ReactionAlgorithm.reaction() has currently only steps as keyword.

pm-blanco commented 1 month ago

Hi @Zitzeronion,

Thank you very much for interest in our software :) We are very happy to hear positive feedback.

Regarding your questions, the current stable version of pyMBE 0.8.0 is compatible with espresso 4.2.1. We are planning to upgrade the code after the vacation break to make it compatible with espresso 4.2.2 for our planned next release pyMBE 1.0.0. In the next release, we are also planning to do some refactoring of the structure of the repository (#13) to make pyMBE installable as a standard Python package. The next release should come relatively soon, but we do not have any planned release date yet.

If you want to start doing some tests with pyMBE 0.8.0 and espresso 4.2.2, then I recommend that you do the modifications that you need in your forked repository. I would prefer to introduce all modifications necessary to adapt pyMBE to espresso 4.2.2 in a single PR to avoid having code in main in between two versions of espresso. Of course, if you would like to contribute in helping us with that issue you are more than welcomed! :)

From what you report, I believe that you are currently using the development version of espresso since both the 'actors' attribute for electrostatics and the keyword argument reaction_steps should still exist in espresso 4.2.2. You can check which version of espresso you are using with

import espressomd.version
print(espressomd.version.friendly())

If you are indeed using the development version of espresso (4.3 currently) then I recommend that you downgrade to the current stable one 4.2.2, because otherwise it will be harder for you to track which specific commit version of espresso you used to run your simulations.

We are very interested in continuing developing new features in pyMBE for coarse-grained simulations of peptides and proteins. If you are planning to develop any new tools and would like to contribute please contact us and we will be happy to collaborate!

Zitzeronion commented 1 month ago

If you are indeed using the development version of espresso (4.3 currently) then I recommend that you downgrade to the current stable one 4.2.2, because otherwise it will be harder for you to track which specific commit version of espresso you used to run your simulations.

I am sorry it is indeed version 4.3, will downgrade to 4.2.2 ASAP.