/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2010,2011,2012,2013,2014, by the GROMACS development team, led by
+ * Copyright (c) 2010,2011,2012,2013,2014,2015, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
GMX_RELEASE_ASSERT(rowCount > 0, "Invalid number of rows");
GMX_RELEASE_ASSERT(!isAllocated(),
"Cannot change row count after data has been allocated");
- GMX_RELEASE_ASSERT(bUniformX_ || rowCount_ == 0
+ GMX_RELEASE_ASSERT(bUniformX_ || xvalue_.empty()
|| rowCount == static_cast<int>(xvalue_.size()),
"X axis set with setXAxisValue() does not match the row count");
xvalue_.resize(rowCount);
</pre>
</xsl:template>
+<xsl:template match="OutputFiles/File/XvgLegend/String[@Name='XvgLegend']">
+ <pre>
+ <xsl:value-of select="substring(.,2)"/>
+ </pre>
+</xsl:template>
+
+<xsl:template match="OutputFiles/File/XvgData">
+ <xsl:choose>
+ <xsl:when test="*">
+ <table>
+ <xsl:apply-templates />
+ </table>
+ </xsl:when>
+ <xsl:otherwise>Data omitted</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="OutputFiles/File/XvgData/Sequence">
+ <tr>
+ <xsl:apply-templates select="Real"/>
+ </tr>
+</xsl:template>
+
+<xsl:template match="OutputFiles/File/XvgData/Sequence/Real">
+ <td><xsl:value-of select="."/></td>
+</xsl:template>
+
<xsl:template match="InteractiveSession">
<pre>
<xsl:for-each select="*">
</pre>
</xsl:template>
+<xsl:template match="OutputFiles/File/XvgLegend/String[@Name='XvgLegend']">
+ <pre>
+ <xsl:value-of select="substring(.,2)"/>
+ </pre>
+</xsl:template>
+
+<xsl:template match="OutputFiles/File/XvgData">
+ <xsl:choose>
+ <xsl:when test="*">
+ <table>
+ <xsl:apply-templates />
+ </table>
+ </xsl:when>
+ <xsl:otherwise>Data omitted</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="OutputFiles/File/XvgData/Sequence">
+ <tr>
+ <xsl:apply-templates select="Real"/>
+ </tr>
+</xsl:template>
+
+<xsl:template match="OutputFiles/File/XvgData/Sequence/Real">
+ <td><xsl:value-of select="."/></td>
+</xsl:template>
+
<xsl:template match="InteractiveSession">
<pre>
<xsl:for-each select="*">
}
{
AnalysisDataAverageModulePointer avem(new AnalysisDataAverageModule);
- int prevResind = -1;
- int row = 0;
+ int nextRow = 0;
for (int i = 0; i < surfaceSel_.posCount(); ++i)
{
- const int atomIndex = surfaceSel_.position(i).atomIndices()[0];
- const int residueIndex = atoms.atom[atomIndex].resind;
- if (residueIndex != prevResind)
+ const int residueGroup = surfaceSel_.position(i).mappedId();
+ if (residueGroup >= nextRow)
{
- avem->setXAxisValue(row, atoms.resinfo[residueIndex].nr);
- prevResind = residueIndex;
- ++row;
+ GMX_ASSERT(residueGroup == nextRow,
+ "Inconsistent (non-uniformly increasing) residue grouping");
+ const int atomIndex = surfaceSel_.position(i).atomIndices()[0];
+ const int residueIndex = atoms.atom[atomIndex].resind;
+ avem->setXAxisValue(nextRow, atoms.resinfo[residueIndex].nr);
+ ++nextRow;
}
}
residueArea_.addModule(avem);
</AnalysisData>
</OutputData>
<OutputFiles Name="Files">
- <File Name="-o"/>
- <File Name="-or"/>
- <File Name="-oa"/>
- <File Name="-tv"/>
+ <File Name="-o">
+ <XvgLegend Name="Legend">
+ <String Name="XvgLegend"><![CDATA[
+title "Solvent Accessible Surface"
+xaxis label "Time (ps)"
+yaxis label "Area (nm\S2\N)"
+TYPE xy
+s0 legend "Total"
+s1 legend "name N CA C O H"
+]]></String>
+ </XvgLegend>
+ <XvgData Name="Data"/>
+ </File>
+ <File Name="-or">
+ <XvgLegend Name="Legend">
+ <String Name="XvgLegend"><![CDATA[
+title "Area per residue over the trajectory"
+xaxis label "Residue"
+yaxis label "Area (nm\S2\N)"
+TYPE xy
+s0 legend "Average (nm\S2\N)"
+s1 legend "Standard deviation (nm\S2\N)"
+]]></String>
+ </XvgLegend>
+ <XvgData Name="Data">
+ <Sequence Name="Row0">
+ <Int Name="Length">5</Int>
+ <Real>1</Real>
+ <Real>2.078</Real>
+ <Real>0.000</Real>
+ <Real>0.235</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row1">
+ <Int Name="Length">5</Int>
+ <Real>2</Real>
+ <Real>1.569</Real>
+ <Real>0.000</Real>
+ <Real>0.307</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row2">
+ <Int Name="Length">5</Int>
+ <Real>3</Real>
+ <Real>0.955</Real>
+ <Real>0.000</Real>
+ <Real>0.258</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row3">
+ <Int Name="Length">5</Int>
+ <Real>4</Real>
+ <Real>0.394</Real>
+ <Real>0.000</Real>
+ <Real>0.075</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row4">
+ <Int Name="Length">5</Int>
+ <Real>5</Real>
+ <Real>1.979</Real>
+ <Real>0.000</Real>
+ <Real>0.166</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row5">
+ <Int Name="Length">5</Int>
+ <Real>6</Real>
+ <Real>0.781</Real>
+ <Real>0.000</Real>
+ <Real>0.060</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row6">
+ <Int Name="Length">5</Int>
+ <Real>7</Real>
+ <Real>0.818</Real>
+ <Real>0.000</Real>
+ <Real>0.100</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row7">
+ <Int Name="Length">5</Int>
+ <Real>8</Real>
+ <Real>1.213</Real>
+ <Real>0.000</Real>
+ <Real>0.201</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row8">
+ <Int Name="Length">5</Int>
+ <Real>9</Real>
+ <Real>0.855</Real>
+ <Real>0.000</Real>
+ <Real>0.301</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row9">
+ <Int Name="Length">5</Int>
+ <Real>10</Real>
+ <Real>1.239</Real>
+ <Real>0.000</Real>
+ <Real>0.515</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ </XvgData>
+ </File>
+ <File Name="-oa">
+ <XvgLegend Name="Legend">
+ <String Name="XvgLegend"><![CDATA[
+title "Area per atom over the trajectory"
+xaxis label "Atom"
+yaxis label "Area (nm\S2\N)"
+TYPE xy
+s0 legend "Average (nm\S2\N)"
+s1 legend "Standard deviation (nm\S2\N)"
+]]></String>
+ </XvgLegend>
+ <XvgData Name="Data">
+ <Sequence Name="Row0">
+ <Int Name="Length">5</Int>
+ <Real>1</Real>
+ <Real>0.034</Real>
+ <Real>0.000</Real>
+ <Real>0.034</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row1">
+ <Int Name="Length">5</Int>
+ <Real>2</Real>
+ <Real>0.212</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row2">
+ <Int Name="Length">5</Int>
+ <Real>3</Real>
+ <Real>0.239</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row3">
+ <Int Name="Length">5</Int>
+ <Real>4</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row4">
+ <Int Name="Length">5</Int>
+ <Real>5</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row5">
+ <Int Name="Length">5</Int>
+ <Real>6</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row6">
+ <Int Name="Length">5</Int>
+ <Real>7</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row7">
+ <Int Name="Length">5</Int>
+ <Real>8</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row8">
+ <Int Name="Length">5</Int>
+ <Real>9</Real>
+ <Real>0.080</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row9">
+ <Int Name="Length">5</Int>
+ <Real>10</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row10">
+ <Int Name="Length">5</Int>
+ <Real>11</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row11">
+ <Int Name="Length">5</Int>
+ <Real>12</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row12">
+ <Int Name="Length">5</Int>
+ <Real>13</Real>
+ <Real>0.038</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row13">
+ <Int Name="Length">5</Int>
+ <Real>14</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row14">
+ <Int Name="Length">5</Int>
+ <Real>15</Real>
+ <Real>0.080</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row15">
+ <Int Name="Length">5</Int>
+ <Real>16</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row16">
+ <Int Name="Length">5</Int>
+ <Real>17</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row17">
+ <Int Name="Length">5</Int>
+ <Real>18</Real>
+ <Real>0.080</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row18">
+ <Int Name="Length">5</Int>
+ <Real>19</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row19">
+ <Int Name="Length">5</Int>
+ <Real>20</Real>
+ <Real>0.053</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row20">
+ <Int Name="Length">5</Int>
+ <Real>21</Real>
+ <Real>0.239</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row21">
+ <Int Name="Length">5</Int>
+ <Real>22</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row22">
+ <Int Name="Length">5</Int>
+ <Real>23</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row23">
+ <Int Name="Length">5</Int>
+ <Real>24</Real>
+ <Real>0.201</Real>
+ <Real>0.000</Real>
+ <Real>0.201</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row24">
+ <Int Name="Length">5</Int>
+ <Real>25</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row25">
+ <Int Name="Length">5</Int>
+ <Real>26</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row26">
+ <Int Name="Length">5</Int>
+ <Real>27</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row27">
+ <Int Name="Length">5</Int>
+ <Real>28</Real>
+ <Real>0.027</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row28">
+ <Int Name="Length">5</Int>
+ <Real>29</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row29">
+ <Int Name="Length">5</Int>
+ <Real>30</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row30">
+ <Int Name="Length">5</Int>
+ <Real>31</Real>
+ <Real>0.113</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row31">
+ <Int Name="Length">5</Int>
+ <Real>32</Real>
+ <Real>0.212</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row32">
+ <Int Name="Length">5</Int>
+ <Real>33</Real>
+ <Real>0.053</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row33">
+ <Int Name="Length">5</Int>
+ <Real>34</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row34">
+ <Int Name="Length">5</Int>
+ <Real>35</Real>
+ <Real>0.113</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row35">
+ <Int Name="Length">5</Int>
+ <Real>36</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row36">
+ <Int Name="Length">5</Int>
+ <Real>37</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row37">
+ <Int Name="Length">5</Int>
+ <Real>38</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row38">
+ <Int Name="Length">5</Int>
+ <Real>39</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row39">
+ <Int Name="Length">5</Int>
+ <Real>40</Real>
+ <Real>0.201</Real>
+ <Real>0.000</Real>
+ <Real>0.201</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row40">
+ <Int Name="Length">5</Int>
+ <Real>41</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row41">
+ <Int Name="Length">5</Int>
+ <Real>42</Real>
+ <Real>0.053</Real>
+ <Real>0.000</Real>
+ <Real>0.053</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row42">
+ <Int Name="Length">5</Int>
+ <Real>43</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row43">
+ <Int Name="Length">5</Int>
+ <Real>44</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row44">
+ <Int Name="Length">5</Int>
+ <Real>45</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row45">
+ <Int Name="Length">5</Int>
+ <Real>46</Real>
+ <Real>0.027</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row46">
+ <Int Name="Length">5</Int>
+ <Real>47</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row47">
+ <Int Name="Length">5</Int>
+ <Real>48</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row48">
+ <Int Name="Length">5</Int>
+ <Real>49</Real>
+ <Real>0.038</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row49">
+ <Int Name="Length">5</Int>
+ <Real>50</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row50">
+ <Int Name="Length">5</Int>
+ <Real>51</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row51">
+ <Int Name="Length">5</Int>
+ <Real>52</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row52">
+ <Int Name="Length">5</Int>
+ <Real>53</Real>
+ <Real>0.038</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row53">
+ <Int Name="Length">5</Int>
+ <Real>54</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row54">
+ <Int Name="Length">5</Int>
+ <Real>55</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row55">
+ <Int Name="Length">5</Int>
+ <Real>56</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row56">
+ <Int Name="Length">5</Int>
+ <Real>57</Real>
+ <Real>0.038</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row57">
+ <Int Name="Length">5</Int>
+ <Real>58</Real>
+ <Real>0.212</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row58">
+ <Int Name="Length">5</Int>
+ <Real>59</Real>
+ <Real>0.038</Real>
+ <Real>0.000</Real>
+ <Real>0.038</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row59">
+ <Int Name="Length">5</Int>
+ <Real>60</Real>
+ <Real>0.167</Real>
+ <Real>0.000</Real>
+ <Real>0.167</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row60">
+ <Int Name="Length">5</Int>
+ <Real>61</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row61">
+ <Int Name="Length">5</Int>
+ <Real>62</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row62">
+ <Int Name="Length">5</Int>
+ <Real>63</Real>
+ <Real>0.075</Real>
+ <Real>0.000</Real>
+ <Real>0.075</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row63">
+ <Int Name="Length">5</Int>
+ <Real>64</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row64">
+ <Int Name="Length">5</Int>
+ <Real>65</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row65">
+ <Int Name="Length">5</Int>
+ <Real>66</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row66">
+ <Int Name="Length">5</Int>
+ <Real>67</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row67">
+ <Int Name="Length">5</Int>
+ <Real>68</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row68">
+ <Int Name="Length">5</Int>
+ <Real>69</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row69">
+ <Int Name="Length">5</Int>
+ <Real>70</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row70">
+ <Int Name="Length">5</Int>
+ <Real>71</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row71">
+ <Int Name="Length">5</Int>
+ <Real>72</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row72">
+ <Int Name="Length">5</Int>
+ <Real>73</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row73">
+ <Int Name="Length">5</Int>
+ <Real>74</Real>
+ <Real>0.027</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row74">
+ <Int Name="Length">5</Int>
+ <Real>75</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row75">
+ <Int Name="Length">5</Int>
+ <Real>76</Real>
+ <Real>0.027</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row76">
+ <Int Name="Length">5</Int>
+ <Real>77</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row77">
+ <Int Name="Length">5</Int>
+ <Real>78</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row78">
+ <Int Name="Length">5</Int>
+ <Real>79</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row79">
+ <Int Name="Length">5</Int>
+ <Real>80</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row80">
+ <Int Name="Length">5</Int>
+ <Real>81</Real>
+ <Real>0.034</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row81">
+ <Int Name="Length">5</Int>
+ <Real>82</Real>
+ <Real>0.080</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row82">
+ <Int Name="Length">5</Int>
+ <Real>83</Real>
+ <Real>0.075</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row83">
+ <Int Name="Length">5</Int>
+ <Real>84</Real>
+ <Real>0.034</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row84">
+ <Int Name="Length">5</Int>
+ <Real>85</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row85">
+ <Int Name="Length">5</Int>
+ <Real>86</Real>
+ <Real>0.239</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row86">
+ <Int Name="Length">5</Int>
+ <Real>87</Real>
+ <Real>0.103</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row87">
+ <Int Name="Length">5</Int>
+ <Real>88</Real>
+ <Real>0.212</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row88">
+ <Int Name="Length">5</Int>
+ <Real>89</Real>
+ <Real>0.212</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row89">
+ <Int Name="Length">5</Int>
+ <Real>90</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row90">
+ <Int Name="Length">5</Int>
+ <Real>91</Real>
+ <Real>0.033</Real>
+ <Real>0.000</Real>
+ <Real>0.033</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row91">
+ <Int Name="Length">5</Int>
+ <Real>92</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row92">
+ <Int Name="Length">5</Int>
+ <Real>93</Real>
+ <Real>0.027</Real>
+ <Real>0.000</Real>
+ <Real>0.027</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row93">
+ <Int Name="Length">5</Int>
+ <Real>94</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row94">
+ <Int Name="Length">5</Int>
+ <Real>95</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row95">
+ <Int Name="Length">5</Int>
+ <Real>96</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row96">
+ <Int Name="Length">5</Int>
+ <Real>97</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row97">
+ <Int Name="Length">5</Int>
+ <Real>98</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row98">
+ <Int Name="Length">5</Int>
+ <Real>99</Real>
+ <Real>0.402</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row99">
+ <Int Name="Length">5</Int>
+ <Real>100</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row100">
+ <Int Name="Length">5</Int>
+ <Real>101</Real>
+ <Real>0.033</Real>
+ <Real>0.000</Real>
+ <Real>0.033</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row101">
+ <Int Name="Length">5</Int>
+ <Real>102</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row102">
+ <Int Name="Length">5</Int>
+ <Real>103</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row103">
+ <Int Name="Length">5</Int>
+ <Real>104</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row104">
+ <Int Name="Length">5</Int>
+ <Real>105</Real>
+ <Real>0.080</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row105">
+ <Int Name="Length">5</Int>
+ <Real>106</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row106">
+ <Int Name="Length">5</Int>
+ <Real>107</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row107">
+ <Int Name="Length">5</Int>
+ <Real>108</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row108">
+ <Int Name="Length">5</Int>
+ <Real>109</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row109">
+ <Int Name="Length">5</Int>
+ <Real>110</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row110">
+ <Int Name="Length">5</Int>
+ <Real>111</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row111">
+ <Int Name="Length">5</Int>
+ <Real>112</Real>
+ <Real>0.038</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row112">
+ <Int Name="Length">5</Int>
+ <Real>113</Real>
+ <Real>0.134</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row113">
+ <Int Name="Length">5</Int>
+ <Real>114</Real>
+ <Real>0.201</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row114">
+ <Int Name="Length">5</Int>
+ <Real>115</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row115">
+ <Int Name="Length">5</Int>
+ <Real>116</Real>
+ <Real>0.100</Real>
+ <Real>0.000</Real>
+ <Real>0.100</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row116">
+ <Int Name="Length">5</Int>
+ <Real>117</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row117">
+ <Int Name="Length">5</Int>
+ <Real>118</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row118">
+ <Int Name="Length">5</Int>
+ <Real>119</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row119">
+ <Int Name="Length">5</Int>
+ <Real>120</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row120">
+ <Int Name="Length">5</Int>
+ <Real>121</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row121">
+ <Int Name="Length">5</Int>
+ <Real>122</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row122">
+ <Int Name="Length">5</Int>
+ <Real>123</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row123">
+ <Int Name="Length">5</Int>
+ <Real>124</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row124">
+ <Int Name="Length">5</Int>
+ <Real>125</Real>
+ <Real>0.053</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row125">
+ <Int Name="Length">5</Int>
+ <Real>126</Real>
+ <Real>0.038</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row126">
+ <Int Name="Length">5</Int>
+ <Real>127</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row127">
+ <Int Name="Length">5</Int>
+ <Real>128</Real>
+ <Real>0.053</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row128">
+ <Int Name="Length">5</Int>
+ <Real>129</Real>
+ <Real>0.027</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row129">
+ <Int Name="Length">5</Int>
+ <Real>130</Real>
+ <Real>0.151</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row130">
+ <Int Name="Length">5</Int>
+ <Real>131</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row131">
+ <Int Name="Length">5</Int>
+ <Real>132</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row132">
+ <Int Name="Length">5</Int>
+ <Real>133</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row133">
+ <Int Name="Length">5</Int>
+ <Real>134</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row134">
+ <Int Name="Length">5</Int>
+ <Real>135</Real>
+ <Real>0.201</Real>
+ <Real>0.000</Real>
+ <Real>0.201</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row135">
+ <Int Name="Length">5</Int>
+ <Real>136</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row136">
+ <Int Name="Length">5</Int>
+ <Real>137</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row137">
+ <Int Name="Length">5</Int>
+ <Real>138</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row138">
+ <Int Name="Length">5</Int>
+ <Real>139</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row139">
+ <Int Name="Length">5</Int>
+ <Real>140</Real>
+ <Real>0.075</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row140">
+ <Int Name="Length">5</Int>
+ <Real>141</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row141">
+ <Int Name="Length">5</Int>
+ <Real>142</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row142">
+ <Int Name="Length">5</Int>
+ <Real>143</Real>
+ <Real>0.027</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row143">
+ <Int Name="Length">5</Int>
+ <Real>144</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row144">
+ <Int Name="Length">5</Int>
+ <Real>145</Real>
+ <Real>0.301</Real>
+ <Real>0.000</Real>
+ <Real>0.301</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row145">
+ <Int Name="Length">5</Int>
+ <Real>146</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row146">
+ <Int Name="Length">5</Int>
+ <Real>147</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row147">
+ <Int Name="Length">5</Int>
+ <Real>148</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row148">
+ <Int Name="Length">5</Int>
+ <Real>149</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row149">
+ <Int Name="Length">5</Int>
+ <Real>150</Real>
+ <Real>0.113</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row150">
+ <Int Name="Length">5</Int>
+ <Real>151</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row151">
+ <Int Name="Length">5</Int>
+ <Real>152</Real>
+ <Real>0.212</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row152">
+ <Int Name="Length">5</Int>
+ <Real>153</Real>
+ <Real>0.053</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row153">
+ <Int Name="Length">5</Int>
+ <Real>154</Real>
+ <Real>0.113</Real>
+ <Real>0.000</Real>
+ <Real>0.113</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row154">
+ <Int Name="Length">5</Int>
+ <Real>155</Real>
+ <Real>0.402</Real>
+ <Real>0.000</Real>
+ <Real>0.402</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ </XvgData>
+ </File>
+ <File Name="-tv">
+ <XvgLegend Name="Legend">
+ <String Name="XvgLegend"><![CDATA[
+title "Volume and Density"
+xaxis label "Time (ps)"
+yaxis label ""
+TYPE xy
+s0 legend "Volume (nm\S3\N)"
+s1 legend "Density (g/l)"
+]]></String>
+ </XvgLegend>
+ <XvgData Name="Data"/>
+ </File>
</OutputFiles>
</ReferenceData>
--- /dev/null
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+ <String Name="CommandLine">sasa -surface 'resnr 2 4 to 5 8'</String>
+ <OutputData Name="Data">
+ <AnalysisData Name="area">
+ <DataFrame Name="Frame0">
+ <Real Name="X">0</Real>
+ <DataValues>
+ <Int Name="Count">1</Int>
+ <DataValue>
+ <Real Name="Value">8.5078138240304089</Real>
+ </DataValue>
+ </DataValues>
+ </DataFrame>
+ </AnalysisData>
+ <AnalysisData Name="atomarea">
+ <DataFrame Name="Frame0">
+ <Real Name="X">0</Real>
+ <DataValues>
+ <Int Name="Count">66</Int>
+ <DataValue>
+ <Real Name="Value">0.23922246309382034</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.1858252054598363</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.13273228961416877</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.10618583169133503</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.11321514525374221</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.21237166338267005</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.10618583169133503</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.1858252054598363</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.11321514525374221</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.1858252054598363</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.15927874753700255</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.15927874753700255</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.18869190875623704</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.40179713402352024</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.034174637584831476</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.2389181213055038</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.075476763502494812</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.1858252054598363</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.21237166338267005</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.075476763502494812</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.034174637584831476</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.13273228961416877</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.13273228961416877</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.10618583169133503</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.079639373768501276</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.053092915845667513</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.10618583169133503</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.13273228961416877</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.15927874753700255</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.034174637584831476</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.079639373768501276</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.075476763502494812</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.10252391275449443</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.15927874753700255</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.29201103715117133</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.17087318792415737</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.21237166338267005</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.29201103715117133</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.22643029050748442</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.1674154725098001</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.27339710067865181</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.10618583169133503</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.079639373768501276</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.079639373768501276</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.075476763502494812</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.1858252054598363</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.079639373768501276</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.15927874753700255</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.15095352700498962</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.1858252054598363</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.1858252054598363</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.1858252054598363</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.26416867225873186</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.43528022852548026</Real>
+ </DataValue>
+ </DataValues>
+ </DataFrame>
+ </AnalysisData>
+ <AnalysisData Name="resarea">
+ <DataFrame Name="Frame0">
+ <Real Name="X">0</Real>
+ <DataValues>
+ <Int Name="Count">4</Int>
+ <DataValue>
+ <Real Name="Value">2.4896505242140847</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">0.82224315473783116</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">2.7489603307349588</Real>
+ </DataValue>
+ <DataValue>
+ <Real Name="Value">2.4469598143435354</Real>
+ </DataValue>
+ </DataValues>
+ </DataFrame>
+ </AnalysisData>
+ </OutputData>
+ <OutputFiles Name="Files">
+ <File Name="-o">
+ <XvgLegend Name="Legend">
+ <String Name="XvgLegend"><![CDATA[
+title "Solvent Accessible Surface"
+xaxis label "Time (ps)"
+yaxis label "Area (nm\S2\N)"
+TYPE xy
+s0 legend "Total"
+]]></String>
+ </XvgLegend>
+ <XvgData Name="Data"/>
+ </File>
+ <File Name="-or">
+ <XvgLegend Name="Legend">
+ <String Name="XvgLegend"><![CDATA[
+title "Area per residue over the trajectory"
+xaxis label "Residue"
+yaxis label "Area (nm\S2\N)"
+TYPE xy
+s0 legend "Average (nm\S2\N)"
+s1 legend "Standard deviation (nm\S2\N)"
+]]></String>
+ </XvgLegend>
+ <XvgData Name="Data">
+ <Sequence Name="Row0">
+ <Int Name="Length">3</Int>
+ <Real>2</Real>
+ <Real>2.490</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row1">
+ <Int Name="Length">3</Int>
+ <Real>4</Real>
+ <Real>0.822</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row2">
+ <Int Name="Length">3</Int>
+ <Real>5</Real>
+ <Real>2.749</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row3">
+ <Int Name="Length">3</Int>
+ <Real>8</Real>
+ <Real>2.447</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ </XvgData>
+ </File>
+ <File Name="-oa">
+ <XvgLegend Name="Legend">
+ <String Name="XvgLegend"><![CDATA[
+title "Area per atom over the trajectory"
+xaxis label "Atom"
+yaxis label "Area (nm\S2\N)"
+TYPE xy
+s0 legend "Average (nm\S2\N)"
+s1 legend "Standard deviation (nm\S2\N)"
+]]></String>
+ </XvgLegend>
+ <XvgData Name="Data">
+ <Sequence Name="Row0">
+ <Int Name="Length">3</Int>
+ <Real>25</Real>
+ <Real>0.239</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row1">
+ <Int Name="Length">3</Int>
+ <Real>26</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row2">
+ <Int Name="Length">3</Int>
+ <Real>27</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row3">
+ <Int Name="Length">3</Int>
+ <Real>28</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row4">
+ <Int Name="Length">3</Int>
+ <Real>29</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row5">
+ <Int Name="Length">3</Int>
+ <Real>30</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row6">
+ <Int Name="Length">3</Int>
+ <Real>31</Real>
+ <Real>0.113</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row7">
+ <Int Name="Length">3</Int>
+ <Real>32</Real>
+ <Real>0.212</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row8">
+ <Int Name="Length">3</Int>
+ <Real>33</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row9">
+ <Int Name="Length">3</Int>
+ <Real>34</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row10">
+ <Int Name="Length">3</Int>
+ <Real>35</Real>
+ <Real>0.113</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row11">
+ <Int Name="Length">3</Int>
+ <Real>36</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row12">
+ <Int Name="Length">3</Int>
+ <Real>37</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row13">
+ <Int Name="Length">3</Int>
+ <Real>38</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row14">
+ <Int Name="Length">3</Int>
+ <Real>39</Real>
+ <Real>0.189</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row15">
+ <Int Name="Length">3</Int>
+ <Real>40</Real>
+ <Real>0.402</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row16">
+ <Int Name="Length">3</Int>
+ <Real>61</Real>
+ <Real>0.034</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row17">
+ <Int Name="Length">3</Int>
+ <Real>62</Real>
+ <Real>0.239</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row18">
+ <Int Name="Length">3</Int>
+ <Real>63</Real>
+ <Real>0.075</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row19">
+ <Int Name="Length">3</Int>
+ <Real>64</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row20">
+ <Int Name="Length">3</Int>
+ <Real>65</Real>
+ <Real>0.212</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row21">
+ <Int Name="Length">3</Int>
+ <Real>66</Real>
+ <Real>0.075</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row22">
+ <Int Name="Length">3</Int>
+ <Real>67</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row23">
+ <Int Name="Length">3</Int>
+ <Real>68</Real>
+ <Real>0.034</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row24">
+ <Int Name="Length">3</Int>
+ <Real>69</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row25">
+ <Int Name="Length">3</Int>
+ <Real>70</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row26">
+ <Int Name="Length">3</Int>
+ <Real>71</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row27">
+ <Int Name="Length">3</Int>
+ <Real>72</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row28">
+ <Int Name="Length">3</Int>
+ <Real>73</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row29">
+ <Int Name="Length">3</Int>
+ <Real>74</Real>
+ <Real>0.080</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row30">
+ <Int Name="Length">3</Int>
+ <Real>75</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row31">
+ <Int Name="Length">3</Int>
+ <Real>76</Real>
+ <Real>0.053</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row32">
+ <Int Name="Length">3</Int>
+ <Real>77</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row33">
+ <Int Name="Length">3</Int>
+ <Real>78</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row34">
+ <Int Name="Length">3</Int>
+ <Real>79</Real>
+ <Real>0.133</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row35">
+ <Int Name="Length">3</Int>
+ <Real>80</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row36">
+ <Int Name="Length">3</Int>
+ <Real>81</Real>
+ <Real>0.034</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row37">
+ <Int Name="Length">3</Int>
+ <Real>82</Real>
+ <Real>0.080</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row38">
+ <Int Name="Length">3</Int>
+ <Real>83</Real>
+ <Real>0.075</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row39">
+ <Int Name="Length">3</Int>
+ <Real>84</Real>
+ <Real>0.103</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row40">
+ <Int Name="Length">3</Int>
+ <Real>85</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row41">
+ <Int Name="Length">3</Int>
+ <Real>86</Real>
+ <Real>0.292</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row42">
+ <Int Name="Length">3</Int>
+ <Real>87</Real>
+ <Real>0.171</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row43">
+ <Int Name="Length">3</Int>
+ <Real>88</Real>
+ <Real>0.212</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row44">
+ <Int Name="Length">3</Int>
+ <Real>89</Real>
+ <Real>0.292</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row45">
+ <Int Name="Length">3</Int>
+ <Real>90</Real>
+ <Real>0.226</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row46">
+ <Int Name="Length">3</Int>
+ <Real>91</Real>
+ <Real>0.167</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row47">
+ <Int Name="Length">3</Int>
+ <Real>117</Real>
+ <Real>0.273</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row48">
+ <Int Name="Length">3</Int>
+ <Real>118</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row49">
+ <Int Name="Length">3</Int>
+ <Real>119</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row50">
+ <Int Name="Length">3</Int>
+ <Real>120</Real>
+ <Real>0.106</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row51">
+ <Int Name="Length">3</Int>
+ <Real>121</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row52">
+ <Int Name="Length">3</Int>
+ <Real>122</Real>
+ <Real>0.080</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row53">
+ <Int Name="Length">3</Int>
+ <Real>123</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row54">
+ <Int Name="Length">3</Int>
+ <Real>124</Real>
+ <Real>0.000</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row55">
+ <Int Name="Length">3</Int>
+ <Real>125</Real>
+ <Real>0.080</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row56">
+ <Int Name="Length">3</Int>
+ <Real>126</Real>
+ <Real>0.075</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row57">
+ <Int Name="Length">3</Int>
+ <Real>127</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row58">
+ <Int Name="Length">3</Int>
+ <Real>128</Real>
+ <Real>0.080</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row59">
+ <Int Name="Length">3</Int>
+ <Real>129</Real>
+ <Real>0.159</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row60">
+ <Int Name="Length">3</Int>
+ <Real>130</Real>
+ <Real>0.151</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row61">
+ <Int Name="Length">3</Int>
+ <Real>131</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row62">
+ <Int Name="Length">3</Int>
+ <Real>132</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row63">
+ <Int Name="Length">3</Int>
+ <Real>133</Real>
+ <Real>0.186</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row64">
+ <Int Name="Length">3</Int>
+ <Real>134</Real>
+ <Real>0.264</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ <Sequence Name="Row65">
+ <Int Name="Length">3</Int>
+ <Real>135</Real>
+ <Real>0.435</Real>
+ <Real>0.000</Real>
+ </Sequence>
+ </XvgData>
+ </File>
+ </OutputFiles>
+</ReferenceData>
</pre>
</xsl:template>
+<xsl:template match="OutputFiles/File/XvgLegend/String[@Name='XvgLegend']">
+ <pre>
+ <xsl:value-of select="substring(.,2)"/>
+ </pre>
+</xsl:template>
+
+<xsl:template match="OutputFiles/File/XvgData">
+ <xsl:choose>
+ <xsl:when test="*">
+ <table>
+ <xsl:apply-templates />
+ </table>
+ </xsl:when>
+ <xsl:otherwise>Data omitted</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="OutputFiles/File/XvgData/Sequence">
+ <tr>
+ <xsl:apply-templates select="Real"/>
+ </tr>
+</xsl:template>
+
+<xsl:template match="OutputFiles/File/XvgData/Sequence/Real">
+ <td><xsl:value-of select="."/></td>
+</xsl:template>
+
<xsl:template match="InteractiveSession">
<pre>
<xsl:for-each select="*">
* Tests for functionality of the "sasa" trajectory analysis module.
*
* These tests test the basic functionality of the tool itself, but currently
- * the following are missing:
- * - Tests related to -odg output. This would require a full tpr file, and
- * some investigation on what kind of tpr it should be to produce reasonable
- * output.
- * - Tests for the X axes in the area per atom/residue plots. These could be
- * added once better X axes are implemented.
- * - Tests for XVG labels. This is a limitation of the current testing
- * framework.
+ * the tests related to -odg output are missing. This would require a full tpr
+ * file, and some investigation on what kind of tpr it should be to produce
+ * reasonable output.
*
* The actual surface area algorithm is tested separately in surfacearea.cpp.
*
#include "testutils/cmdlinetest.h"
#include "testutils/testasserts.h"
#include "testutils/textblockmatchers.h"
+#include "testutils/xvgtest.h"
#include "moduletest.h"
using gmx::test::CommandLine;
using gmx::test::ExactTextMatch;
using gmx::test::NoTextMatch;
+using gmx::test::XvgMatch;
/********************************************************************
* Tests for gmx::analysismodules::Sasa.
"-output", "name N CA C O H"
};
setTopology("lysozyme.gro");
- setOutputFile("-o", ".xvg", NoTextMatch());
- setOutputFile("-or", ".xvg", NoTextMatch());
- setOutputFile("-oa", ".xvg", NoTextMatch());
- setOutputFile("-tv", ".xvg", NoTextMatch());
+ setOutputFile("-o", ".xvg", XvgMatch().testData(false));
+ setOutputFile("-or", ".xvg", XvgMatch());
+ setOutputFile("-oa", ".xvg", XvgMatch());
+ setOutputFile("-tv", ".xvg", XvgMatch().testData(false));
excludeDataset("dgsolv");
setDatasetTolerance("area", gmx::test::ulpTolerance(8));
setDatasetTolerance("volume", gmx::test::ulpTolerance(8));
runTest(CommandLine(cmdline));
}
+TEST_F(SasaModuleTest, HandlesSelectedResidues)
+{
+ const char *const cmdline[] = {
+ "sasa",
+ "-surface", "resnr 2 4 to 5 8"
+ };
+ setTopology("lysozyme.gro");
+ setOutputFile("-o", ".xvg", XvgMatch().testData(false));
+ setOutputFile("-or", ".xvg", XvgMatch());
+ setOutputFile("-oa", ".xvg", XvgMatch());
+ excludeDataset("dgsolv");
+ excludeDataset("volume");
+ setDatasetTolerance("area", gmx::test::ulpTolerance(8));
+ runTest(CommandLine(cmdline));
+}
+
TEST_F(SasaModuleTest, WritesConnollySurfaceWithSolute)
{
const char *const cmdline[] = {
return endsWith(str.c_str(), suffix);
}
+/*! \brief
+ * Tests whether a string contains another as a substring.
+ *
+ * \param[in] str String to process.
+ * \param[in] substr Substring to find.
+ * \returns true if \p str contains \p substr.
+ *
+ * Does not throw.
+ */
+static inline bool contains(const std::string &str, const char *substr)
+{
+ return str.find(substr) != std::string::npos;
+}
+
/*!\brief Returns number of space-separated words in zero-terminated char ptr
*
* \param s Character pointer to zero-terminated, which will not be changed.
</pre>
</xsl:template>
+<xsl:template match="OutputFiles/File/XvgLegend/String[@Name='XvgLegend']">
+ <pre>
+ <xsl:value-of select="substring(.,2)"/>
+ </pre>
+</xsl:template>
+
+<xsl:template match="OutputFiles/File/XvgData">
+ <xsl:choose>
+ <xsl:when test="*">
+ <table>
+ <xsl:apply-templates />
+ </table>
+ </xsl:when>
+ <xsl:otherwise>Data omitted</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="OutputFiles/File/XvgData/Sequence">
+ <tr>
+ <xsl:apply-templates select="Real"/>
+ </tr>
+</xsl:template>
+
+<xsl:template match="OutputFiles/File/XvgData/Sequence/Real">
+ <td><xsl:value-of select="."/></td>
+</xsl:template>
+
<xsl:template match="InteractiveSession">
<pre>
<xsl:for-each select="*">
#include <gtest/gtest.h>
#include "gromacs/utility/basedefinitions.h"
+#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/stringutil.h"
#include "testutils/refdata-impl.h"
std::string value_;
};
+//! Helper function to parse a floating-point value.
+// TODO: Move this into src/gromacs/utility/, and consolidate with similar code
+// elsewhere.
+double convertDouble(const std::string &value)
+{
+ char *endptr;
+ double convertedValue = std::strtod(value.c_str(), &endptr);
+ // TODO: Check for overflow
+ if (*endptr != '\0')
+ {
+ GMX_THROW(InvalidInputError("Invalid floating-point value: " + value));
+ }
+ return convertedValue;
+}
+
+//! Helper function to parse a floating-point reference data value.
+double convertDoubleReferenceValue(const std::string &value)
+{
+ try
+ {
+ return convertDouble(value);
+ }
+ catch (const InvalidInputError &ex)
+ {
+ GMX_THROW_WRAPPER_TESTEXCEPTION(ex);
+ }
+}
+
template <typename FloatType>
class FloatingPointChecker : public IReferenceDataEntryChecker
{
virtual ::testing::AssertionResult
checkEntry(const ReferenceDataEntry &entry, const std::string &fullId) const
{
- char *endptr;
- FloatType refValue = static_cast<FloatType>(std::strtod(entry.value().c_str(), &endptr));
- if (*endptr != '\0')
- {
- GMX_THROW(TestException("Invalid floating-point reference value: " + entry.value()));
- }
+ FloatType refValue = static_cast<FloatType>(convertDoubleReferenceValue(entry.value()));
FloatingPointDifference diff(refValue, value_);
if (tolerance_.isWithin(diff))
{
FloatingPointTolerance tolerance_;
};
+template <typename FloatType>
+class FloatingPointFromStringChecker : public IReferenceDataEntryChecker
+{
+ public:
+ FloatingPointFromStringChecker(
+ const std::string &value, const FloatingPointTolerance &tolerance)
+ : value_(value), tolerance_(tolerance)
+ {
+ }
+
+ virtual void fillEntry(ReferenceDataEntry *entry) const
+ {
+ entry->setValue(value_);
+ }
+ virtual ::testing::AssertionResult
+ checkEntry(const ReferenceDataEntry &entry, const std::string &fullId) const
+ {
+ FloatType value = static_cast<FloatType>(convertDouble(value_));
+ FloatType refValue = static_cast<FloatType>(convertDoubleReferenceValue(entry.value()));
+ FloatingPointDifference diff(refValue, value);
+ if (tolerance_.isWithin(diff))
+ {
+ return ::testing::AssertionSuccess();
+ }
+ return ::testing::AssertionFailure()
+ << " In item: " << fullId << std::endl
+ << " Actual: " << value << std::endl
+ << " Reference: " << entry.value() << std::endl
+ << "Difference: " << diff.toString() << std::endl
+ << " Tolerance: " << tolerance_.toString(diff);
+ }
+
+ private:
+ std::string value_;
+ FloatingPointTolerance tolerance_;
+};
+
} // namespace test
} // namespace gmx
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/path.h"
+#include "gromacs/utility/real.h"
#include "gromacs/utility/stringutil.h"
#include "testutils/refdata-checkers.h"
}
+void TestReferenceChecker::checkRealFromString(const std::string &value, const char *id)
+{
+ FloatingPointFromStringChecker<real> checker(value, impl_->defaultTolerance_);
+ EXPECT_PLAIN(impl_->processItem(Impl::cRealNodeName, id, checker));
+}
+
+
void TestReferenceChecker::checkVector(const int value[3], const char *id)
{
TestReferenceChecker compound(checkCompound(Impl::cVectorType, id));
void checkVector(const float value[3], const char *id);
//! Check a vector of three double-precision floating point values.
void checkVector(const double value[3], const char *id);
+ //! Check a single floating-point value from a string.
+ void checkRealFromString(const std::string &value, const char *id);
/*! \name Overloaded versions of simple checker methods
*
XvgMatchSettings settings_;
};
+//! Helper function to identify which @ lines in xvg files should be tested.
+bool isRelevantXvgCommand(const std::string &line)
+{
+ return contains(line, " title ")
+ || contains(line, " subtitle ")
+ || contains(line, " label ")
+ || contains(line, "@TYPE ")
+ || contains(line, " legend \"");
+}
+
+//! Helper function to check a single xvg value in a sequence.
+void checkXvgDataPoint(TestReferenceChecker *checker, const std::string &value)
+{
+ checker->checkRealFromString(value, NULL);
+}
+
} // namespace
void checkXvgFile(TextInputStream *input,
TestReferenceChecker *checker,
const XvgMatchSettings &settings)
{
+ TestReferenceChecker legendChecker(checker->checkCompound("XvgLegend", "Legend"));
TestReferenceChecker dataChecker(checker->checkCompound("XvgData", "Data"));
dataChecker.setDefaultTolerance(settings.tolerance);
+ std::string legendText;
+ int dataRowCount = 0;
std::string line;
- int nrow = 0;
-
while (input->readLine(&line))
{
- if (!((line.find("#") != line.npos) ||
- (line.find("@") != line.npos)))
+ // Ignore comments, as they contain dynamic content, and very little of
+ // that would be useful to test (and in particular, not with every
+ // output file).
+ if (startsWith(line, "#"))
{
- std::vector<std::string> split = splitString(line);
- std::vector<real> row;
-
- for (std::vector<std::string>::iterator si = split.begin();
- (si < split.end()); ++si)
+ continue;
+ }
+ if (startsWith(line, "@"))
+ {
+ if (isRelevantXvgCommand(line))
{
- const char *ptr = si->c_str();
- char *endptr;
- errno = 0;
- double dval = std::strtod(ptr, &endptr);
- if (errno == ERANGE)
- {
- GMX_THROW(InvalidInputError("Invalid value: '" + *si
- + "'; it causes an overflow/underflow"));
- }
- if (*ptr == '\0' || *endptr != '\0')
- {
- GMX_THROW(InvalidInputError("Invalid value: '" + *si
- + "'; expected a number"));
- }
- row.push_back(dval);
+ legendText.append(stripString(line.substr(1)));
+ legendText.append("\n");
}
- std::string buf = formatString("Row%d", nrow++);
- dataChecker.checkSequence(row.begin(), row.end(), buf.c_str());
+ continue;
}
+ if (!settings.testData)
+ {
+ break;
+ }
+ const std::vector<std::string> columns = splitString(line);
+ const std::string id = formatString("Row%d", dataRowCount);
+ dataChecker.checkSequence(columns.begin(), columns.end(), id.c_str(),
+ &checkXvgDataPoint);
+ ++dataRowCount;
+ }
+ if (settings.testData)
+ {
+ dataChecker.checkPresent(false, formatString("Row%d", dataRowCount).c_str());
}
- std::string buf = formatString("Row%d", nrow++);
- dataChecker.checkPresent(false, buf.c_str());
+ legendChecker.checkTextBlock(legendText, "XvgLegend");
}
TextBlockMatcherPointer XvgMatch::createMatcher() const
struct XvgMatchSettings
{
- XvgMatchSettings() : tolerance(defaultRealTolerance()) {}
+ XvgMatchSettings() : tolerance(defaultRealTolerance()), testData(true)
+ {
+ }
FloatingPointTolerance tolerance;
+ bool testData;
};
/*! \brief
* Adds content of xvg file to TestReferenceChecker object.
*
- * A stream of strings is parsed. The columns
- * are analyzed with a relative tolerance provided by the input.
- * Xmgrace formatting is ignored and only multi-column data is
- * understood.
- *
- * \param[in] input Object returning the lines of the file/data
- * one by one.
- * \param[in,out] checker The checker object.
+ * \param[in] input Stream that provides the xvg content.
+ * \param[in,out] checker Checker to use.
* \param[in] settings Settings to use for matching.
+ *
+ * Parses an xvg file from the input stream, and checks the contents against
+ * reference data. \p settings can be used to customize the matching.
+ * Only a single data set is supported (but multiple columns work).
+ * A subset of xmgrace formatting is also checked; static content that is
+ * nearly always the same is skipped.
+ *
+ * \see XvgMatch
*/
void checkXvgFile(TextInputStream *input,
TestReferenceChecker *checker,
settings_.tolerance = tolerance;
return *this;
}
+ /*! \brief
+ * Sets whether the actual data is checked.
+ *
+ * If set to `false`, only the legends are checked. Use this if the
+ * data is already tested using different means.
+ */
+ XvgMatch &testData(bool test)
+ {
+ settings_.testData = test;
+ return *this;
+ }
virtual TextBlockMatcherPointer createMatcher() const;