residue.pointer

Implementation level
Type Status
CML extraction template image1
HTML5 representation image2
Template attributes
Attribute Value
source Amber topology residue pointer section
id residue.pointer
name Amber topology residue pointer section
pattern \s*%FLAG\sRESIDUE_POINTER.*
endPattern .*[0-9]\s*$%.*
endPattern2 ~
endOffset 1
xml:base sections/residue.pointer.xml
Input
%FLAG RESIDUE_POINTER
%FORMAT(10I8)
       1       2      84      87      90      93      96      99     102     105
     108     111     114     117     120     123     126     129     132     135
     138     141     144     147     150     153     156     159     162     165
     168     171     174     177     180     183     186     189     192     195
     198     201     204     207     210     213     216     219     222     225
     228     231     234     237     240     243     246     249     252     255
     258     261     264     267     270     273     276     279     282     285
     288     291     294     297     300     303     306     309     312     315
    7548    7551    7554    7557    7560    7563    7566    7569    7572    7575
    7578    7581    7584    7587    7590    7593    7596    7599    7602    7605
    7608    7611    7614    7617    7620    7623    7626
%FLAG BOND_FORCE_CONSTANT
Output text
<comment class="example.output" id="residue.pointer">
         <module cmlx:templateRef="residue.pointer">
            <array dataType="xsd:integer" dictRef="am:residue.pointer" size="2517">1 2 84 87 90 93 96 99 102 105 108 111 114 117 120 123 126 129 132 135 138 141 144 147 150 153 156 159 7584 7587 7590 7593 7596 7599 7602 7605 7608 7611 7614 7617 7620 7623 7626</array>
            <scalar dictRef="residue.count">3</scalar>
            <scalar dictRef="residue.atom.index">84</scalar>
         </module>
    </comment>
Template definition
<record repeat="2" />
<record repeat="*">{1_20I,am:residue.pointer}</record>
<transform process="joinArrays" xpath=".//cml:array" />
<transform process="pullup" xpath=".//cml:array" />
<transform process="delete" xpath=".//cml:list" />
<transform process="addChild" xpath="." elementName="cml:scalar" dictRef="residue.count" />
<transform process="setValue" xpath=".//cml:scalar[@dictRef='residue.count']" value="$number(count(tokenize(replace(//cml:array [@dictRef='am:residue']/text(), '(\|HOH|\|WAT|\|H20|\|TIP|\|SOL|\|Cl[A-Za-z\+\-]*|\|CIO|\|Cs\+|\|IB|\|K[A-Za-z\+\-]*|\|Li\+|\|MG[A-Za-z\+\-]*|\|Na\+|\|Rb\+|\|CS|\|RB|\|NA|\|F|\|CL)', ''), '\|')) + 1)" />
<transform process="addChild" xpath="." elementName="cml:scalar" dictRef="residue.atom.index" />
<transform process="setValue" xpath="//cml:scalar[@dictRef='residue.atom.index']" value="$number(subsequence(tokenize(//cml:array[@dictRef='am:residue.pointer']/text(), '\s+'), //cml:scalar[@dictRef='residue.count'], 1))" />
<transform process="setValue" xpath="//cml:scalar[@dictRef='residue.atom.index' and not(exists(text()))]" value="9999999999" />