Hi Ling,

> On Apr 2, 2021, at 16:23, Ling Chan <lingtrek...@gmail.com> wrote:
> 
> Thank you Francois, I took a look at your code and borrowed parts of it to 
> rejoin two molecules. It seems like my problem is solved. I eventually 
> arrived at something like example 4 in 
> https://www.programcreek.com/python/example/123334/rdkit.Chem.CombineMols
> (which I discovered a bit late).
> 
> Still, I am not sure if the code is safe. In particular, I wonder if the 
> following conditions are always valid.
>       • Chem.CombineMols simply concatenates the atomic indices from the 
> input molecules.
>       • The Chem.EditableMol constructor preserves atom ordering from the 
> input.
>       • RemoveAtom in EditableMol results in all indices above the deleted to 
> decrease by one, i.e. atom ordering is preserved.

I've found that it's very hard to work with molecular graphs and preserve 
stereochemistry.

Consider F/C=C/Cl breaking on the first bond, and the code I pointed you to.

FragmentOnBonds() using '9' as the labels gives:  [9*]/C=C/Cl.[9*]F

My "smiles_weld" code converts that to: CC\%99=C/Cl.F%99 which can be 
re-canonicalized to the original: F/C=C/Cl .

Or, with F[C@H](Cl)Br again, breaking on the first bond.

FragmentOnBonds() gives [9*]F.[9*][C@H](Cl)Br

smiles_weld converts that to F%99.[C@@H]%99(Cl)Br which is re-canonicalized as  
F[C@H](Cl)Br

Handling this correctly in the molecule API requires paying careful attention 
to the bond direction, and bond attachment order around the atom, which changes 
with RemoveAtom() calls. I didn't see stereochemistry support in Francois's 
"bind_molecules()" nor in the connect_mols() at 
https://github.com/molecularsets/moses/blob/master/moses/baselines/combinatorial.py
 (one of the examples from the programcreek.com link you gave).

If you don't need to support or preserve stereochemistry, then of course 
there's no problem.

Cheers,

                                Andrew
                                da...@dalkescientific.com




_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to