geometry

Implementation level

Type

Status

CML extraction template

image1

HTML5 representation

image2

Template attributes

Attribute

Value

source

MOPAC log

id

geometry

name

Cartesian Coordinates

pattern

\s*CARTESIAN\sCOORDINATES.*

endPattern

\s*Empirical\s*Formula.*

endPattern2

\s*$\s*$\s*

repeat

*

xml:base

job/atomiccoordinates.xml

Input

                             CARTESIAN COORDINATES

   1    C       -4.374598305     2.688732629     1.251130091
   2    C       -5.092724453     3.683249302     0.425878871
   3    C       -6.471282903     3.691879674     0.356170876
   4    C       -7.330541146     2.837499652     1.233383342
   5    C       -6.546466024     1.752175053     2.134695421
   6    C       -5.058520354     1.736674464     1.980132375
   7    C       -3.146588734     2.345471392     0.555689153
   8    C       -2.967412654     3.247627856    -0.624015350
   9    C       -4.291530172     3.929989962    -0.760299282
...

           Empirical Formula: C510 H498 N66 O172  =  1246 atoms

Input

          CARTESIAN COORDINATES

    NO.       ATOM         X         Y         Z

     1         C       -4.1918    2.5617    1.3518
     2         C       -4.8544    3.5730    0.5005
     3         C       -6.2295    3.6275    0.3952
     4         C       -7.1393    2.8094    1.2560
     5         C       -6.4160    1.7058    2.1856
     6         C       -4.9260    1.6393    2.0699
     7         C       -2.9585    2.1717    0.6912
     8         C       -2.7186    3.0577   -0.4900
     9         C       -4.0147    3.7838   -0.6656
...

Output text

 1<comment class="example.output" id="geometry">
 2      <module cmlx:templateRef="geometry">
 3          <molecule id="molecule">
 4             <atomArray>
 5                <atom elementType="C" id="a1" x3="0.3745983" y3="2.68873263" z3="1.25113009">
 6                   <scalar dataType="xsd:integer" dictRef="cc:serial">1</scalar>
 7                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-4</scalar>
 8                </atom>
 9                <atom elementType="C" id="a2" x3="0.09272445" y3="3.6832493" z3="0.42587887">
10                   <scalar dataType="xsd:integer" dictRef="cc:serial">2</scalar>
11                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-5</scalar>
12                </atom>
13                <atom elementType="C" id="a3" x3="0.4712829" y3="3.69187967" z3="0.35617088">
14                   <scalar dataType="xsd:integer" dictRef="cc:serial">3</scalar>
15                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-6</scalar>
16                </atom>
17                <atom elementType="C" id="a4" x3="0.33054115" y3="2.83749965" z3="1.23338334">
18                   <scalar dataType="xsd:integer" dictRef="cc:serial">4</scalar>
19                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-7</scalar>
20                </atom>
21                <atom elementType="C" id="a5" x3="0.54646602" y3="1.75217505" z3="2.13469542">
22                   <scalar dataType="xsd:integer" dictRef="cc:serial">5</scalar>
23                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-6</scalar>
24                </atom>
25                <atom elementType="C" id="a6" x3="0.05852035" y3="1.73667446" z3="1.98013238">
26                   <scalar dataType="xsd:integer" dictRef="cc:serial">6</scalar>
27                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-5</scalar>
28                </atom>
29                <atom elementType="C" id="a7" x3="0.14658873" y3="2.34547139" z3="0.55568915">
30                   <scalar dataType="xsd:integer" dictRef="cc:serial">7</scalar>
31                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-3</scalar>
32                </atom>
33                <atom elementType="C" id="a8" x3="0.96741265" y3="3.24762786" z3="-0.62401535">
34                   <scalar dataType="xsd:integer" dictRef="cc:serial">8</scalar>
35                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-2</scalar>
36                </atom>
37                <atom elementType="C" id="a9" x3="0.29153017" y3="3.92998996" z3="-0.76029928">
38                   <scalar dataType="xsd:integer" dictRef="cc:serial">9</scalar>
39                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-4</scalar>
40                </atom>
41              </atomArray>
42        </molecule>
43      </module>
44    </comment>

Template definition

 1<record repeat="*">((?!\s*1).*)</record>
 2<record name="molecule" repeat="*">{I,cc:serial}{A,cc:elementType}{F,cc:x3}\*?{F,cc:y3}\*?{F,cc:z3}</record>
 3<transform process="delete" xpath="//cml:list[child::cml:scalar[@dictRef='cc:elementType' and text() = 'Tv']]" />
 4<transform process="createArray" xpath="." from=".//cml:scalar[@dictRef='cc:serial']" dictRef="cc:serial" dataType="xsd:integer" />
 5<transform process="createArray" xpath="." from=".//cml:scalar[@dictRef='cc:elementType']" dictRef="cc:elementType" dataType="xsd:string" />
 6<transform process="createArray" xpath="." from=".//cml:scalar[@dictRef='cc:x3']" dictRef="cc:x3" dataType="xsd:double" />
 7<transform process="createArray" xpath="." from=".//cml:scalar[@dictRef='cc:y3']" dictRef="cc:y3" dataType="xsd:double" />
 8<transform process="createArray" xpath="." from=".//cml:scalar[@dictRef='cc:z3']" dictRef="cc:z3" dataType="xsd:double" />
 9<transform process="createMolecule" xpath=".//cml:list/cml:array" id="molecule" />
10<transform process="pullup" xpath=".//cml:molecule" repeat="2" />
11<transform process="delete" xpath=".//cml:list[count(*)=0]" />
12<transform process="delete" xpath=".//cml:list[count(*)=0]" />
13<transform process="delete" xpath=".//cml:molecule//cml:scalar[@dictRef='cc:serial']" />
14<transform process="delete" xpath=".//cml:molecule//cml:scalar[@dictRef='cc:atomicNumber']" />