Thank you so much for your help!
This was very helpful
Michal

‫בתאריך יום ד׳, 21 ביוני 2023 ב-13:56 מאת ‪Ivan Tubert-Brohman‬‏ <‪
ivan.tubert-broh...@schrodinger.com‬‏>:‬

> Hi Michal,
>
> A key point to consider is that the default bond order in SMARTS is not
> single, but "single or aromatic". If you really want to match single bonds
> only, you can specify a single bond with "-".
>
> However, it sounds as if you actually expect aromatic bonds to match as
> well, since you expect Cc1ccccc1C to become CC=CC=CC=CC; but only bonds
> that would show up as "single" on a Kekule structure? You _could_ do that
> if you kekulize the molecule first (Chem.Kekulize(mol)), but the problem
> there is that there is more than one Kekule structure and you'll only get
> one of them, where the bond that you were thinking of breaking in this
> example might be double.
>
> Regarding "aromatic" non-ring atoms on the products, I think sanitizing
> the products might help. (See Chem.SanitizeMol).
>
> Hope this helps,
> Ivan
>
> ‪On Wed, Jun 21, 2023 at 5:30 AM ‫מיכל רוט‬‎ <michalroth...@gmail.com>
> wrote:‬
>
>> Hello,
>> I am trying to run reactions using RunReactants.
>> I want to define a general reaבtion involving braking bond in a chain of
>> one-single bonded carbons: '[#6:1][#6:2][#6:3][#6:4] >>
>> ([#6:1][#6:2].[#6:3][#6:4])'.
>> When the reaction does not involve any aromatic carbons all works fine,
>> bun when I hava a reactant with aromatic carbons I get strange things..
>> For example - if I use the following structure as reactant - 'Cc1ccccc1C'
>> I expect to get after the reaction only one product - 'CC=CC=CC=CC'.
>> But it seems that any chain in the aromatic ring recognized as one-single
>> bonded carbons and I get many other fragments( - after converting the
>> pruducts to smiles format using Chem.MolToSmiles):
>> ['CccccccC',
>>  'ccccc(C)cC',
>>  'C',
>>  'Cc1ccccc-1',
>>  'ccccc(C)CC',
>>  'cccc(C)c(C)C',
>>  'C',
>>  'Cc1ccccc-1',
>>  'ccccc(C)CC',
>>  'cccc(C)c(C)C',
>>  'CccccccC',
>>  'ccccc(C)cC',
>>  'CcccccCC',
>>  'C',
>>  'Cc1c-cccc1',
>>  'ccc(C)c(C)cC',
>>  'Ccccc(C)cC',
>>  'cc(C)c(C)ccC',
>>  'cc(C)c(C)ccC',
>>  'Ccccc(C)cC',
>>  'ccc(C)c(C)cC',
>>  'C',
>>  'Cc1c-cccc1',
>>  'CcccccCC']
>>  More over, atoms are marked as aromatic eventhough they are not anymore.
>>  When I try to change it back to mol object (using Chem.MolFromSmiles) I
>> get an error message:
>>  "non-ring atom 1 marked aromatic"
>>
>> I will be greatfull if anyone has an idea for solving this problem
>> without specifing the aromatic ring in the reaction (I want to keep the
>> reaction general so it could happen in any place in the molecule that has a
>> chain of 3 single bonds).
>>
>> Thank you!
>> Michal
>>
>> my code:
>>
>> def flatten(lst):  # take list of lists and convert them to one list.
>>     return sum(([x] if not isinstance(x, list) else flatten(x)
>>                 for x in lst), [])
>>
>> def flat_children(children):
>>     return flatten(children)
>>
>> def mol_to_smile(MolList):  # convert mol to smiles
>>     smiles = []
>>     for x in range(len(MolList)):
>>         new_smile = Chem.MolToSmiles(MolList[x])
>>         new_smiles = split_smile(new_smile)
>>         for n_s in new_smiles:
>>             smiles.append(n_s)
>>     return smiles
>>
>> def split_smile(smile):
>>     """The function split two fragments in one smile into two smiles"""
>>     smile = smile.split(".")
>>     return(smile)
>>
>> smile = 'CC1=CC=CC=C1C'
>> mol = Chem.MolFromSmiles(smile)
>> rxn = AllChem.ReactionFromSmarts('[#6:1][#6:2][#6:3] >>
>> ([#6:1][#6:2].[#6:3])')
>> products = rxn.RunReactants((mol,))
>> mols = []
>> for product in products:
>>     mols.append([x for x in product]) # converts the products from tuples
>> (products) to list (mols)
>>     mols = flat_children(mols)        # return [Mol, Mol, ..]
>> smiles = mol_to_smile(mols)
>> print(smiles)
>>
>> for smile in smiles:
>>     m = Chem.MolFromSmiles(smile)
>>     img = Draw.MolToImage(m)
>>     img.show()
>>
>>
>> output:
>>
>> ['CccccccC',
>>  'ccccc(C)cC',
>>  'C',
>>  'Cc1ccccc-1',
>>  'ccccc(C)CC',
>>  'cccc(C)c(C)C',
>>  'C',
>>  'Cc1ccccc-1',
>>  'ccccc(C)CC',
>>  'cccc(C)c(C)C',
>>  'CccccccC',
>>  'ccccc(C)cC',
>>  'CcccccCC',
>>  'C',
>>  'Cc1c-cccc1',
>>  'ccc(C)c(C)cC',
>>  'Ccccc(C)cC',
>>  'cc(C)c(C)ccC',
>>  'cc(C)c(C)ccC',
>>  'Ccccc(C)cC',
>>  'ccc(C)c(C)cC',
>>  'C',
>>  'Cc1c-cccc1',
>>  'CcccccCC']
>>
>>  [12:06:11] non-ring atom 1 marked aromatic
>> _______________________________________________
>> Rdkit-discuss mailing list
>> Rdkit-discuss@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>>
>
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to