Functional groups

User 870ab5b546

17-06-2004 14:25:34

From what I can tell, JChem doesn't have the ability to detect the presence or absence of functional groups in a molecule. Functional groups are defined by the presence and absence of certain groups of atoms, so a substructure search is not adequate. For example, for a compound to be an amine, it must have at least one C singly bound to an N, but no C attached to that N can be doubly bound to an O.





A good functional group capability would allow users to modify the definitions of the functional groups that were provided with JChem, because the definitions have not been standardized. (For example, is a hemiacetal also an alcohol, and is an oxime an imine?)





We have developed a program that searches for functional groups within MOL files. You can try it out at http://epoch.chem.uky.edu/epoch-plugin/functest/grouptest.jsp. Let me know if you are interested in the code.

ChemAxon 587f88acea

17-06-2004 18:31:19

Hello, this is very neat, we are actually working on a similar code (needed by an other module) recognising functional groups without substructure search. The limitation you mentioned is quite relevant, I think most people would assign only "amide" but not carbonyl and amine to a simle amide.

ChemAxon 43e6884a7a

17-06-2004 20:05:56

Bob,
bobgr wrote:
We have developed a program that searches for functional groups within MOL files. You can try it out at http://epoch.chem.uky.edu/epoch-plugin/functest/grouptest.jsp. Let me know if you are interested in the code.
It would be awesome if could donate your code at http://www.chemaxon.hu/forum/viewforum.php?f=10


Is that possible? Anyway, we are very interested!


Ferenc

ChemAxon a3d59b832c

17-06-2004 21:07:23

bobgr wrote:
From what I can tell, JChem doesn't have the ability to detect the presence or absence of functional groups in a molecule. Functional groups are defined by the presence and absence of certain groups of atoms, so a substructure search is not adequate. For example, for a compound to be an amine, it must have at least one C singly bound to an N, but no C attached to that N can be doubly bound to an O.


The next release of jchem (version 2.3) will allow full smarts substructure searching capability. In this, you can use recursive smarts which specifies an environment for the atom in question. Another good thing is that it can be negated, so the absence of certain atoms can also be tested. For example, the above amine definition can be formalized in smarts the following way:





C[N;!$(NC=O)]([H,C])[H,C]





or if you want to allow aromatic carbon as well:





[#6][N;!$(N[#6]=O)]([#1,#6])[#1,#6]





Our current pre-release version already contains the full smarts searching. You can download it from:





http://www.chemaxon.com/restricted/jtest/





For more details about smarts, see the query guide in the above installation, and also:





http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html





http://www.daylight.com/support/contrib/smarts/smarts_examples.html





Furthermore, as far as I know, you can also specify the absence of atoms using R-group logic. (R1 = 0) See attached file. For the R-logic, in Marvin sketch select Edit/Attributes/R-logic. R-group queries can be used in previous versions of jchem as well.





I have to add, that this R-group example is far less elegant than the smarts notation.

User 870ab5b546

18-06-2004 00:37:05

Sounds like y'all have the functional group search under control. We have a very different way of doing it.





To define functional groups, we use a notation much simpler than SMARTS that we call Structure Definition Language. For example, an alcohol is defined as:





+ C1-O1-H


- C1=O or C1=N





The definitions are kept in a file that currently contains about 130 functional groups. We use a Prolog program to analyze a MOL file for the presence and absence of the relevant structures. I understand that Prolog is used because of its backtracking capabilities. I don't know whether Prolog is compatible with your all-Java approach. But maybe it could be made part of JChem.





I have no idea how to post code. I'll talk it over with Sarav on Monday.

ChemAxon 9c0afc9aaf

21-06-2004 09:07:43

If you have the matching atom indexes, you may also consider adding substructure coloring to your web application.





Please see http://www.chemaxon.com/marvin/doc/dev/example-view6.html


for atom and bond coloring with applets.





An other example with a standalone application is described at:





http://www.chemaxon.hu/forum/viewtopic.php?t=60

User 07eebf78ca

10-07-2004 01:20:28

Hi,





I uploaded the functional group code in the Forum meant for sharing code. You can go to the post by clicking here. Feel free to download and test it.





-Sarav

ChemAxon 43e6884a7a

13-07-2004 05:47:28

sarav wrote:
I uploaded the functional group code in the Forum meant for sharing code. You can go to the post by clicking here. Feel free to download and test it.
Thanks a lot Sarav! It is a very interesting solution.