Skip to content

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 emplates\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.