applying transformation to the part of molecule

34 views
Skip to first unread message

Ken

unread,
Jun 1, 2012, 7:58:28 AM6/1/12
to indigo-...@googlegroups.com
There are some molecular templates that we do not want to apply a certain transformation rules but want to apply them to the parts of molecule outside of template - basically apply rules partially outside of given template.

For example, in tetracycline, one may not want rules to be applied to 4 rings with 2 enols (as it is conventional tetracycline form) but if other additional substituents containing enol group are present then convert them into ketones.
So is there a way you could suggest for doing this? I guess if one could query molecule for certain template and get complimentary part of the molecule than one could apply rules to that complimentary part.

Something like this?

1. is template present in this molecule
2. if yes, get complimentary part of template from molecule
3. apply rule to complimentary part and superimpose the transformed complimentary part into original molecule

I would appreciate your suggestions on how to achieve this.

Thanks.

Mikhail Rybalkin

unread,
Jun 4, 2012, 5:28:03 AM6/4/12
to indigo-...@googlegroups.com

Hello Ken,

I think that such complex conditions can be archived in SMARTS, because there is a way to specify that an atoms doesn't belong to a specific fragment using !$(...) notation. I can help you to create such a query, but I didn't fully understand your case with tetracycline, because I'm not a chemist... Could you give me the input structure (for example is SMILES notation) and the desired structure? As I understand the input is CN(C)[C@H]1C2CC3C(=C(O)[C@]2(O)C(=O)C(C(N)=O)=C1O)C(=O)C1=C(O)C=CC=C1[C@@]3(C)O
And in addition I see that we have to care about aromaticity when specified SMARTS query for this structure.

As an alternative, and can propose another solution, which is not currently available in Indigo:

1. You can highlight all the atoms that you are interested in, or not interested. For example, you can specify a template, find all substructure matches, and highlight corresponding atoms.
2. And you can add a constraint on the all query atoms in the transformation reaction that they match only highlighted atoms (or not highlighted). Even now there is a method called addConstraint that works for query atoms and bonds, but we do not support highlighting constraing now.
3. As a result your transformation will be applied only to a specific parts of a molecule specified with highlighting.

Will it work for you? It is not hard to add such functionality, if it would be useful.

Best regards,
Mikhail

Ken

unread,
Jun 4, 2012, 11:51:57 AM6/4/12
to indigo-...@googlegroups.com
Hi, Mikhail,

Yes, I am aware that one can specify atom that is not belong to fragment by '!' notation. However, fragment is too big and we have many of them that we need to check that atom is not belong to - it is going to be huge SMIRKS and it is not convenient to deal with it and display. For now I found a temporary workaround to this problem.

> And you can add a constraint on the all query atoms in the transformation reaction that they match only highlighted atoms (or not highlighted). Even now there is a method called addConstraint that works 
>for query atoms and bonds, but we do not support highlighting constraing now. 

It seems that it would be very useful to have a way for applying transformation to non-highlighted part of the molecule. When/if you implement this please supply an example.

Thanks a lot,
Ken

Mikhail Rybalkin

unread,
Jun 20, 2012, 5:59:32 AM6/20/12
to indigo-...@googlegroups.com
Hello again,

In the other thread I have already posted a link, but just to keep it in history here is a link to the next version of Indigo 1.1.1: http://ggasoftware.com/accept?file=indigo-1.1.1%2Findigo-dotnet-1.1.1-win.zip

Now you can add a constrint to a query atoms to match only highlighted or unhighlited atoms.

query.getAtom(0).addConstraint("highlighting", "true"); // or "false", or "0", "1".

One if the possible issue is that our matcher object creates an internal copy of a molecule, and you need to recreate a matcher object if you change highlighting if want to use this highlighting for substructure search.

Looking forward to receiving a feedback from you!

Best regards,
Mikhail
Reply all
Reply to author
Forward
0 new messages