RosettaCommons / RFDesign

Protein hallucination and inpainting with RoseTTAFold
Other
239 stars 66 forks source link

AF2 Dependencies for af2_metrics.py #26

Closed Germanki closed 2 years ago

Germanki commented 2 years ago

SOLUTION TO THIS PROBLEM IS TO COMMENT OUT LINE 40 of does af2_metrics.py that says "from alphafold.relax import relax" (also discussed in #7) Hi RFDesign Team,

Thank you very much for sharing RFDesign and providing the tutorials!

I am trying to run the af2_metrics.py script however the SE3-nvidia.yml file does not contain a number of modules required to run it. So far I have identified the following needing to be installed: dm-tree, biopython, dm-haiku, absl-py, jaxlib, jax, ml_collections, tensorflow I got up to PDBfixer and its requirement openmm but unfortunately, openmm wouldn't install because of environment conflicts.

I notice that the same issue has been highlighted in issue #7 and so I have tried to install various different correct versions of the different libraries and I have also gone to the alpha fold git repo to identify their requirements.txt folders. Unfortunately, I am still not having any luck with getting the environment conflicts to solve :(

You mentioned in #7 that you were working on a major update to the repo that would solve this env issue but I notice that the SE3-nvidia.yml file still doesn't contain some of the above.

I was wondering if you might be able to update the yml file to build the right conda environment? Would I then be able to run the conda env -f create SE3-nvidia.yml again and it would overwrite the previous SE3-nvidia env with the new updated one?

Thank you!

jueseph commented 2 years ago

We've tried to create a fully self-enclosed environment but it's been challenging. This will probably get done at some point but it might take awhile for one of us to get to it.

In the short term, have you tried creating a completely new environment and installing all the packages from scratch? There shouldn't be any dependency conflicts if you're installing from scratch.

Also, openmm isn't needed unless you're doing amber relax in the AF2 prediction script. Our script is designed to process large batches of designs at a time, and you wouldn't really want to use relax in that setting anyway bc it takes so long. (and if you're not processing large batches of designs, you could easily use any other AF2 script, including the google colab notebooks from deepmind or colabfold)

I'm not sure what would happen if you tried to create the same environment twice but the documentation probably explains this: https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-with-commands

On Thu, Sep 15, 2022 at 4:59 AM Germanki @.***> wrote:

