Database Meta-Atom

The concept of meta atoms is the key to the flexibility of the JTHERGAS system. Meta atoms define an atom label which represents a structure. The structure is defined in CMLElement. The types of meta atoms are:

BensonAtom: This defined the structures associated with the benson rules, such as single, double, triple or aromatic bonding of carbons (and other elements). Also multiple atoms can be defined, such as a CO group.

LinearStructure : This is how linear structures are defined. A complete linear structure is defined as a chain of individual linear structures. The individual linear structures are defined as meta atoms.

NancyLinearForm: Within the nancy linear form, there are meta atoms defined representing structures. One example is CO. This is a structure that is substituted for steric structures. This was especially made to simplify the graph isomorphism problem. A classic example is the methyl group. Matching each methyl group multiplies the number of equivalent matches by 6. For example, a tert-butyl system would match (6*6*6*6)*24 without the methyl substitution and only 24 with.

Meta-Atom Definition

A meta-atom definition has three parts:

  • A structure:

  • A meta-atom name:

  • The type of meta-atom:

Meta-Atom structure

In keeping with the concept of flexibility and reducing thenumber of chemical concepts being 'hard-coded' within the system, the meta-atom is defines the bonding structure of a substructure. The structure definition defines the bonding of the structure. The atoms within this definition consist of two types:

  • Specifically named molecules, i.e. with the periodic table name. For example, c for carbon or o for oxygen

  • Generalized atoms: These are atoms which are left unspecified, for example, an R gro

The bonding structure of the meta-atom is the same as any substructure, molecule or radical.

Example

For example, in CML notation, a doubly bonded carbon is specified with only one carbon specified and the rest are left unspecified:

<?xml version="1.0" encoding="ISO-8859-1"?>

<molecule id="DoubleBondCarbon" xmlns="http://www.xml-cml.org/schema">

<atomArray>

<atom id="a1" elementType="Du" formalCharge="0" hydrogenCount="2"/>

<atom id="a2" elementType="C" formalCharge="0" hydrogenCount="2"/>

<atom id="a3" elementType="Du" formalCharge="0" hydrogenCount="0"/>

<atom id="a4" elementType="Du" formalCharge="0" hydrogenCount="0"/>

</atomArray>

<bondArray>

<bond id="b1" atomRefs2="a2 a1" order="D"/>

<bond id="b2" atomRefs2="a3 a2" order="S"/>

<bond id="b3" atomRefs2="a4 a2" order="S"/>

</bondArray>

</molecule>

Here, only a2, the carbon is specified.

<atom id="a2" elementType="C" formalCharge="0" hydrogenCount="2"/>

The rest, labeled (by the JThermodynamics convention) "Du". For example, atom a3:

<atom id="a3" elementType="Du" formalCharge="0" hydrogenCount="0"/>

The double bond is specified by the bond between a3 and a2, i.e., the labeled carbon (a2) and an unlabeled atom (a3).:

<bond id="b2" atomRefs2="a3 a2" order="S"/>

The other two bonds of a2, the specified carbon, are single bonds:

<bond id="b2" atomRefs2="a3 a2" order="S"/>

<bond id="b3" atomRefs2="a4 a2" order="S"/>


Matching and replacing meta-atom.


Meta Atom with 1 specified atom

<molecule id="DoubleBondCarbon" xmlns="http://www.xml-cml.org/schema">

<atomArray>

<atom id="a1" elementType="Du" formalCharge="0" hydrogenCount="2"/>

<atom id="a2" elementType="C" formalCharge="0" hydrogenCount="2"/>

<atom id="a3" elementType="Du" formalCharge="0" hydrogenCount="0"/>

<atom id="a4" elementType="Du" formalCharge="0" hydrogenCount="0"/>

</atomArray>

<bondArray>

<bond id="b1" atomRefs2="a2 a1" order="D"/>

<bond id="b2" atomRefs2="a3 a2" order="S"/>

<bond id="b3" atomRefs2="a4 a2" order="S"/>

</bondArray>

</molecule>

Meta Atom with 2 specified atoms

Just to contrast with the above example, a meta-atom can be defined where two or more atoms are specified. One example is the CO:

<molecule id="AldehydeKetone" xmlns="http://www.xml-cml.org/schema">

<atomArray>

<atom id="a1" elementType="C" x2="6.6676" y2="40.4276" formalCharge="0" hydrogenCount="0"/>

<atom id="a2" title="*" elementType="Du" x2="5.3594" y2="39.7102" formalCharge="0" hydrogenCount="3"/>

<atom id="a3" elementType="O" x2="6.6676" y2="41.9468" formalCharge="0" hydrogenCount="0"/>

<atom id="a5" title="*" elementType="Du" x2="6.6676" y2="38.9084" formalCharge="0" hydrogenCount="3"/>

</atomArray>

<bondArray>

<bond id="b1" atomRefs2="a2 a1" order="S"/>

<bond id="b2" atomRefs2="a1 a3" order="D"/>

<bond id="b4" atomRefs2="a1 a5" order="S"/>

</bondArray>

</molecule>

In this case, both the C and the O would be taken out and substituted with the co meta-atom.