O O O Si N H O N N N Cl Cl O O O Si N H O xyz2mol converts an xyz file to an RDKit mol object (needs the molecular charge and hydrogens) github.com/jensengroup/xyz2mol
one of them arbitrarily Solution(?): generate all, then filter Generate all using rdchem.ResonanceMolSupplier* Create filter that picks “canonical” form *HT Mads Koerstz
H2 O H2 O HO OH2 OH H2 O Fe OH H2 O HO OH2 OH H2 O Fe+2 Fe+3 Formal charge on Fe = total charge [e.g. Fe(OH)2 +] O->[Fe](O)(O)(<-O)(<-O)<-O O->[Fe](O)(O)(O)(<-O)<-O
Fe = total charge + ∑ charge on ligands Also not sensitive to presence of bond(s) Fe+2 H2 O H2 O -HO OH2 OH- H2 O Fe+3 OH- H2 O -HO OH2 OH- H2 O Alex Clark J. Chem. Inf. Modeling 2011
= charge on TM + ∑ charge on ligands W+4 N- C H - C- O C- W+6 N-2 C H - C- O- C- W+4 N- CH- C- O -H2 C Paper Expect (W+4) Get W+2 N C H - C- O+ C- W+4 W+2 W+6 Missing bond to W “wrong” resonance form of ligand
human intervention But … Not all bonds to TM are found (uses RDKit Hückel reduced overlap population) Non-unique oxidation states/resonance forms (filter/”canonicalization”?) Hydrides charge bug for MolFromSmiles How to automatically test code?