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

Suggestion for a better way to protonate ligands. #17

Open
dargen3 opened this issue Oct 17, 2024 · 4 comments
Open

Suggestion for a better way to protonate ligands. #17

dargen3 opened this issue Oct 17, 2024 · 4 comments

Comments

@dargen3
Copy link

dargen3 commented Oct 17, 2024

Hello,

I think hydride has great potential for its versatility and speed. I have tried many tools for adding hydrogens from structures over the last months, but hydride is the best for me, together with the pdb2pqr tool. The weakness of hydride (and also other protonation tools) is the protonation of ligands, which it always protonates to a neutral state. Hydride has implemented an option to recalculate formal charges by pKa for standard residues. I propose to implement a similar approach for other functional groups, such as openbabel. The problem with openbabel is that it doesn't work well with structures without defined bonds (PDB, mmCIF), which is hydride's strength. The approach is already implemented for residues, so extending it to other functional groups might not be that much work and it would significantly increase the quality of ligand protonation.

If it would be too much work or you don't have time to do it then please give me a hint and I can try to implement this feature myself sometime in the future.

@padix-key
Copy link
Member

This sounds like a great idea! Indeed I do not have much spare time, so if you prepare a PR re-implementing the charge assignments from OpenBabel (maybe a function called estimate_charges(atoms, ph)?) this would be really nice.

@dargen3
Copy link
Author

dargen3 commented Oct 18, 2024

Okay, but it's more likely to be in the future. Okay, but it's more likely to be in the future. As I think about it, it could be a nice topic for a bachelor's thesis.

@dargen3
Copy link
Author

dargen3 commented Oct 27, 2024

Hello,

I'm thinking about implenetation and I would like to ask if the function can use other libraries? I'm thinking now specifically of RDKit, because it is suitable for working with small molecules and can work great with the SMILES format, which is essential for the implementation.

@padix-key
Copy link
Member

I am a bit hesitant to add another dependency, especially as RDKit is rather heavy weight. You probably need the SMILES strings to match the groups from https://github.com/openbabel/openbabel/blob/master/data/phmodel.txt, right? Is there a way to represent them differently, i.e. to convert the SMILES strings with RDKit into some format Biotite can use directly and then ship this format instead?

If there is no reasonable way around it, I think introducing RDKit is okay, but rather as optional dependency in the pyproject.toml, so the rest of Hydride still works in environments where RDKit is not installed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants