This set of tests examines the Linear Atoms. There are several ways to examine the LinearAtom database:
The following command lists all the Linear Atom in the system:
LinearAtom List
where:
LinearAtom
: The keyword for examining the Linear Atom databaseList
: The keyword to list all the names of the Linear AtomFor example, the following command:
LinearAtom List
gives the output:
Name Substitute CMLStructure
LinearStructure.L-CtC L-CtC LinearGeneralEthyne
LinearStructure.L-H L-H LinearHydrogenAtom
LinearStructure.L-I L-I LinearIodineAtom
LinearStructure.L-Br L-Br LinearBromineAtom
LinearStructure.L-Cl L-Cl LinearChlorineAtom
LinearStructure.L-CN L-CN LinearGeneralNitrile
Note that the Linear atom name is the substitution meta atom with a prefix "LinearStructure.
" and the CMLStructure
is the CMLStructure the group definition found in CMLStructures.
The following command lists all the Linear Atom in the system:
Linear Atom Element name
where:
LinearAtom
: The keyword for examining the Linear Atom databaseList
: The keyword to retrieve the Linear atomFor example, the following command:
LinearAtom Element "LinearStructure.L-CN"
gives the output:
MetaAtomDefinition -----------------------------------------------
MetaAtomDefinition: L-CN
specifiedAtoms: 1 2
unspecifiedAtoms: 0
connectingAtoms: 1
<?xml version="1.0" encoding="ISO-8859-1"?>
<molecule id="LinearGeneralNitrile" xmlns="http://www.xml-cml.org/schema">
<atomArray>
<atom id="a0" title="R" elementType="Du" formalCharge="0" hydrogenCount="0"/>
<atom id="a1" elementType="C" formalCharge="0" hydrogenCount="0"/>
<atom id="a2" elementType="N" formalCharge="0" hydrogenCount="0"/>
</atomArray>
<bondArray>
<bond id="b1" atomRefs2="a1 a0" order="S"/>
<bond id="b2" atomRefs2="a2 a1" order="T"/>
</bondArray>
</molecule>
MetaAtomDefinition -----------------------------------------------
The command:
LinearAtomTest Single molecule element
where:
AtomTest
: the keyword for Linear Atom testsSingle
: The keyword signalling the testing of a single Linear Atom elementmolecule
: The molecule in Nancy linear formelement
: The database name of the Linear AtomThe output is in three parts:
For example, to test one of the peroxyl group Linear Atom on dimethy peroxide (quotes are used around the molecule and element because of the special characters:
LinearAtomTest Single "ch3/o/o/ch3"
LinearAtom.oo
The output is:
Molecule -----------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<molecule id="m1" xmlns="http://www.xml-cml.org/schema">
<atomArray>
<atom id="a0" elementType="C" formalCharge="0"/>
<atom id="a1" elementType="H" formalCharge="0"/>
<atom id="a2" elementType="H" formalCharge="0"/>
<atom id="a3" elementType="H" formalCharge="0"/>
<atom id="a4" elementType="C" formalCharge="0"/>
<atom id="a5" elementType="N" formalCharge="0"/>
</atomArray>
<bondArray>
<bond id="b1" atomRefs2="a1 a0" order="S"/>
<bond id="b2" atomRefs2="a2 a0" order="S"/>
<bond id="b3" atomRefs2="a3 a0" order="S"/>
<bond id="b4" atomRefs2="a4 a0" order="S"/>
<bond id="b5" atomRefs2="a5 a4" order="T"/>
</bondArray>
</molecule>
Molecule -----------------------------------------------
Molecule after substitution
Molecule -----------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<molecule id="m1" xmlns="http://www.xml-cml.org/schema">
<atomArray>
<atom id="a0" elementType="C" formalCharge="0"/>
<atom id="a1" elementType="H" formalCharge="0"/>
<atom id="a2" elementType="H" formalCharge="0"/>
<atom id="a3" elementType="H" formalCharge="0"/>
<atom id="a4" elementType="L-CN" formalCharge="0">
<scalar dictRef="cdk:partialCharge" dataType="xsd:double">0.0</scalar>
</atom>
</atomArray>
<bondArray>
<bond id="b1" atomRefs2="a1 a0" order="S"/>
<bond id="b2" atomRefs2="a2 a0" order="S"/>
<bond id="b3" atomRefs2="a3 a0" order="S"/>
<bond id="b4" atomRefs2="a4 a0" order="S"/>
</bondArray>
</molecule>
Molecule -----------------------------------------------
Here, the linear CN group atoms:
<atom id="a4" elementType="C" formalCharge="0"/>
<atom id="a5" elementType="N" formalCharge="0"/>
were replaced by a single LinearAtom
<atom id="a4" elementType="L-CN" formalCharge="0">
<scalar dictRef="cdk:partialCharge" dataType="xsd:double">0.0</scalar>
The bonding also changed from:
<bond id="b3" atomRefs2="a3 a0" order="S"/>
<bond id="b4" atomRefs2="a4 a0" order="S"/>
<bond id="b5" atomRefs2="a5 a4" order="T"/>
to:
<bond id="b4" atomRefs2="a4 a0" order="S"/>
The command:
LinearAtomTest Full molecule
where:
LinearAtomTestTest
: the keyword for Linear Atom testsmolecule
: The molecule in Nancy linear formThe output is in two parts:
For example, to test Linear Atom recognition of JThermodynamics on a completely linear dicyanide molecule (quotes are used around the molecule and element because of the special characters):
LinearAtomTest Full "n///c/c/c///n"
The output is:
Molecule -----------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<molecule id="m1" xmlns="http://www.xml-cml.org/schema">
<atomArray>
<atom id="a0" elementType="N" formalCharge="0"/>
<atom id="a1" elementType="C" formalCharge="0"/>
<atom id="a2" elementType="C" formalCharge="0"/>
<atom id="a3" elementType="C" formalCharge="0"/>
<atom id="a4" elementType="N" formalCharge="0"/>
</atomArray>
<bondArray>
<bond id="b1" atomRefs2="a1 a0" order="T"/>
<bond id="b2" atomRefs2="a2 a1" order="S"/>
<bond id="b3" atomRefs2="a3 a2" order="S"/>
<bond id="b4" atomRefs2="a4 a3" order="T"/>
</bondArray>
</molecule>
Molecule -----------------------------------------------
Molecule after substitution
Molecule -----------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<molecule id="m1" xmlns="http://www.xml-cml.org/schema">
<atomArray>
<atom id="a0" elementType="C" formalCharge="0" hydrogenCount="0"/>
<atom id="a1" elementType="L-CN" formalCharge="0">
<scalar dictRef="cdk:partialCharge" dataType="xsd:double">0.0</scalar>
</atom>
<atom id="a2" elementType="L-CN" formalCharge="0">
<scalar dictRef="cdk:partialCharge" dataType="xsd:double">0.0</scalar>
</atom>
</atomArray>
<bondArray>
<bond id="b2" atomRefs2="a0 a1" order="S"/>
<bond id="b3" atomRefs2="a2 a0" order="S"/>
</bondArray>
</molecule>
Molecule -----------------------------------------------
Multiple substitutions
The following is to Illustrate that consecutive linear atoms get reduced down to single linear atom:
The case is NCCCH where there are two triple bonds in a row, CC and CN:
Molecule -----------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<molecule id="m1" xmlns="http://www.xml-cml.org/schema">
<atomArray>
<atom id="a0" elementType="N" formalCharge="0"/>
<atom id="a1" elementType="C" formalCharge="0"/>
<atom id="a2" elementType="C" formalCharge="0"/>
<atom id="a3" elementType="C" formalCharge="0"/>
<atom id="a4" elementType="H" formalCharge="0"/>
</atomArray>
<bondArray>
<bond id="b1" atomRefs2="a1 a0" order="T"/>
<bond id="b2" atomRefs2="a2 a1" order="S"/>
<bond id="b3" atomRefs2="a3 a2" order="T"/>
<bond id="b4" atomRefs2="a4 a3" order="S"/>
</bondArray>
</molecule>
Molecule -----------------------------------------------
Molecule after substitution
Molecule -----------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<molecule id="m1" xmlns="http://www.xml-cml.org/schema">
<atomArray>
<atom id="a2" elementType="L-H-CTC-CN" formalCharge="0">
<scalar dictRef="cdk:partialCharge" dataType="xsd:double">0.0</scalar>
</atom>
</atomArray>
</molecule>
Molecule -----------------------------------------------
Basically the whole molecule is linear and is reduced to a single linear atom:
<atom id="a2" elementType="L-H-CTC-CN" formalCharge="0">
<scalar dictRef="cdk:partialCharge" dataType="xsd:double">0.0</scalar>