Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

failed when generating RBFE network #515

Closed
wenchangzhou-qtx opened this issue Aug 6, 2023 · 4 comments
Closed

failed when generating RBFE network #515

wenchangzhou-qtx opened this issue Aug 6, 2023 · 4 comments
Labels
bug Something isn't working

Comments

@wenchangzhou-qtx
Copy link

Hey @richardjgowers,

I'm testing the workflow following the example notebook using another system, the PDB file is generated in Maestro, but I could not run the first step openfe plan-rbfe-network -M BMS_compounds_jmc_2020.sdf -p receptor.pdb -o network_setup, from the error message it seems my PDB file has issues, could you take a look when you have time? I checked my system does not have non-standard residues, so I might need to bother you again to check other issues that cause this error, thanks!

Below is the error when I run the first step to setup the network:
`RBFE-NETWORK PLANNER

Parsing in Files:
Got input:
Small Molecules: SmallMoleculeComponent(name=V059519) SmallMoleculeComponent(name=V059529) SmallMoleculeComponent(name=V059531) SmallMoleculeComponent(name=V059523) SmallMoleculeComponent(name=V059522) SmallMoleculeComponent(name=V059511) SmallMoleculeComponent(name=V059520) SmallMoleculeComponent(name=V059527) SmallMoleculeComponent(name=V059532) SmallMoleculeComponent(name=V059512) SmallMoleculeComponent(name=V059526) SmallMoleculeComponent(name=V059525) SmallMoleculeComponent(name=V059521) SmallMoleculeComponent(name=V059535) SmallMoleculeComponent(name=V059528) SmallMoleculeComponent(name=V059387) SmallMoleculeComponent(name=V059534) SmallMoleculeComponent(name=V059506) SmallMoleculeComponent(name=V059505) SmallMoleculeComponent(name=V059514) SmallMoleculeComponent(name=V059537) SmallMoleculeComponent(name=V059538) SmallMoleculeComponent(name=V059516) SmallMoleculeComponent(name=V059513) SmallMoleculeComponent(name=V059510) SmallMoleculeComponent(name=V059515) SmallMoleculeComponent(name=V059518) SmallMoleculeComponent(name=V059508) SmallMoleculeComponent(name=V059533) SmallMoleculeComponent(name=V059507) SmallMoleculeComponent(name=V059504) SmallMoleculeComponent(name=V059530) SmallMoleculeComponent(name=V059524) SmallMoleculeComponent(name=V059502) SmallMoleculeComponent(name=V059503) SmallMoleculeComponent(name=V059517)
Traceback (most recent call last):
File "/hpc/users/wenchangzhou/softwares/mambaforge3/envs/openfe_env/bin/openfe", line 10, in
sys.exit(main())
File "/hpc/users/wenchangzhou/softwares/mambaforge3/envs/openfe_env/lib/python3.10/site-packages/click/core.py", line 1157, in call
return self.main(*args, **kwargs)
File "/hpc/users/wenchangzhou/softwares/mambaforge3/envs/openfe_env/lib/python3.10/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/hpc/users/wenchangzhou/softwares/mambaforge3/envs/openfe_env/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/hpc/users/wenchangzhou/softwares/mambaforge3/envs/openfe_env/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/hpc/users/wenchangzhou/softwares/mambaforge3/envs/openfe_env/lib/python3.10/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/hpc/users/wenchangzhou/softwares/mambaforge3/envs/openfe_env/lib/python3.10/site-packages/openfecli/utils.py", line 61, in wrapper
result = function(*args, **kwargs)
File "/hpc/users/wenchangzhou/softwares/mambaforge3/envs/openfe_env/lib/python3.10/site-packages/openfecli/commands/plan_rbfe_network.py", line 136, in plan_rbfe_network
protein = PROTEIN.get(protein)
File "/hpc/users/wenchangzhou/softwares/mambaforge3/envs/openfe_env/lib/python3.10/site-packages/plugcli/params.py", line 61, in get
return self.getter(user_input, context)
File "/hpc/users/wenchangzhou/softwares/mambaforge3/envs/openfe_env/lib/python3.10/site-packages/plugcli/params.py", line 108, in call
found = strategy(user_input, context)
File "/hpc/users/wenchangzhou/softwares/mambaforge3/envs/openfe_env/lib/python3.10/site-packages/openfecli/parameters/protein.py", line 25, in _load_protein_from_pdbx
return ProteinComponent.from_pdbx_file(user_input)
File "/hpc/users/wenchangzhou/softwares/mambaforge3/envs/openfe_env/lib/python3.10/site-packages/gufe/components/proteincomponent.py", line 121, in from_pdbx_file
openmm_PDBxFile = PDBxFile(pdbx_file)
File "/hpc/users/wenchangzhou/softwares/mambaforge3/envs/openfe_env/lib/python3.10/site-packages/gufe/vendor/pdb_file/pdbxfile.py", line 83, in init
block = data[0]
IndexError: list index out of range
`
receptor.pdb.zip

@rkakamilan
Copy link

I'm facing a similar situation as well. After following the Tyk2 tutorial, I attempted to run RBFE using the datasets from Inputs_for_FEP in JACS2015. However, I encountered the same error for proteins other than JNK1.

I tried processing the protein.pdb files using PDBFixer, which allowed the setup to complete successfully for some of the proteins. However, the majority of the proteins still yielded the same error even after this processing step.

It would be greatly appreciated if you could provide a tutorial or guide on general protein preprocessing steps.

Thank you in advance!

@richardjgowers
Copy link
Contributor

@rkakamilan after pdbfixer, I suspect that you might be hitting problems with nonstandard residues. This won't work from the command line interface yet, but from Python you can load these by providing the .cif templates for the nonstandard residues, see:

OpenFreeEnergy/gufe#298 (comment)

@rkakamilan
Copy link

@richardjgowers Thank you for your comment. However, it appears that my case is not related to non-standard residues. I referred to the notebook you shared in the link and checked the residues of the PDB files using GetResidueName. I found that all the residues in the pdb files were within the definition of pdbinf.STANDARD_AA_DOC. In addition to the PDBFixer treatment, I also tried removing the HETATM lines, but that didn't work well either. Do you have any other suggestions or ideas that I could try?

@mikemhenry mikemhenry added the bug Something isn't working label Apr 17, 2024
@rkakamilan
Copy link

rkakamilan commented Apr 22, 2024

I found that the setup failures were caused by missing residues which could not be handled by PDBFixer. Manual corrections of these residues allowed the setup to succeed. However, even when setup ran without errors, some proteins encountered ValueError: No template found ....

After examining OpenMM FAQ and protein.ff14SB.xml, it became clear that the ValueError was caused by residues lacking the C-terminal definitions, like C-terminal ILE. Manual corrections, e.g. capping with NHE or NME, allowed the RBFE calculations to complete. As a result, my setup issues have been resolved. Thanks again for your comments and assistance. (However, even with successful setups, another problem arose where the Potential Energy became NaN. I'll look at the logs and may raise that as a separate Issue.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants