Hi Jan

Your code doesn't change the charges because the reaction SMARTS doesn't
tell it to. If you say -

rxn_smarts = ['[N+:1]=[*:2]-[O-:3]>>[N+0:1]-[*:2]=[O+0:3]']

- the charges in the product are explicitly defined and you should get the
result you expect.

Best regards,
Chris

On 25 January 2018 at 10:18, Jan Halborg Jensen <jhjen...@chem.ku.dk> wrote:

>
> The following code changes the bond order correctly but does not change
> the charges accordingly
>
> Any idea what I am doing wrong?
>
> Thanks, Jan
>
>
> def clean_charges(mol):
>     rxn_smarts = ['[N+:1]=[*:2]-[O-:3]>>[N:1]-[*:2]=[O:3]']
>
>     for smarts in rxn_smarts:
>         rxn = AllChem.ReactionFromSmarts(smarts)
>         ps = rxn.RunReactants((mol,))
>         for x in ps:
>             mol = x[0]
>
>     #rdmolops.SanitizeMol(mol)
>     return mol
>
> mol = Chem.MolFromSmiles("C[NH+]=C(C)[O-]")
>
> mol = clean_charges(mol)
> print Chem.MolToSmiles(mol)
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Rdkit-discuss mailing list
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to