Chemical term to return list of ring types present?

User fca09bdbff

17-11-2009 08:07:21

I would like to use a Chemical Term to identify what types of ring system are present in a list of molecules using SMARTS. Thus the output would be a new column with the common ring names present (furan, piperazine, thiophene, cyclopentane, etc etc).


What would be the best way to approach this?

ChemAxon e08c317633

17-11-2009 13:02:36

Try something like this:


$ evaluate -e "match('furan'); match('piperazine'); match('thiophene'); match('cyclopentane')" "C1CCC(C1)C(C1=COC=C1)C1=CSC=C1"
1;0;1;1


1: match


0: no match


No ring names in output, but you can e.g. create a table header with ring names.


You can - of course - use also SMARTS instead of names in match functions.


Zsolt

User fca09bdbff

17-11-2009 13:39:17

I tried this in IJC 3.0.4.


I can't use the common names (e.g. furan) without getting an error "Expression uses unlicensed calculator plugin: Name to Structure"


An expression such as match("c1cocc1") is accepted, but more than one match command separated by a semi-colon results in an error "Invalid return type:[Ljava.lang.Object;1b0fdac".


Any thoughts?


Regards, Tim Ritchie.

ChemAxon e08c317633

17-11-2009 15:29:02

I think you don't have "Name to Structure" license. Please email our sales team if you intend to buy it.


It seems IJC cannot handle multiple match expression separated with semicolon. Please add separate Chemical Terms columns for each match in IJC.

Zsolt

ChemAxon fa971619eb

17-11-2009 17:24:01

I think what is happening here is quite subtle:


If the name is included in quotes then it is treated as a chemical name, and need to be converted to a structure, so needs a name2structure license.


e.g. these work as long as you have a license:


match('benzene')
match('furan')
match('1,2,4-trichlorobenzene')


However, if the name is not in quotes then it is looked up from the built in dictionary of functional groups and do not need a name to structure license. So terms like this can be used:


match(amine)
match(amide)


But the list of terms covered is relatively small.


 


Also, bear in midn that you can combine these expressions as a chem terms filter in IJC using the && operator. e.g.


match(amine) && match(amide)


which will find strucutres containing amines and amides.


 


Tim


 


 

ChemAxon d76e6e95eb

17-11-2009 17:37:13

I suggest you to draw the named ring systems and do a search with them.


However, this might be relevant, please see the simple "standardize" example, that strips down all ring systems (bottom of page 13th):


http://www.chemaxon.com/forum/command_line_tools_of_chemaxon_tips_and_tricks-gy_rgy_pirok-chemaxon-download6272.pdf