dauparas / LigandMPNN

MIT License
236 stars 47 forks source link

Docked Ligands Being Excluded Due To 0 Occupancy Value #4

Closed CharlieJohnson98 closed 9 months ago

CharlieJohnson98 commented 10 months ago

Hi Justas,

Thank you for making this code available. I think this issue might be very niche, but I wanted to write it here in case others are struggling with this.

I was running LigandMPNN on an experimental structure from the PDB and a structure that I docked a ligand into using gnina. LMPNN worked perfectly fine on the experimental structure but on the docked structure, LMPNN would not recognize the ligand and I kept getting the message "no ligand atoms parsed". After comparing my pdb files and digging into data_utils.py, I realized that on line 779, atoms with 0 occupancy are excluded, which excluded my ligand.

I think this may have to do with the conversion of .sdf files (standard gnina output) to .pdb files within PyMol. For anyone else that runs into this problem, if you used PyMol to convert your sdf ligand file to a PDB, you need to set the occupancy values to 1.0 manually otherwise LigandMPNN will exclude them.

Not exactly an issue or something that I think needs to be changed, but I think this may be important troubleshooting note.

dauparas commented 10 months ago

Thanks for spotting this! I on purpose excluded all atoms with occupancy = 0.0 from being parsed (https://github.com/dauparas/LigandMPNN/blob/main/data_utils.py#L779), but I can add a flag not to do that if that's useful.

CharlieJohnson98 commented 10 months ago

No problem! I think it makes sense to exclude atoms with zero occupancy. I think adding a flag for it would be useful, that way those with similar workflows won't need to manually change the occupancy values in the .pdb files. Thanks so much!

dauparas commented 9 months ago

Added it!