(also discussed in #7 https://github.com/RosettaCommons/RFDesign/issues/7) Hi RFDesign Team,

Thank you very much for sharing RFDesign and providing the tutorials!

I am trying to run the af2_metrics.py script however the SE3-nvidia.yml file does not contain a number of modules required to run it. So far I have identified the following needing to be installed: dm-tree, biopython, dm-haiku, absl-py, jaxlib, jax, ml_collections, tensorflow I got up to PDBfixer and its requirement openmm but unfortunately, openmm wouldn't install because of environment conflicts.

I notice that the same issue has been highlighted in issue #7 https://github.com/RosettaCommons/RFDesign/issues/7 and so I have tried to install various different correct versions of the different libraries and I have also gone to the alpha fold git repo to identify their requirements.txt folders. Unfortunately, I am still not having any luck with getting the environment conflicts to solve :(

You mentioned in #7 https://github.com/RosettaCommons/RFDesign/issues/7 that you were working on a major update to the repo that would solve this env issue but I notice that the SE3-nvidia.yml file still doesn't contain some of the above.

I was wondering if you might be able to update the yml file to build the right conda environment? Would I then be able to run the conda env -f create SE3-nvidia.yml again and it would overwrite the previous SE3-nvidia env with the new updated one?

Thank you!

— Reply to this email directly, view it on GitHub https://github.com/RosettaCommons/RFDesign/issues/26, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABCU55BAZFUD6FAFBCN42LV6MFS7ANCNFSM6AAAAAAQNKIPGY . You are receiving this because you are subscribed to this thread.Message ID: @.***>

Germanki commented 2 years ago

Hi Jue,

Thank you so much for your quick reply!

Sorry to hear that it has been challenging to create a fully self-enclosed environment.

Yes, I started on a blank machine, created a new environment using the SE3-nvidia.yml file, then when I ran the af2_metrics command, as each error came back explaining which module was not installed, I installed them one by one using 'conda install'. This was successful up until openmm. ("conda install -c conda-forge openmm" had too many envrionment conflicts)

Thanks for the heads up about openmm. I was trying to install it because pdbfixer was required by af2_metrics.py (specifically when it called: cleanup.py - see attached code below) and installing pdbfixer apparently requires openmm (installation instructions for pdbfixer from their github: https://htmlpreview.github.io/?https://github.com/openmm/pdbfixer/blob/master/Manual.html)

File "/home/ec2-user/RFDesign/scripts/../hallucination/models/alphafold/alphafold/relax/amber_minimize.py", line 25, in <module>
    from alphafold.relax import cleanup
  File "/home/ec2-user/RFDesign/scripts/../hallucination/models/alphafold/alphafold/relax/cleanup.py", line 22, in <module>
    import pdbfixer
  File "/opt/conda/envs/SE3-nvidia/lib/python3.9/site-packages/pdbfixer-1.8.1-py3.9.egg/pdbfixer/__init__.py", line 2, in <module>
    from .pdbfixer import PDBFixer
  File "/opt/conda/envs/SE3-nvidia/lib/python3.9/site-packages/pdbfixer-1.8.1-py3.9.egg/pdbfixer/pdbfixer.py", line 35, in <module>
    import openmm as mm
ModuleNotFoundError: No module named 'openmm'

Though I note that this is indeed calling the amber relax function! Is there any way to stop this from happening when I run the af2_metrics.py command? I am currently running: ./af2_metrics.py RFDesign/inpainting/mytests/out in the scripts folder

With Many Thanks, Adam

jueseph commented 2 years ago

I mean make a completely blank environment, not using the provided yml file, and install the dependencies one by one until you don't get any more errors.

To remove the dependence on amber relax, comment out the line in af2_metrics.py that says "from alphafold.relax import relax"

On Fri, Sep 16, 2022 at 4:01 AM Germanki @.***> wrote:

Hi Jue,

Thank you so much for your quick reply!

Sorry to hear that it has been challenging to create a fully self-enclosed environment.

Yes, I started on a blank machine, created a new environment using the SE3-nvidia.yml file, then when I ran the af2_metrics command, as each error came back explaining which module was not installed, I installed them one by one using 'conda install'. This was successful up until openmm. ("conda install -c conda-forge openmm" had too many envrionment conflicts)

Thanks for the heads up about openmm. I was trying to install it because pdbfixer was required by af2_metrics.py (specifically when it called: cleanup.py - see attached code below) and installing pdbfixer apparently requires openmm (installation instructions for pdbfixer from their github: https://htmlpreview.github.io/?https://github.com/openmm/pdbfixer/blob/master/Manual.html )

File "/home/ec2-user/RFDesign/scripts/../hallucination/models/alphafold/alphafold/relax/amber_minimize.py", line 25, in from alphafold.relax import cleanup File "/home/ec2-user/RFDesign/scripts/../hallucination/models/alphafold/alphafold/relax/cleanup.py", line 22, in import pdbfixer File "/opt/conda/envs/SE3-nvidia/lib/python3.9/site-packages/pdbfixer-1.8.1-py3.9.egg/pdbfixer/init.py", line 2, in from .pdbfixer import PDBFixer File "/opt/conda/envs/SE3-nvidia/lib/python3.9/site-packages/pdbfixer-1.8.1-py3.9.egg/pdbfixer/pdbfixer.py", line 35, in import openmm as mm ModuleNotFoundError: No module named 'openmm'

Though I note that this is indeed calling the amber relax function! Is there any way to stop this from happening when I run the af2_metrics.py command? I am currently running: ./af2_metrics.py RFDesign/inpainting/mytests/out in the scripts folder

With Many Thanks, Adam

— Reply to this email directly, view it on GitHub https://github.com/RosettaCommons/RFDesign/issues/26#issuecomment-1249227747, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABCU5Y6OI36H3I5VZDVPULV6RHSFANCNFSM6AAAAAAQNKIPGY . You are receiving this because you commented.Message ID: @.***>

Germanki commented 2 years ago

Hi Jue,

Thank you for the suggestions!

Commenting out the line does af2_metrics.py that says "from alphafold.relax import relax" does indeed fix this particular problem!

Thank you!

Though there is now a problem that the alpha fold model parameters are not installed #27