Skip to content

invalid SMILES in canon_building_block_mol2idx_no_isotope.json #6

Description

@newalexander

Thanks for making this work accessible. When I've tried to use this code, I sometimes run into issues during desp.search.

File "script.py", line 23, in <module> result, route, searcher = desp.search( File ".../desp/desp/desp/DESP.py", line 135, in search result = searcher.run_search() 
File ".../desp/desp/search/desp_search.py", line 231, in run_search _ = self.expand_fwd(best_node, self.search_graph) 
File ".../desp/desp/search/desp_search.py", line 119, in expand_fwd predictions = self.fwd_model.predict( 
File ".../desp/desp/inference/forward_predictor.py", line 171, in predict output = run_bimolecular_reaction( 
File ".../desp/desp/inference/utils.py", line 149, in run_bimolecular_reaction reactants = rdchiralReactants(".".join(reactants))
File ".../desp-env/lib/python3.10/site-packages/rdchiral/initialization.py", line 101, in __init__ self.reactants = initialize_reactants_from_smiles(reactant_smiles) 
File ".../desp-env/lib/python3.10/site-packages/rdchiral/initialization.py", line 181, in initialize_reactants_from_smiles 
Chem.AssignStereochemistry(reactants, flagPossibleStereoCenters=True) 
Boost.Python.ArgumentError: Python argument types in rdkit.Chem.rdmolops.AssignStereochemistry(NoneType) did not match 
C++ signature: AssignStereochemistry(RDKit::ROMol {lvalue} mol, bool cleanIt=False, bool force=False, bool flagPossibleStereoCenters=False)

I believe the cause is that a small number of the SMILES keys in canon_building_block_mol2idx_no_isotope.json are invalid, making Chem.MolFromSmiles and similar functions return None.

['[IH2-2]',
 'CCN(CC)c1ccc2c(-c3ccccc3C(=O)NCCCC(NC(=O)COCCOCCN)C(=O)OC(C)(C)C)c3ccc(=[N+2](CC)CC)cc-3oc2c1',
 'F[P+](F)(F)(F)(F)F',
 'CCc1nc(SCC(=O)NC2C(=O)N(c3ccccc3)[N+2](C)=C2C)[nH]c(=O)c1C#N',
 'COc1ccc(Nc2nc(N/N=C/C3=[C+]4=CC=CC=[C+]4=C[C+]4=CC=CC=[C+]=43)nc(Nc3ccccc3)n2)cc1',
 'O=C1NC2=[N+2](C=C(c3ccccc3)S2)c2sc3c(c21)CCCC3',
 'F[B-2](F)(F)C[NH+]1CCCCC1',
 'CCOC(=O)C1=C(CSC2=[N+2](C)C=CN2)NC(=O)NC1c1ccc(C)cc1',
 'CC(C)c1ccc(/C=C2/S/C(=N\\C3=[C+](=O)C=CC=[C+]3=O)N(c3ccccc3)C2=O)cc1',
 'CC(c1cccc(C(=O)c2ccccc2)c1)[C+](=O)OC[C@@H](O)[C@@H](O)[C@H](O)[C@@H](O)CO',
 'Cc1ncsc1CCO[P](=O)(=O)O',
 'CC(C)(C)OC(=O)N1CCN(C[B-2](F)(F)F)CC1',
 'CN(C)/C=C/C=[N+2](C)C',
 'O=[N+]([O-])c1cccc(C2=CC=[N+2]([O-])C=C2)c1',
 'O=S1(=O)C[C@@H]2SC3=[N+2](C=CC=C3)[C@@H]2C1',
 'CC1=[N+2](C)N(c2ccccc2)C(=O)C1NC(=O)Cn1nnc2sc3c(c2c1=O)CCC(C(C)(C)C)C3',
 'C[C@H](C1=NC=NC=[C+]1F)C(O)(Cn1cncn1)c1ccc(F)cc1F',
 'CC1=[N+2](C)N(c2ccccc2)C(=O)C1NC(=O)Cn1nnc2sc(-c3ccccc3)cc2c1=O',
 'C[P+](C)(C)(C)(C)C',
 'F[Si](F)(F)(F)(F)F',
 '[AlH3+3]',
 'F[B-2](F)(F)CCl',
 '[H]C([H])([H])C(=O)N[C@@H](CSC(CO)[C+]1=CC=CC=C1)C(=O)O',
 'C[N+]12CCc3cc4c(c(O)c3C1C[C+]1=C(C2)C2=C(C=C1)OCO2)OCO4',
 'CCCC[P+](c1ccccc1)(c1ccccc1)[C+]1=CC=CC=C1',
 'COC[B-2](F)(F)F',
 'F[PH](F)(F)(F)(F)F',
 'F[B-2](F)(F)CC1CCC1',
 'F[B-2](F)(F)CC1CCCC1',
 'CC(=O)N[C@@H](CSC(CO)[C+]1=CC=CC=C1)C(=O)O',
 'O=C(Nc1cnccn1)[N+2]1=NNc2ccccc21',
 'CC1=[N+2](C)N(c2ccccc2)C(=O)C1NC(=O)Cn1nnc2sc3c(c2c1=O)CCC(C)C3',
 'CC(C)C1=C(C(=O)Nc2ccccc2)C(c2ccccc2)=[C+](c2ccc(F)cc2)[N+]1([O-])CC[C@@H](O)C[C@@H](O)CC(=O)O',
 'F[P](F)(F)(F)(F)F',
 'N#CCC[B-2](F)(F)F',
 'F[B-2](F)(F)CCCc1ccccc1',
 'Cc1ccc(S(=O)(=O)NC[B-2](F)(F)F)cc1',
 'CC(C)(C)OC(=O)NC[B-3](F)(F)F',
 'Fc1ccc([B-2](F)(F)F)cc1',
 'CC(C)(C)OC(=O)N1CCC(OC[B-2](F)(F)F)CC1',
 'CC1=[N+2](C)N(c2ccccc2)C(=O)C1NC(=O)Cn1nnc2sc3c(c2c1=O)CCCC3',
 'O=C(Nc1ccccn1)[N+2]1=NNc2ccccc21',
 'O[C@@H]1C[C@H]2CC[C@@H](C1)[C+]21CCCC1',
 'Oc1ccc([B-2](F)(F)F)cc1',
 'Cc1ccc([N-]C(=O)[C@H]2CCC[N+5]2Cc2ccccc2)c(/C(=[N+5]/CC(=O)[O-])c2ccccc2)c1']

I don't know if these were incorrectly constructed or if something else went wrong during the preprocessing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions