This document summarizes the main differences between the two Oracle cartridge product of ChemAxon: JChem Choral (Choral) and JChem Oracle Cartridge (JOC).
Relevance ordered substructure search
The hits of substructure search are given back ordered by the relevance (similarity) between the hit structure and the query structure.
Hit as you draw
Search speed increase
Definite search performance growth in case of chemical structure searches where the number of hits is relatively low .
Definite search performance growth in case of searches where the chemical structure search is combined with other search conditions and these other search conditions make the searches very specific, make the chemical structures search run in function mode more quickly.
Availability on RDS
Can work in low memory setup
Fewer search options have been implemented.
Full structure, Markush database search are not supported.
Only few search options have been implemented: currently search options relating double bond and tetrahedral stereo information are only available.
Fixed vague bond level is applied (vague bond level half).
Higher order stereo is only supported in duplicate search, specifically these types of stereochemistry are affected: axial stereo, syn-anti stereo, and cumulene or ring cis-trans stereo.
Fingerprint-screening-only substructure search is not supported
Reactor functionalities are not supported (jc_react in JOC).
Searching Markush targets is not supported.
Standardization implemented in version 19.19.
JChem tables are not supported.
BLOB type columns for storing chemical structures are not supported., VARCHAR2 and CLOB are supported.
Simpler installation, privilege handling, administration
Handling business rules (standardization, tautomer handling)
Domain index
SQL syntax, operators, functions
Different search engine
Tautomer search
In substructure search
Choral: the query is compared to the generic tautomer of the target.
JOC: all tautomer enumerants of the query are compared to the target.
Query | Target | Choral hit | JOC hit |
---|---|---|---|
Yes | No | ||
No | Yes | ||
No | Yes |
In full fragment search
Choral: the query is compared to the generic tautomer of the target.
JOC: the generic tautomer of the query is compared to the generic tautomer of the target.
Double bond stereo matching
Choral: by default, E stereoisomer and Z stereoisomer do not match each other. By setting the DBSMARKEDONLY parameter, search becomes the same as the JOC default.
JOC: With the exception of duplicate search, the default matching mode is ‘marked’; that is, only the stereo configuration of marked double bonds of the query structure are required to match.
Query | JOC default | JOC doubleBondStereo:A | Choral default | Choral dbsmarkedonly |
---|---|---|---|---|
E or Z | E | E | E or Z |
Ignore tetrahedral stereo information
Choral: tetrahedral stereo information can be ignored during substructure search. See the API page. (Available from version 20.3)
JOC: there are more search options available for differently handling tetrahedral stereo information in searches.
Interpretation of ambiguous SMILES/SMARTS strings in query structures
Query | JOC default SMARTS | Choral default SMILES |
---|---|---|
CCC |
Error handling
Choral: no result returned/structure not returned if format of structure is invalid/unknown. At other kind of errors you may create your own method to handle it according to your needs. A simple example to simulate never halt on any errors:
CREATE OR REPLACE chemterm_no_error(term IN VARCHAR2, mol IN CLOB)
RETURN VARCHAR2 AUTHID CURRENT_USER PARALLEL_ENABLE AS
BEGIN
RETURN chemterm(term,mol);
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
END;
/
JOC: many methods have haltOnError option to determine what happens in case of errors.
See the video demonstrating migration from JChem Oracle Cartridge to Choral.