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

Very strange result #12

Closed
simmed00 opened this issue Oct 21, 2022 · 7 comments
Closed

Very strange result #12

simmed00 opened this issue Oct 21, 2022 · 7 comments

Comments

@simmed00
Copy link

Thanks for the great work and sharing the code.

I run it according to the instruction using the provided train_epoch33 model.
I test it on one pocket, I picked a line from the train file and put into the test_selected_targets.type as below:
1 0 1.90832 1A1C_MALDO_2_433_0/1m7y_A_rec.pdb 1A1C_MALDO_2_433_0/1m7y_ppg_uff2.sdf.gz #-4.20313

I run main_gen then main_eval.py. But main_eval will raise exception for every generated molecule by the line in bond_adder:
Chem.SanitizeMol(rd_mol,Chem.SANITIZE_ALL^Chem.SANITIZE_KEKULIZE)
So I modify it to
Chem.SanitizeMol(rd_mol)
Then everything is smooth.

However, the results look really strange. I can post some here for your reference.
2
5
13
21

Is there something I do it wrong in the step described above? Looking forward to your reply.

@mengliu1998
Copy link
Collaborator

Hi @simmed00,

Could you try more pockets and evaluate the results? It's worth noting that GraphBP is an early attempt for this challenging structure-based drug design problem, and there is a large space for performance improvement. Thus, the generated molecules for some pockets may not be good. Thank you.

@simmed00
Copy link
Author

Thank you very much for the prompt reply. I was thinking could this because of the line: Chem.SanitizeMol(rd_mol,Chem.SANITIZE_ALL^Chem.SANITIZE_KEKULIZE)
Basically no molecule can pass this.
If I change to Chem.SanitizeMol(rd_mol) then basically the sanitize does nothing.
I run this on Windows 11 Anaconda, Python3.8 Pytorch 1.8, RDkit=2022.03
Normally how many molecules need to generate to get a valid one?

@mengliu1998
Copy link
Collaborator

Hi, could you point me to the specific line you are referring to? I have not tested the code on Windows yet. That could be the reason of using RDKit on Windows. But I am not sure.

@simmed00
Copy link
Author

The code is around bond_adding.py line 324

try:
# Chem.SanitizeMol(rd_mol,Chem.SANITIZE_ALL^Chem.SANITIZE_KEKULIZE)
Chem.SanitizeMol(rd_mol,Chem.SANITIZE_ALL)
print('Success')
except:
print('ReconsError')
# raise MolReconsError()
If I use the original code, it will raise exception for every molecule generated.

Thanks in advance.

@mengliu1998
Copy link
Collaborator

I haven't meet this before on Linux. Will take a deeper look.

@simmed00
Copy link
Author

I tried it on Linux, the exception is now gone without modifying your code. So the previous error is possibly due to RDKit compatibility on windows.
However, the result still looks quite weird for the generated molecules, though I haven't tested the docking score.

@mengliu1998
Copy link
Collaborator

Sounds great. That's a good catch!
We also found that our generated molecules are far from drug-like. We are currently working on improving the performance. Thank you and let me know if you have any further discussions or questions.

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