isMarkush() function doesn't seem to work

User cf4264f752

27-01-2012 18:34:19

Hi everyone!

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

and again 

select jc_evaluate(structure, 'isMarkush()') from chem_structs where unit_id = 795735890;

returns 0

am I missing something?

Oracle environment: 


Oracle Database 11g Enterprise Edition Release - 64bit Production

PL/SQL Release - Production

CORE Production

TNS for Linux: Version - Production

NLSRTL Version - Production




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:


ChemAxon fb166edcbd

30-01-2012 16:55:48

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.

User a7faa21887

03-02-2012 15:28:35


Here is jchem index creation params:


CREATE INDEX chem_structs_i_jchem ON chem_structs (structure) INDEXTYPE IS jchem.jc_idxtype

PARAMETERS ('structureType=anyStructures,fp_size=32,fp_bit=2,pat_length=6,duplicateFiltering=n')


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?



User cf4264f752

03-02-2012 15:40:18

Nora wrote:

The .mol file you attached is empty, can you provide the structure file?

oops sorry

ChemAxon fb166edcbd

03-02-2012 18:10:47

"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.