Skip to content

Latest commit

 

History

History
157 lines (127 loc) · 12.4 KB

geometry-d3e37445.rst

File metadata and controls

157 lines (127 loc) · 12.4 KB

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 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

<comment class="example.output" id="geometry">
      <module cmlx:templateRef="geometry">
          <molecule id="molecule">
             <atomArray>
                <atom elementType="C" id="a1" x3="0.3745983" y3="2.68873263" z3="1.25113009">
                   <scalar dataType="xsd:integer" dictRef="cc:serial">1</scalar>
                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-4</scalar>
                </atom>
                <atom elementType="C" id="a2" x3="0.09272445" y3="3.6832493" z3="0.42587887">
                   <scalar dataType="xsd:integer" dictRef="cc:serial">2</scalar>
                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-5</scalar>
                </atom>
                <atom elementType="C" id="a3" x3="0.4712829" y3="3.69187967" z3="0.35617088">
                   <scalar dataType="xsd:integer" dictRef="cc:serial">3</scalar>
                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-6</scalar>
                </atom>
                <atom elementType="C" id="a4" x3="0.33054115" y3="2.83749965" z3="1.23338334">
                   <scalar dataType="xsd:integer" dictRef="cc:serial">4</scalar>
                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-7</scalar>
                </atom>
                <atom elementType="C" id="a5" x3="0.54646602" y3="1.75217505" z3="2.13469542">
                   <scalar dataType="xsd:integer" dictRef="cc:serial">5</scalar>
                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-6</scalar>
                </atom>
                <atom elementType="C" id="a6" x3="0.05852035" y3="1.73667446" z3="1.98013238">
                   <scalar dataType="xsd:integer" dictRef="cc:serial">6</scalar>
                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-5</scalar>
                </atom>
                <atom elementType="C" id="a7" x3="0.14658873" y3="2.34547139" z3="0.55568915">
                   <scalar dataType="xsd:integer" dictRef="cc:serial">7</scalar>
                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-3</scalar>
                </atom>
                <atom elementType="C" id="a8" x3="0.96741265" y3="3.24762786" z3="-0.62401535">
                   <scalar dataType="xsd:integer" dictRef="cc:serial">8</scalar>
                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-2</scalar>
                </atom>
                <atom elementType="C" id="a9" x3="0.29153017" y3="3.92998996" z3="-0.76029928">
                   <scalar dataType="xsd:integer" dictRef="cc:serial">9</scalar>
                   <scalar dataType="xsd:integer" dictRef="g:atomicType">-4</scalar>
                </atom>
              </atomArray>
        </molecule>     
      </module>
    </comment>

Template definition

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