uta-smile / RetroXpert

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

one question about the canonicalize_products.py

teslacool opened this issue · comments

@chaoyan1037 If I understand correctly, the SMILES in train.csv before processed by the canonicalize_product.py is canonicalized by RDKit through smiles=Chem.MolToSmiles(mol, canonical=True). So, what is the purpose to permute the atommapnumber in this canonicalize_product.py and is there any reference work?

commented

@teslacool It is a good catch. We found there was an information leak within the USPTO dataset itself. The order of the atoms within the product SMILES may indicate the reaction atoms. To be more specific, we found that for most USPTO products, the first atoms of the product SMILES are usually reaction atoms. You may look into the reaction atoms yourself.
So we use canonicalize_products.py to rearrange the atom order to be the same as the canonical atom order, hoping to remove the potential information leak.

Ok. thanks for your answer.

commented

We have an important update of our method. Please refer to the readme for more details.

For this leakage, does it only appear in your developed model, or it's actually a general problem for all the models using this dataset?

@YanjingLiLi I believe it's a general problem, it was mentioned by other methods later as well: https://openreview.net/pdf?id=SnONpXZ_uQ_

Methods using atom-mapping information shld be particularly careful with this.