I have a problem with isMarkush() function. It doesn't seem to return proper results.
the following query
select * from chem_structs where jc_evaluate(structure, 'isMarkush()') = 1;
returns nothing. However there are definitely a lot of Markush structures in our database - see 795735890.mol
select jc_evaluate(structure, 'isMarkush()') from chem_structs where unit_id = 795735890;
am I missing something?
Oracle Database 11g Enterprise Edition Release 188.8.131.52.0 - 64bit Production
PL/SQL Release 184.108.40.206.0 - Production
CORE 220.127.116.11.0 Production
TNS for Linux: Version 18.104.22.168.0 - Production
NLSRTL Version 22.214.171.124.0 - Production
JChem owner: JCHEM_GG_EDITORIAL
JChem Server environment:
Java VM vendor: Sun Microsystems Inc.
Java version: 1.6.0_27
Java VM version: 20.2-b06
JChem version: 5.7.0
JChem Index version: 5070000
JDBC driver version: 126.96.36.199.0-Production
The .mol file you attached is empty, can you provide the structure file?
Looking at the picture it may be the case that the structure has undefined R-atoms instead of R-groups with definitions. If this is the case then we do not consider the molecule as Markush structure.
Here is jchem index creation params:
CREATE INDEX chem_structs_i_jchem ON chem_structs (structure) INDEXTYPE IS jchem.jc_idxtype
At first we had errors while creating the same index on this table with default structureType=molecule parameter:
java.rmi.RemoteException: java.util.concurrent.ExecutionException: java.lang.Exception: Error while processing ROWID=AABjosAAdAAJriDAAA: Inserting a query or Markush structure is not allowed for table...
So, if we place Markush structures into "anyStructures" we cannot identify it as Markush?
"Molecule" type tables cannot contain query or markush structures. "Any" type tables can contain both. The attached molecule has an undefined R-atom (without R-definition), therefore it is a query molecule but not a Markush structure, hence isMarkush() returns false. A molecule with R-atoms with definitions (e.g. r.mrv) is considered as both query and Markush.
There will be a public method to check whether a specified molecule can be inserted into a table column with a specified structureType of index. Follow this forum link for details.