Comparison of JChem Choral and JChem Oracle Cartridge

    This document summarizes the main differences between the two Oracle cartridge product of ChemAxon: JChem Choral (Choral) and JChem Oracle Cartridge (JOC).

    Added functionalities in Choral

    • 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

        • The most relevant hit structures are given back almost simultaneously with the modification of the query structure.
    • 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

      • By connecting the Oracle database on RDS to the Choral service running on Amazon EC2.
    • Can work in low memory setup

      • While JOC needs all chemical structures be loaded in the cache, Choral can be also run in low memory setup.

    Missing functionalities in Choral (we found nobody uses them)

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

      • Homology groups, further Markush and query features are not supported on target side.
    • Structure checker/fixer functionalities are not supported.

    • Standardization implemented in version 19.19.

    • JChem tables are not supported.

      • Handling (indexing, searching, …) JChem tables is not supported in Choral.
    • BLOB type columns for storing chemical structures are not supported., VARCHAR2 and CLOB are supported.

    • Descending hit ordering is not supported.

    Same functionality as in JChem Base / Oracle cartridge, but different solution

    • Simpler installation, privilege handling, administration

    • Handling business rules (standardization, tautomer handling)

    • Domain index

    • SQL syntax, operators, functions

    • Different search engine

      • Both search engines use the same chemical molecule search backend, but the higher level database searching operations are implemented in different manner causing Choral to be faster.
    • 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
          images/download/thumbnails/9241438/tau_q1.png images/download/thumbnails/9241438/tau_t1.png Yes No
          images/download/thumbnails/9241438/tau_q2.png images/download/thumbnails/9241438/tau_t2.png No Yes
          images/download/thumbnails/9241438/tau_q3.png images/download/thumbnails/9241438/tau_t3.png 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 JOCdoubleBondStereo:A Choral default Choraldbsmarkedonly
        images/download/thumbnails/9241438/dbs.png 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 images/download/thumbnails/9241438/smarts.png images/download/thumbnails/9241438/smiles.png
    • 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 chemterm(term,mol);
            WHEN OTHERS THEN
                RETURN NULL;
      • JOC: many methods have haltOnError option to determine what happens in case of errors.

    Migration demo

    See the video demonstrating migration from JChem Oracle Cartridge to Choral.