pengxingang / Pocket2Mol

Pocket2Mol: Efficient Molecular Sampling Based on 3D Protein Pockets
MIT License
242 stars 65 forks source link

can't convert negative int to unsigned #5

Closed YAndrewL closed 1 year ago

YAndrewL commented 1 year ago

Hi, I'm using sample_for_pdb.py with the default setting, but it raised an error: OverflowError: can't convert negative int to unsigned which happened in Chem.SanitizeModel part, wondering why could this happen?

pengxingang commented 1 year ago

Hi, thanks for your interest in my work. It seems that the error was raised because the parameter of the Chem.SanitizeMol(Chem.SANITIZE_ALL^Chem.SANITIZE_KEKULIZE^Chem.SANITIZE_SETAROMATICITY) is negative. First of all, this parameter means that the molecule is sanitized without kekulizing or setting aromaticity. Second, I test this value in a terminal and it is not a negative value (as shown in the figure). You can also check it in your terminal. Third, since the error information said the value was negative, I guess maybe the integer overflowed. You can check whether you rdkit version is 2022.03 or whether the environment is 64-bit. Finally, the parameter of the function is not to kekulize the molecule. You can attempt to delete this parameter, i.e., change it to Chem.SanitizeMol(rd_mol).

pengxingang commented 1 year ago

image

YAndrewL commented 1 year ago

Thanks for your reply, I checked by step and found my output meets yours, and my version of rdkit is 2022.03.05, it works when I delete this parameter.