Choral Cartridge in Instant JChem


    JChem Choral Cartridge is supported by IJC. JChem Choral Cartridge integrates the 2nd generation JChem Base engine with Oracle interface. Among its advantages are high-speed chemical search and quick sorting of chemical structures by relevance. It offers the most used chemical search options like substructure search, superstructure search and duplicate search.


    Comparison of JChem Choral and JChem Oracle Cartridge

    When compared with JChem Oracle Cartridge, Choral Cartridge proves to execute queries faster. Performance can vary significantly based on the specific query executed and its frequency of execution. Another advantage of the Choral Cartridge is less memory use. Further differences can be found here together with tutorial video How to migrate from JChem Oracle Cartridge to Choral if that should be your case.

    Installing JChem Choral Cartridge

    This guide will serve as a basic introduction to the installation and use of JChem Choral Cartridge installation.


    Upgrade process of IJC schema is done automatically, but upgrade of the cartridge itself has to be done manually and it is described in the JChem Choral Upgrade documentation.

    About JChem Choral Cartridge table types in IJC

    JChem Choral does not handle JChem tables, only regular tables are handled. The column for storing the chemical structures must be Molecule type. CREATE INDEX using chemindex or sortedchemindex makes the JChem search processes run faster, however searching in unindexed tables is also possible. There are no table settings because, unlike with the JChem Oracle Cartridge, table types do not exist here.

    JChem Choral Cartridge entity

    If you are using an Oracle database and have the JChem Choral Cartridge installed and running, a new JChem Choral Cartridge entity can be created. After selecting the JChem Choral Cartridge entity as entity type, which is a default option, the following settings need to be specified:

    • In the Display Name text field, enter a name for the new entity.

    • In the Database Table text field, the name of the new entity is automatically copied from the Display Name text field.

    • In the Structure Column field, enter a name for the structure column in the database table.

    • In the ID Column field, specify the column name for the identity column (primary key column) in the database table. For a JChem Choral Cartridge entity, the ID is generated automatically.

    • The default value of the Molecule Type field is ‘sample’. You can add a new molecule type or change the existing one. Detailed documentation about adding and changing molecule types is available in the JChem PostgreSQL Cartridge Manual here.

    Import data

    New JChem Choral Cartridge entity is a default option when Choral is installed correctly; otherwise, it will be missing in the menu. Table creation options can be changed under the ... button.


    Specific molecule types can be set during the import process. Molecule types define the interpretation mode of the chemical structures. Molecule types are based on the extension chemaxon_type. The definition of these types has to be stored in /etc/chemaxon/types/ folder as a <molecule_type_name>.type file. Those types can be selected from the drop-down box.

    Promote Table

    If the structure table is in the correct state, it will be automatically recognized as a Oracle table and promoted as a Structure entity. Otherwise, it will be promoted as a standard data table.


    Structure search options

    JChem Choral provides the following structure search operators. See details in JChem Choral Cartridge Manual:

    • Substructure
    • Superstructure
    • Similarity
    • Duplicate
    • Full Fragment

    Substructure search

    Using substructure search in IJC with Choral, its capabilities are more limited than those of other engines.


    Superstructure search

    Superstructure search has the same options as substructure search available.


    Similarity search

    Using similarity search, so far only classical Tanimoto metric is available.


    Duplicate search

    Has no options available.

    Full fragment search

    Full fragment search has the same options available as substructure search.


    Standardizer in Choral Cartridge

    IJC is able to read standardizer settings in a standard way. In IJC the standardizer settings are READ ONLY.


    The required standardization has to be set in the molecule type files. The name of the molecule type file has to be applied as a parameter of the Molecule column type. See details in JChem Choral Cartridge Manual.

    Advanced features

    Chemical terms fields

    From an IJC perspective, chemical terms (CT) can be created in the user interface similarly to other database search engines. However, Choral handles these fields differently than other cartridges. IJC supports:

    • Adding CT field of a different type (integer, decimal, text, boolean) with different formulas - creates DB column with trigger and function, promotes it to CT field
    • Customization of CT field - set different name or formula, update DB function on formula change
    • Removing of CT field
    • All other basic field functionalities - display, query, export, etc...


    List of known issues and workaround for JChem Choral can be found here

    Also, IJC+Choral is currently missing the following features:

    • Federated search
    • Overlap analysis (not implemented)
    • Re-promotion of the CT field. Once CT field is removed, but DB column+trigger+function is left, we cannot promote it back to CT field, only as a standard field