-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Description
In some cases, the validation function of reaction SMARTS/substrate/product does not validate the generated product even though visual inspection shows that expected product and generated product are identical. From my observation, this happens mainly with macrocyclic compounds with chiral atoms. This is really confusing for submitters. Currently, my suggestion is that they should simply replace their expected product with the product generated by RDKit, but it is obviously a bad solution.
Example
(see also here)
reaction SMARTS
[#6:1]-[#6:2]1=[#6:3]-[#6:4]-[#6:5]-[#6:6](-[#6:15])=[#6:7]-[#6:8]-[#6@@:9](/[#6:12](-[#6:14])=[#6:13])-[#6:10]-[#6:11]-1>>[#6:1]-[#6:2]1=[#6:3]-[#6:4]-[#6:5]-[#6:6](-[#6:15])=[#6:7]-[#6:8]-[#6@@:9](/[#6:12](-[#6:14](-[#8])=[#8])=[#6:13])-[#6:10]-[#6:11]-1
substrate
C=C(C)[C@@H]1C/C=C(\C)CC/C=C(\C)CC1
product (directly from ketcher)
C=C([C@H]1CCC(C)=CCCC(C)=CC1)C(=O)O |t:6,11|
Result
Error in parsing entry MITE9999999: 1 validation error for Reaction
Value error, Reaction '1': Validation failed for substrate C=C(C)[C@@H]1C/C=C(\C)CC/C=C(\C)CC1: Reaction did not lead to all expected products.
Expected products:
C=C(C(=O)O)[C@@H]1C/C=C(\C)CC/C=C(\C)CC1
Generated products:
C=C(C(=O)O)[C@@H]1CC=C(C)CCC=C(C)CC1
[type=value_error, input_value={'tailoring': ['Acylation...baseIds(rhea='', ec='')}, input_type=dict]
When I create fingerprints from them, the expected and generated products are indeed identical:
https://colab.research.google.com/drive/1ng2HY8sFJVnbl8uHBrekMfaFHCzVyl7H?usp=sharing
Solution
We could simply replace the expected product with the generated product if their fingerprints are identical? What are your thoughts on that @Adafede ?