l101.zmatfragment

Implementation level

Type

Status

CML extraction template

image1

HTML5 representation

image2

Template attributes

Attribute

Value

source

Gaussian log

id

l101.zmatfragment

repeat

*

pattern

.*Symbolic\s Z\-matrix.*$\s*Charge.*Multiplicity.*in\ssupermolecule\s*$\s*Charge.*Multiplicity.*in\sfragment.*

endPattern

\s*

xml:base

l101/l101.zmatfragment.xml

Input

Symbolic Z-matrix:
Charge =  0 Multiplicity = 1 in supermolecule
Charge =  0 Multiplicity = 1 in fragment      1.
Charge =  0 Multiplicity = 1 in fragment      2.
H(Fragment=1)         10.95684   0.52181   5.17636
N(Fragment=1)         10.78265  -0.14558   6.33644
H(Fragment=1)         11.65274  -0.43711   6.75966
C(Fragment=1)         9.545    -0.78436   6.74173
H(Fragment=2)         19.67428  -3.80756  -5.09505
H(Fragment=2)         18.43108  -7.54832  -1.03918

Output text

 1<comment class="example.output" id="l101.zmatfragment">
 2    <module cmlx:templateRef="l101.zmatfragment">
 3        <list cmlx:templateRef="chargefragment">
 4           <array dataType="xsd:integer" dictRef="g:charge" size="2">0 0</array>
 5           <array dataType="xsd:integer" dictRef="g:mult" size="2">1 1</array>
 6           <array dataType="xsd:integer" dictRef="g:fragment" size="2">1 2</array>
 7        </list>
 8        <molecule cmlx:templateRef="mol" formalCharge="0" id="zmatfragment" spinMultiplicity="1">
 9            <atomArray>
10               <atom elementType="H" id="a1" x3="10.95684" y3="0.52181" z3="5.17636">
11                  <scalar dataType="xsd:integer" dictRef="g:fragment">1</scalar>
12                  <scalar dataType="xsd:integer" dictRef="cc:atomicNumber">1</scalar>
13               </atom>
14               <atom elementType="N" id="a2" x3="10.78265" y3="-0.14558" z3="6.33644">
15                  <scalar dataType="xsd:integer" dictRef="g:fragment">1</scalar>
16                  <scalar dataType="xsd:integer" dictRef="cc:atomicNumber">7</scalar>
17               </atom>
18               <atom elementType="H" id="a3" x3="11.65274" y3="-0.43711" z3="6.75966">
19                  <scalar dataType="xsd:integer" dictRef="g:fragment">1</scalar>
20                  <scalar dataType="xsd:integer" dictRef="cc:atomicNumber">1</scalar>
21               </atom>
22               <atom elementType="C" id="a4" x3="9.5450" y3="-0.78436" z3="6.74173">
23                  <scalar dataType="xsd:integer" dictRef="g:fragment">1</scalar>
24                  <scalar dataType="xsd:integer" dictRef="cc:atomicNumber">6</scalar>
25                </atom>
26                <atom elementType="H" id="a203" x3="19.67428" y3="-3.80756" z3="-5.09505">
27                    <scalar dataType="xsd:integer" dictRef="g:fragment">2</scalar>
28                    <scalar dataType="xsd:integer" dictRef="cc:atomicNumber">1</scalar>
29                 </atom>
30                 <atom elementType="H" id="a204" x3="18.43108" y3="-7.54832" z3="-1.03918">
31                    <scalar dataType="xsd:integer" dictRef="g:fragment">2</scalar>
32                    <scalar dataType="xsd:integer" dictRef="cc:atomicNumber">1</scalar>
33                 </atom>
34            </atomArray>
35            <bondArray>
36                 <bond atomRefs2="a1 a2" order="S" />
37                 <bond atomRefs2="a2 a4" order="S" />
38                 <bond atomRefs2="a2 a3" order="S" />
39                 <bond atomRefs2="a4 a17" order="S" />
40            </bondArray>
41            <formula concise="C84H90N14O14Zn2">
42               <atomArray count="84 90 14 14 2" elementType="C H N O Zn" />
43            </formula>
44            <property dictRef="cml:molmass">
45               <scalar units="unit:dalton">1559.8022000000024</scalar>
46            </property>
47        </molecule>
48    </module>
49  </comment>

Template definition

 1<record />
 2<record id="charge">.*Charge ={I,g:charge} Multiplicity ={I,g:mult}\s*in\s*supermolecule</record>
 3<record id="chargefragment" repeat="*">.*Charge ={I,g:charge} Multiplicity ={I,g:mult}\sin\sfragment{I,g:fragment}\.\s*</record>
 4<record id="mol" repeat="*" makeArray="true">{I,gau:elementType}\(Fragment={I,g:fragment}\){F,gau:x3,unit:angstrom}{F,gau:y3,unit:angstrom}{F,gau:z3,unit:angstrom}</record>
 5<record id="mol" repeat="*" makeArray="true">{A,gau:elementType}\(Fragment={I,g:fragment}\){F,gau:x3,unit:angstrom}{F,gau:y3,unit:angstrom}{F,gau:z3,unit:angstrom}</record>
 6<transform process="createMolecule" id="zmatfragment" xpath=".//cml:array" />
 7<transform process="move" xpath="./cml:list[@cmlx:templateRef='charge']" to=".//cml:molecule" />
 8<transform process="addAttribute" xpath=".//cml:molecule[@id='zmatfragment']" name="formalCharge" value="$string(.//cml:scalar[@dictRef='g:charge'])" />
 9<transform process="addAttribute" xpath=".//cml:molecule[@id='zmatfragment']" name="spinMultiplicity" value="$string(.//cml:scalar[@dictRef='g:mult'])" />
10<transform process="delete" xpath="./cml:list[@cmlx:templateRef='charge']" />
11<transform process="createArray" xpath="." from="./cml:list[@cmlx:templateRef='chargefragment']//cml:scalar[@dictRef='g:charge']" />
12<transform process="createArray" xpath="./cml:list[@cmlx:templateRef='chargefragment']" from=".//cml:scalar[@dictRef='g:mult']" />
13<transform process="createArray" xpath="./cml:list[@cmlx:templateRef='chargefragment']" from=".//cml:scalar[@dictRef='g:fragment']" />
14<transform process="pullupSingleton" xpath="./cml:list" />
15<transform process="pullup" xpath=".//cml:list/cml:array" />
16<transform process="delete" xpath=".//cml:list[@cmlx:templateRef='charge']" />
17<transform process="delete" xpath=".//cml:list[count(*)=0]" />
18<transform process="delete" xpath=".//cml:list[count(*)=0]" />