Computer-Aided Drug Design at the Durrant Lab › Forums › Gypsum-DL › Crash with minimal error hints
- This topic has 2 replies, 1 voice, and was last updated 4 years, 10 months ago by
Jacob Durrant.
- AuthorPosts
- April 10, 2020 at 7:04 pm #13208
Byron DeLaBarre
GuestHi –
Thanks for making this tool available – potentially very useful.
I downloaded and installed under my PC based anaconda 64 bit python 3.7 setup.
The example smiles ran fine.
When I tried to put my own smiles of druglike molecules it crashed with this output:
Multiple entries with the ligand name: flavoxato (antimuscarinic) The veresion of the ligand on line 25 will be retitled flavoxato (antimuscarinic)_copy_3 All associated files will be refered to with this name Traceback (most recent call last): File "run_gypsum_dl.py", line 220, in <module> prepare_molecules(INPUTS) File "D:\Users\BigDaddy\Anaconda3\Lib\site-packages\gypsum_dl-1.1.2\gypsum_dl\Start.py", line 206, in prepare_molecules if detect_unassigned_bonds(smiles) is None: File "D:\Users\BigDaddy\Anaconda3\Lib\site-packages\gypsum_dl-1.1.2\gypsum_dl\Start.py", line 302, in detect_unassigned_bonds for bond in mol.GetBonds(): AttributeError: 'NoneType' object has no attribute 'GetBonds'
I would appreciate any insight. Thanks!
Here is my SMILES file (these are all drugs that have been tried in the clinic. File was output from MOE/CCG as SMILES)
O=C([O-])[C@@H](NC(=O)c1ccc(NC[C@@H]2N(C)C=3C(=O)N=C(N)NC=3NC2)cc1)CCC(=O)[O-] folate derivative O=C(NCCCN(C)c1nc(N)c2c(n1)cc(OC)c(OC)c2)[C@H]1OCCC1 alfuzosin O=C(OCCN1CCCCC1)c1c2OC(c3ccccc3)=C(C)C(=O)c2ccc1 flavoxato (antimuscarinic) O=C([O-])[C@@H](NC(=O)c1ccc(NC[C@@H]2N(C)C=3C(=O)N=C(N)NC=3NC2)cc1)CCC(=O)[O-] folate derivative O=C(NCc1ccc(OCCN(C)C)cc1)c1cc(OC)c(OC)c(OC)c1 tigan (anticonvulsant) O(CCc1ncc(CC)cc1)c1ccc(C[C@H]2C(=O)[N-]C(=O)S2)cc1 glitazone (PPARg activator) O=C(NCc1ccc(OCCN(C)C)cc1)c1cc(OC)c(OC)c(OC)c1 tigan (anticonvulsant) O=C(OC[C@H](CCCC)CC)/C=C/c1ccc(OC)cc1 (S)-octinoxate O(CCc1ncc(CC)cc1)c1ccc(C[C@H]2C(=O)NC(=O)S2)cc1 glitazone (PPARg activator) O=C(NCc1ccc(OCCN(C)C)cc1)c1cc(OC)c(OC)c(OC)c1 tigan (anticonvulsant) O=C(OCCN1CCCCC1)c1c2OC(c3ccccc3)=C(C)C(=O)c2ccc1 flavoxato (antimuscarinic) O=C(NCCCN(C)c1nc(N)c2c(n1)cc(OC)c(OC)c2)[C@H]1OCCC1 alfuzosin O=C([O-])[C@@H](NC(=O)c1ccc(N(Cc2nc3c(N)nc(N)nc3nc2)C)cc1)CCC(=O)[O-] folate derivative O=C1[C@@H](Cn2c(C)ncc2)CCc2n(C)c3c(c12)cccc3 ondansetron (hERG inhibitor) S(CCN/C(/NC)=C/[N+](=O)[O-])Cc1nc(CN(C)C)sc1 nizatimine (H2 blocker) O=C(OC[C@H](CCCC)CC)/C=C/c1ccc(OC)cc1 (S)-octinoxate Fc1cc(COc2ccc(CN[C@H](C(=O)N)C)cc2)ccc1 safinamide (co-LDopa) Clc1c(NC(=O)c2cc(OCC3CC3)c(OC(F)F)cc2)c(Cl)cnc1 roflumilast (bronchodilator) O(CCc1ncc(CC)cc1)c1ccc(C[C@H]2C(=O)NC(=O)S2)cc1 glitazone (PPARg activator) Fc1cc(COc2ccc(CN[C@H](C(=O)N)C)cc2)ccc1 safinamide (co-LDopa) O(C)c1c(OC)cc2c(C(=O)[C@H](CC3CCN(Cc4ccccc4)CC3)C2)c1 (R)-donepezil (acetylcholinesterase inhibitor) O(C)c1c(OC)cc2c(C(=O)[C@H](CC3CCN(Cc4ccccc4)CC3)C2)c1 molecule O=C1N(Cc2c(C#N)cccc2)C(N2C[C@H]([N+H3])CCC2)=CC(=O)N1C alogliptin O(CCc1ncc(CC)cc1)c1ccc(C[C@H]2C(=O)NC(=O)S2)cc1 glitazone (PPARg activator) O(CCc1ncc(CC)cc1)c1ccc(C[C@H]2C(=O)NC(=O)S2)cc1 glitazone (PPARg activator) O=C(OCCN1CCCCC1)c1c2OC(c3ccccc3)=C(C)C(=O)c2ccc1 flavoxato (antimuscarinic) O=[N+]([O-])c1sc(NC(=O)c2c(OC(=O)C)cccc2)nc1 nitazoxanide (antimicrobial)
- April 12, 2020 at 3:21 am #13229
Jacob Durrant
KeymasterHi Byron. Much thanks for your interest in Gypsum-DL. And thanks for sending me your SMILES strings. That makes debugging much easier. Just FYI, your list contains many redundant entries. For example, this line appears three times:
O=C([O-])C@@HCCC(=O)[O-] folate derivative
But I don’t think that’s the cause of the error. Rather, it appears that some of the SMILES strings aren’t properly formatted. For example, consider this line:
S(CCN/C(/NC)=C/N+[O-])Cc1nc(CN(C)C)sc1 nizatimine (H2 blocker)
Both ChemDraw and OpenBabel gave errors when trying to process this SMILES string. I believe poorly formatted SMILES strings were also responsible for Gypsum-DL’s troubles.
But clearly Gypsum-DL shouldn’t crash entirely just because it’s given a problematic SMILES string. I updated the program so that it now throws a warning and continues on to the next string. There were also a few other updates, in case you’re interested: https://git.durrantlab.pitt.edu/jdurrant/gypsum_dl/blob/1.1.3/CHANGELOG.md
Please let me know if you continue to have this same problem with Gypsum-DL 1.1.3. Much thanks for pointing out this limitation. Take care.
- April 17, 2020 at 1:51 am #13275
Jacob Durrant
KeymasterHi Bryon. Just wanted to update you re. this issue. I was surprised that MOE would output incorrect SMILES strings, so I investigated further. It turns out that my website thought some of your SMILES strings were Markdown, so it removed some of the square braces and replaced them with links! When I fixed this formatting issue, I could see that your SMILES strings were all well formed, except for one:
O=C1N(Cc2c(C#N)cccc2)C(N2C[C@H]([N+H3])CCC2)=CC(=O)N1C
RDKit (which Gypsum-DL uses to load SMILES strings) doesn’t like the
[N+H3]
part. When I replace that with[N+3]
, RDKit (and presumably Gypsum-DL) can load the SMILES string correctly.Sorry for the confusion! Take care.
- AuthorPosts
- The topic ‘Crash with minimal error hints’ is closed to new replies.