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?
Try something like this:
$ evaluate -e "match('furan'); match('piperazine'); match('thiophene'); match('cyclopentane')" "C1CCC(C1)C(C1=COC=C1)C1=CSC=C1"
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.
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".
Regards, Tim Ritchie.
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.
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:
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:
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.