HannesStark / EquiBind

EquiBind: geometric deep learning for fast predictions of the 3D structure in which a small molecule binds to a protein
MIT License
469 stars 110 forks source link

Hydrogens on receptors #33

Closed amfaber closed 2 years ago

amfaber commented 2 years ago

Hi Hannes, thanks for the amazing tool :) In the paper, you note that you add hydrogens to the receptors using reduce. However, my understanding is that EquiBind uses a graph of the residues to represent the protein. What is the purpose of adding hydrogens to the receptor, and (more importantly), should I be doing the same when running inference? Thanks again

On an unrelated note, I saw a request for support for multi-ligand files. I've created my own implementation for that exact purpose, which is able to handle large sdf and smiles files lazily, running inference as the file is processed and writing the results along the way without needing to load the entire file at once. Would you be interested in a pull request?

HannesStark commented 2 years ago

Hi! We ran reduce and include hydrogens since we also have experiments with the sidechains, including all atoms, and using surface atoms. I am not 100% certain that reduce does not also do some changes to the backbone. Additionally, reduce runs some corrections that sometimes flip a HIS side chain in my understanding. With the model including information about the direction of a side chain, I think it is safest to also run reduce on the receptors.

The pull request with support for multi-ligand files would be highly appreciated! Thank you very much if you test that everything else still works and make that pull request!

amfaber commented 2 years ago

Thank you for the swift response! If it is in general recommended to run one's proteins through reduce before doing inference, may I suggest adding it to the main README of the github page? :)

Awesome with the interest in multi-ligands. I'll clean up my code a bit and submit a pull-request when I feel it is ready

HannesStark commented 2 years ago

Makes sense! Thank you for pointing that out and I added it to the README