Notes on Chemical Terms functions

Below are some general notes about the usage of the Chemical Terms functions.

Function arguments

Chemical Terms functions perform their calculations using the Calculator Plugins. Plugin parameters can be passed to and used by the Chemical Terms function as a string argument in the form of

key1:value1 key2:value2 key3:value3... . For example:

  • charge(8, 'type:pi pH:7.4') calculates the pi charge of atom 8 of the major microspecies of the input molecule at pH 7.4

  • pKa('1', 'type:acidic model:large considertautomerization:true') calculates the strongest acidic pKa value of the input molecule, using the LARGE model and tautomerization

Dissimilarity descriptors and metrics

When using Chemical Terms functions to calculate similarity/dissimilarity between molecules, the following metrics can be used.

Descriptor

Metric

Chemical Hashed Fingerprint (CF)

Tanimoto (default), Euclidean

ECFP

Tanimoto (default), Euclidean

Pharmacophore Fingerprint (PF)

Tanimoto (default), Euclidean

Burden EigenValue Descriptor (BCUT)

Euclidean

HDon

Euclidean

HAcc

AbsDiff

Heavy

AbsDiff

LogP

AbsDiff

LogD

AbsDiff

Mass

AbsDiff

TPSA

AbsDiff

Pre-defined molecules and molecule names

It is possible to refer to molecules by names instead of explicit SMILES/SMARTS strings or molecule file paths. For example, you might want to write nitro or carbonyl as query in a match function.

Frequently used queries are pre-defined in the built-in functional groups file chemaxon/marvin/templates/functionalgroups.cxsmi within MarvinBeans-templates.jar. You can also define your own query SMARTS in the marvin/config/marvin/templates/functionalgroups.cxsmi file and in $HOME\chemaxon\marvin\templates\functionalgroups.cxsmi (Windows) or in $HOME/.chemaxon/marvin/templates/functionalgroups.cxsmi (UNIX / Linux), where marvin is the Marvin installation directory and $HOME is your user home directory.

General notes

  1. The current list of functions only contains examples of Molecule Context usage. Using the Chemical Terms functions in the Reaction Context is very similar and usually requires the context molecule to be used as a function parameter. For example

    • logD(reactant(1), '7.4') calculates the logD of the 2nd reactant of the reaction eqaution at pH 7.4

    • acidicpKa(ratom(1)) calculates the acidic pKa of the reactant atom matching map 1 in the reaction equation

    • atomCount(product(0), '7') returns the number of N atoms in the 1st product of the reaction equation

    • aliphaticAtom(patom(2)) decides if the product atom matching map 2 in the reaction equation is aliphatic

  2. When using Chemical Terms functions in Reaction Context and atoms are referred by atom indexes as function parameters, the molecule (containing the atom) must always be specified and must contain all the atoms referred by indexes. This is true even if the Chemical Terms function is used to convert (product or reactant) maps to atom indexes. An example is the function shortestPath(reactant(0), pair(ratom(1),ratom(2))).

  3. The match, matchCount, disjointMatchCount and dissimilarity functions are not available in Marvin. The can only be used if the JChem package is installed.

  4. Although the function names are case-sensitive, lower-case names are always accepted, e.g. aromaticAtomCount() is equivalent to aromaticatomcount(), but AROMATICATOMCOUNT() is not accepted.