Repository 'mdanalysis_distance'
hg clone https://toolshed.g2.bx.psu.edu/repos/chemteam/mdanalysis_distance

Changeset 0:c33b972fe040 (2018-10-08)
Next changeset 1:2b1434ec8c7e (2018-12-20)
Commit message:
planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit c32fe331f438df7760084b27bafad9f78f01edde
added:
angle.py
dihedrals.py
distance.py
distance.xml
macros.xml
rdf.py
test-data/Angle_Analysis_Plot.png
test-data/Angle_Analysis_raw_data.csv
test-data/Dihedral_Analysis_Plot.png
test-data/Dihedral_analysis_raw_data.csv
test-data/Distance_Analysis_Plot.png
test-data/Distance_Analysis_raw_data.csv
test-data/RDF_Analysis_Plot.png
test-data/RDF_raw_data.csv
test-data/Ramachandran_Plot.png
test-data/test.dcd
test-data/test.pdb
b
diff -r 000000000000 -r c33b972fe040 angle.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/angle.py Mon Oct 08 13:16:12 2018 -0400
[
@@ -0,0 +1,72 @@
+#!/usr/bin/env python
+
+import argparse
+import csv
+import sys
+
+import MDAnalysis as mda
+
+import matplotlib
+import matplotlib.pyplot as plt
+
+import numpy as np
+from numpy.linalg import norm
+
+matplotlib.use('Agg')
+
+
+def parse_command_line(argv):
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--idcd', help='input dcd')
+    parser.add_argument('--ipdb', help='input pdb')
+    parser.add_argument('--isegid1', help='segid 1')
+    parser.add_argument('--iresid1', help='resid 1')
+    parser.add_argument('--iname1', help='name 1')
+    parser.add_argument('--isegid2', help='segid 2')
+    parser.add_argument('--iresid2', help='resid 2')
+    parser.add_argument('--iname2', help='name 2')
+    parser.add_argument('--isegid3', help='segid 3')
+    parser.add_argument('--iresid3', help='resid 3')
+    parser.add_argument('--iname3', help='name 3')
+    parser.add_argument('--output', help='output')
+    parser.add_argument('--oangle_plot', help='angle plot')
+    return parser.parse_args()
+
+
+args = parse_command_line(sys.argv)
+
+atom1 = "(segid %s and resid %s and name %s)" % \
+    (args.isegid1, args.iresid1, args.iname1)
+atom2 = "(segid %s and resid %s and name %s)" % \
+    (args.isegid2, args.iresid2, args.iname2)
+atom3 = "(segid %s and resid %s and name %s)" % \
+    (args.isegid3, args.iresid3, args.iname3)
+
+
+def theta(u):
+    A = u.select_atoms(atom1).center_of_geometry()
+    B = u.select_atoms(atom2).center_of_geometry()
+    C = u.select_atoms(atom3).center_of_geometry()
+    BA = A - B
+    BC = C - B
+    theta = np.arccos(np.dot(BA, BC)/(norm(BA)*norm(BC)))
+    return np.rad2deg(theta)
+
+
+u = mda.Universe(args.ipdb, args.idcd, topology_format="PDB", format="DCD")
+data = np.array([(u.trajectory.frame, theta(u)) for ts in u.trajectory])
+frame, theta = data.T
+
+with open(args.output, 'w') as f:
+    writer = csv.writer(f, delimiter='\t')
+    writer.writerows(zip(frame, theta))
+
+with open(args.output) as f:
+    g = [xtmp.strip() for xtmp in f]
+    data = [tuple(map(float, xtmp.split())) for xtmp in g[0:]]
+    time = [xtmp[0] for xtmp in data]
+    angle = [xtmp[1] for xtmp in data]
+    plt.plot(time, angle)
+    plt.xlabel('Frame No.')
+    plt.ylabel('Angle (degrees)')
+    plt.savefig(args.oangle_plot, format='png')
b
diff -r 000000000000 -r c33b972fe040 dihedrals.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dihedrals.py Mon Oct 08 13:16:12 2018 -0400
[
@@ -0,0 +1,78 @@
+#!/usr/bin/env python
+
+import argparse
+import csv
+import sys
+
+import MDAnalysis as mda
+from MDAnalysis.lib.distances import calc_dihedrals
+
+import matplotlib
+import matplotlib.pyplot as plt
+
+import numpy as np
+
+matplotlib.use('Agg')
+
+
+def parse_command_line(argv):
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--idcd', help='input dcd')
+    parser.add_argument('--ipdb', help='input pdb')
+    parser.add_argument('--isegid1', help='segid 1')
+    parser.add_argument('--iresid1', help='resid 1')
+    parser.add_argument('--iname1', help='name 1')
+    parser.add_argument('--isegid2', help='segid 2')
+    parser.add_argument('--iresid2', help='resid 2')
+    parser.add_argument('--iname2', help='name 2')
+    parser.add_argument('--isegid3', help='segid 3')
+    parser.add_argument('--iresid3', help='resid 3')
+    parser.add_argument('--iname3', help='name 3')
+    parser.add_argument('--isegid4', help='segid 4')
+    parser.add_argument('--iresid4', help='resid 4')
+    parser.add_argument('--iname4', help='name 4')
+    parser.add_argument('--output', help='output')
+    parser.add_argument('--odihedral_plot', help='dihedral plot')
+    return parser.parse_args()
+
+
+args = parse_command_line(sys.argv)
+
+atom1 = "(segid %s and resid %s and name %s)" % \
+    (args.isegid1, args.iresid1, args.iname1)
+atom2 = "(segid %s and resid %s and name %s)" % \
+    (args.isegid2, args.iresid2, args.iname2)
+atom3 = "(segid %s and resid %s and name %s)" % \
+    (args.isegid3, args.iresid3, args.iname3)
+atom4 = "(segid %s and resid %s and name %s)" % \
+    (args.isegid4, args.iresid4, args.iname4)
+
+
+def psi(u):
+    A = u.select_atoms(atom1).positions
+    B = u.select_atoms(atom2).positions
+    C = u.select_atoms(atom3).positions
+    D = u.select_atoms(atom4).positions
+    psi = calc_dihedrals(A, B, C, D)
+    return np.rad2deg(psi)
+
+
+u = mda.Universe(args.ipdb, args.idcd, topology_format="PDB", format="DCD")
+data = np.array([(u.trajectory.frame, psi(u)) for ts in u.trajectory])
+frame, psi = data.T
+
+zip(frame, psi)
+
+with open(args.output, 'w') as f:
+    writer = csv.writer(f, delimiter='\t')
+    writer.writerows(zip(frame, psi))
+
+with open(args.output) as f:
+    g = [xtmp.strip() for xtmp in f]
+    data = [tuple(map(float, xtmp.split())) for xtmp in g[0:]]
+    time = [xtmp[0] for xtmp in data]
+    dihedral = [xtmp[1] for xtmp in data]
+    plt.plot(time, dihedral)
+    plt.xlabel('Frame No.')
+    plt.ylabel('Dihedral (degrees)')
+    plt.savefig(args.odihedral_plot, format='png')
b
diff -r 000000000000 -r c33b972fe040 distance.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/distance.py Mon Oct 08 13:16:12 2018 -0400
[
@@ -0,0 +1,57 @@
+#!/usr/bin/env python
+
+import argparse
+import sys
+
+import MDAnalysis as mda
+
+import matplotlib
+import matplotlib.pyplot as plt
+
+import numpy as np
+
+matplotlib.use('Agg')
+
+
+def parse_command_line(argv):
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--idcd', help='input dcd')
+    parser.add_argument('--ipdb', help='input pdb')
+    parser.add_argument('--isegid1', help='segid 1')
+    parser.add_argument('--iresid1', help='resid 1')
+    parser.add_argument('--iname1', help='name 1')
+    parser.add_argument('--isegid2', help='segid 2')
+    parser.add_argument('--iresid2', help='resid 2')
+    parser.add_argument('--iname2', help='name 2')
+    parser.add_argument('--output', help='output')
+    parser.add_argument('--odistance_plot', help='odistance plot')
+    return parser.parse_args()
+
+
+args = parse_command_line(sys.argv)
+
+atom1 = "(segid %s and resid %s and name %s)" % \
+    (args.isegid1, args.iresid1, args.iname1)
+atom2 = "(segid %s and resid %s and name %s)" % \
+    (args.isegid2, args.iresid2, args.iname2)
+
+u = mda.Universe(args.ipdb, args.idcd, topology_format="PDB", format="DCD")
+x = u.select_atoms(atom1)
+y = u.select_atoms(atom2)
+
+with open(args.output, 'w') as f:
+    for t in u.trajectory:
+        r = x.positions - y.positions
+        d = np.linalg.norm(r)
+        f.write(str(t.frame) + '\t ')
+        f.write(str(d) + '\n')
+
+with open(args.output) as f:
+    g = [xtmp.strip() for xtmp in f]
+    data = [tuple(map(float, xtmp.split())) for xtmp in g[0:]]
+    time = [xtmp[0] for xtmp in data]
+    distance = [xtmp[1] for xtmp in data]
+    plt.plot(time, distance)
+    plt.xlabel('Frame No.')
+    plt.ylabel('Distance ($\AA$)')
+    plt.savefig(args.odistance_plot, format='png')
b
diff -r 000000000000 -r c33b972fe040 distance.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/distance.xml Mon Oct 08 13:16:12 2018 -0400
[
@@ -0,0 +1,82 @@
+<tool id="mdanalysis_distance" name="Distance Analysis" version="@VERSION@">
+    <description>Time series using MDAnalysis</description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>   
+    <expand macro="requirements" />
+    <command detect_errors="exit_code">
+<![CDATA[
+     python '$__tool_directory__/distance.py' 
+        --idcd '$dcdin' 
+        --ipdb '$pdbin'
+        --isegid1 '$segid1' 
+        --iresid1 '$resid1' 
+        --iname1 '$name1'
+        --isegid2 '$segid2'
+        --iresid2 '$resid2' 
+        --iname2 '$name2'
+        --output '$output'
+        --odistance_plot '$distance_plot'
+    2>&1
+]]></command>
+    <inputs>
+        <expand macro="analysis_inputs"/>
+        <param name="segid1"  type="text" value="PRO" label="Segid of atom 1"/>
+        <param name="resid1"  type="text" value="212" label="Resid of atom 1"/>
+        <param name="name1"  type="text" value="OE2" label="Atom name of atom 1"/>
+        <param name="segid2"  type="text" value="HET" label="Segid of atom 2"/>
+        <param name="resid2"  type="text" value="3" label="Resid of atom 2"/>
+        <param name="name2"  type="text" value="C1" label="Atom name of atom 2"/>
+    </inputs>
+    <outputs>
+        <data format="tabular" name="output" label="Distance Analysis raw data"/>  
+        <data format="png" name="distance_plot" label="Distance Analysis Plot"/>
+    </outputs>
+    <tests>
+        <test>
+            <expand macro="tests_inputs"/>
+            <param name="segid1" value="PRO"/>
+            <param name="resid1" value="212"/>
+            <param name="name1" value="OE2"/>
+            <param name="segid2" value="HET"/>
+            <param name="resid2" value="3"/>
+            <param name="name2" value="C1"/>
+            <output name="output">
+              <assert_contents>
+                <has_n_columns n="2" />
+              </assert_contents>
+             </output>
+        </test>
+    </tests>
+    <help><![CDATA[
+.. class:: infomark
+
+**What it does**
+        
+This tool calculates and plot distance between the two atoms.
+
+_____
+
+
+.. class:: infomark
+
+**Input**
+
+       - Trajectory file  (DCD).
+       - PDB file.
+       - Segids, resids and names of two atoms to calculate distances.
+     
+_____
+
+        
+.. class:: infomark
+
+**Output**
+
+       - Tab-separated file of raw data of distance between two atoms calculated for each frame.
+       - Image (as png) of the time series graph.
+
+
+    ]]></help>
+    <expand macro="citations" />
+</tool>
b
diff -r 000000000000 -r c33b972fe040 macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml Mon Oct 08 13:16:12 2018 -0400
b
@@ -0,0 +1,23 @@
+<macros>
+    <token name="@VERSION@">0.18</token>
+    <xml name="requirements">
+        <requirements>
+   <requirement type="package" version="0.18.0">mdanalysis</requirement>
+        </requirements>
+    </xml>
+    <xml name="analysis_inputs">
+        <param format="dcd" name="dcdin" type="data" label="dcd trajectory input"/>
+        <param format="pdb" name="pdbin" type="data" label="pdb input"/>
+        <yield/>
+    </xml>
+    <xml name="tests_inputs">
+        <param name="dcdin" value="test.dcd" />
+        <param name="pdbin" value="test.pdb" />
+        <yield/>
+    </xml>
+    <xml name="citations">
+        <citations>
+            <citation type="doi">10.1002/jcc.21787</citation>
+        </citations>
+    </xml>
+</macros>
b
diff -r 000000000000 -r c33b972fe040 rdf.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rdf.py Mon Oct 08 13:16:12 2018 -0400
[
@@ -0,0 +1,69 @@
+#!/usr/bin/env python
+
+import argparse
+import csv
+import sys
+
+import MDAnalysis as mda
+from MDAnalysis.analysis.rdf import InterRDF
+
+import matplotlib
+import matplotlib.pyplot as plt
+
+import numpy as np
+
+matplotlib.use('Agg')
+
+
+def parse_command_line(argv):
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--idcd', help='input dcd')
+    parser.add_argument('--ipdb', help='input pdb')
+    parser.add_argument('--isegid1', help='segid 1')
+    parser.add_argument('--iresid1', help='resid 1')
+    parser.add_argument('--iname1', help='name 1')
+    parser.add_argument('--isegid2', help='segid 2')
+    parser.add_argument('--iresid2', help='resid 2')
+    parser.add_argument('--iname2', help='name 2')
+    parser.add_argument('--inbins', help='Number of bins in the histogram')
+    parser.add_argument('--istart', help='Starting Point')
+    parser.add_argument('--iend', help='End point')
+    parser.add_argument('--output', help='output')
+    parser.add_argument('--ordf_plot', help='RDF plot')
+    return parser.parse_args()
+
+
+args = parse_command_line(sys.argv)
+
+atom1 = "(segid %s and resid %s and name %s)" % \
+    (args.isegid1, args.iresid1, args.iname1)
+atom2 = "(segid %s and resid %s and name %s)" % \
+    (args.isegid2, args.iresid2, args.iname2)
+bins = int(args.inbins)
+start = float(args.istart)
+end = float(args.iend)
+
+u = mda.Universe(args.ipdb, args.idcd, topology_format="PDB", format="DCD")
+x = u.select_atoms(atom1)
+y = u.select_atoms(atom2)
+
+rdf = InterRDF(x, y, nbins=bins, range=(start, end))
+rdf.run()
+bins = rdf.bins
+bins = np.around(bins, decimals=3)
+RDF = rdf.rdf
+zip(bins, RDF)
+
+with open(args.output, 'w') as f:
+    writer = csv.writer(f, delimiter='\t')
+    writer.writerows(zip(bins, RDF))
+
+with open(args.output) as f:
+    g = [xtmp.strip() for xtmp in f]
+    data = [tuple(map(float, xtmp.split())) for xtmp in g[0:]]
+    time = [xtmp[0] for xtmp in data]
+    rdf = [xtmp[1] for xtmp in data]
+    plt.plot(time, rdf)
+    plt.xlabel('r ($\AA$)')
+    plt.ylabel('g(r)')
+    plt.savefig(args.ordf_plot, format='png')
b
diff -r 000000000000 -r c33b972fe040 test-data/Angle_Analysis_Plot.png
b
Binary file test-data/Angle_Analysis_Plot.png has changed
b
diff -r 000000000000 -r c33b972fe040 test-data/Angle_Analysis_raw_data.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Angle_Analysis_raw_data.csv Mon Oct 08 13:16:12 2018 -0400
b
@@ -0,0 +1,15 @@
+0.0 70.84918975830078
+1.0 70.97154998779297
+2.0 70.3709716796875
+3.0 70.12692260742188
+4.0 71.15946197509766
+5.0 71.91361999511719
+6.0 71.91268920898438
+7.0 71.97418212890625
+8.0 72.15215301513672
+9.0 72.30829620361328
+10.0 71.52912139892578
+11.0 81.56575775146484
+12.0 73.46330261230469
+13.0 67.04185485839844
+14.0 70.07105255126953
b
diff -r 000000000000 -r c33b972fe040 test-data/Dihedral_Analysis_Plot.png
b
Binary file test-data/Dihedral_Analysis_Plot.png has changed
b
diff -r 000000000000 -r c33b972fe040 test-data/Dihedral_analysis_raw_data.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Dihedral_analysis_raw_data.csv Mon Oct 08 13:16:12 2018 -0400
b
@@ -0,0 +1,15 @@
+0.0 -61.75347431106646
+1.0 -63.57940223575045
+2.0 -64.3468375822089
+3.0 -64.2932006449013
+4.0 -66.17815780069928
+5.0 -64.57418410935712
+6.0 -63.95470182210953
+7.0 -63.215898370961455
+8.0 -63.05227933072821
+9.0 -63.350881174296354
+10.0 -64.12889787645014
+11.0 -59.11099982465991
+12.0 -76.10678081593274
+13.0 -74.55530125465415
+14.0 -71.01850912317343
b
diff -r 000000000000 -r c33b972fe040 test-data/Distance_Analysis_Plot.png
b
Binary file test-data/Distance_Analysis_Plot.png has changed
b
diff -r 000000000000 -r c33b972fe040 test-data/Distance_Analysis_raw_data.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Distance_Analysis_raw_data.csv Mon Oct 08 13:16:12 2018 -0400
b
@@ -0,0 +1,15 @@
+0  3.8900816
+1  3.7835152
+2  3.7693398
+3  3.7851017
+4  3.6331043
+5  3.6525044
+6  3.684632
+7  3.7285593
+8  3.7090275
+9  3.6880326
+10  3.7261977
+11  3.4300115
+12  3.3902843
+13  3.3456264
+14  3.2583153
b
diff -r 000000000000 -r c33b972fe040 test-data/RDF_Analysis_Plot.png
b
Binary file test-data/RDF_Analysis_Plot.png has changed
b
diff -r 000000000000 -r c33b972fe040 test-data/RDF_raw_data.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/RDF_raw_data.csv Mon Oct 08 13:16:12 2018 -0400
b
@@ -0,0 +1,100 @@
+0.025 0.0
+0.075 0.0
+0.125 0.0
+0.175 0.0
+0.225 0.0
+0.275 0.0
+0.325 0.0
+0.375 0.0
+0.425 0.0
+0.475 0.0
+0.525 0.0
+0.575 0.0
+0.625 0.0
+0.675 0.0
+0.725 0.0
+0.775 0.0
+0.825 0.0
+0.875 0.0
+0.925 0.0
+0.975 0.0
+1.025 0.0
+1.075 0.0
+1.125 0.0
+1.175 0.0
+1.225 0.0
+1.275 0.0
+1.325 0.0
+1.375 0.0
+1.425 0.0
+1.475 0.0
+1.525 0.0
+1.575 0.0
+1.625 0.0
+1.675 0.0
+1.725 0.0
+1.775 0.0
+1.825 0.0
+1.875 0.0
+1.925 0.0
+1.975 0.0
+2.025 0.0
+2.075 0.0
+2.125 0.0
+2.175 0.0
+2.225 0.0
+2.275 0.0
+2.325 0.0
+2.375 0.0
+2.425 0.0
+2.475 0.0
+2.525 0.0
+2.575 0.0
+2.625 0.0
+2.675 0.0
+2.725 0.0
+2.775 0.0
+2.825 0.0
+2.875 0.0
+2.925 0.0
+2.975 0.0
+3.025 0.0
+3.075 0.0
+3.125 0.0
+3.175 0.0
+3.225 0.0
+3.275 6336.434022284689
+3.325 6147.300995012225
+3.375 5966.511251797981
+3.425 5793.58118212878
+3.475 0.0
+3.525 0.0
+3.575 0.0
+3.625 5171.934954710286
+3.675 15096.484661102078
+3.725 14693.935913907942
+3.775 14307.27600154838
+3.825 0.0
+3.875 4526.124773895681
+3.925 0.0
+3.975 0.0
+4.025 0.0
+4.075 0.0
+4.125 0.0
+4.175 0.0
+4.225 0.0
+4.275 0.0
+4.325 0.0
+4.375 0.0
+4.425 0.0
+4.475 0.0
+4.525 0.0
+4.575 0.0
+4.625 0.0
+4.675 0.0
+4.725 0.0
+4.775 0.0
+4.825 0.0
+4.875 0.0
+4.925 0.0
+4.975 0.0
b
diff -r 000000000000 -r c33b972fe040 test-data/Ramachandran_Plot.png
b
Binary file test-data/Ramachandran_Plot.png has changed
b
diff -r 000000000000 -r c33b972fe040 test-data/test.dcd
b
Binary file test-data/test.dcd has changed
b
diff -r 000000000000 -r c33b972fe040 test-data/test.pdb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test.pdb Mon Oct 08 13:16:12 2018 -0400
b
b'@@ -0,0 +1,61655 @@\n+REMARK  FILENAME: MINIMIZE.INP                                                        \n+REMARK  PURPOSE:  SETUP PERIODIC BOUNDARY CONDITIONS AND ENERGY MINIMIZATION          \n+REMARK  AUTHOR:   THARINDU SENAPATHI                                                  \n+REMARK   DATE:     9/25/18     11:16:58      CREATED BY USER: galaxy                  \n+ATOM      1  N   SER     2      23.711   4.396   5.292  1.00  0.00      PRO \n+ATOM      2  HT1 SER     2      22.774   4.012   5.048  1.00  0.00      PRO \n+ATOM      3  HT2 SER     2      23.993   4.056   6.233  1.00  0.00      PRO \n+ATOM      4  HT3 SER     2      24.412   4.016   4.606  1.00  0.00      PRO \n+ATOM      5  CA  SER     2      23.692   5.909   5.232  1.00  0.00      PRO \n+ATOM      6  HA  SER     2      23.045   6.255   6.026  1.00  0.00      PRO \n+ATOM      7  CB  SER     2      25.129   6.479   5.468  1.00  0.00      PRO \n+ATOM      8  HB1 SER     2      25.502   6.112   6.451  1.00  0.00      PRO \n+ATOM      9  HB2 SER     2      25.108   7.590   5.522  1.00  0.00      PRO \n+ATOM     10  OG  SER     2      26.032   6.062   4.445  1.00  0.00      PRO \n+ATOM     11  HG1 SER     2      26.928   6.382   4.649  1.00  0.00      PRO \n+ATOM     12  C   SER     2      23.087   6.445   3.945  1.00  0.00      PRO \n+ATOM     13  O   SER     2      22.287   5.741   3.315  1.00  0.00      PRO \n+ATOM     14  N   ALA     3      23.417   7.674   3.515  1.00  0.00      PRO \n+ATOM     15  HN  ALA     3      24.112   8.236   3.961  1.00  0.00      PRO \n+ATOM     16  CA  ALA     3      22.937   8.280   2.293  1.00  0.00      PRO \n+ATOM     17  HA  ALA     3      22.421   7.554   1.681  1.00  0.00      PRO \n+ATOM     18  CB  ALA     3      22.012   9.476   2.583  1.00  0.00      PRO \n+ATOM     19  HB1 ALA     3      22.509  10.220   3.241  1.00  0.00      PRO \n+ATOM     20  HB2 ALA     3      21.086   9.125   3.082  1.00  0.00      PRO \n+ATOM     21  HB3 ALA     3      21.718   9.984   1.638  1.00  0.00      PRO \n+ATOM     22  C   ALA     3      24.147   8.753   1.509  1.00  0.00      PRO \n+ATOM     23  O   ALA     3      25.174   9.077   2.073  1.00  0.00      PRO \n+ATOM     24  N   CYS     4      24.005   8.749   0.169  1.00  0.00      PRO \n+ATOM     25  HN  CYS     4      23.142   8.478  -0.258  1.00  0.00      PRO \n+ATOM     26  CA  CYS     4      25.025   9.149  -0.766  1.00  0.00      PRO \n+ATOM     27  HA  CYS     4      25.769   9.761  -0.272  1.00  0.00      PRO \n+ATOM     28  CB  CYS     4      25.700   7.948  -1.484  1.00  0.00      PRO \n+ATOM     29  HB1 CYS     4      26.256   8.290  -2.382  1.00  0.00      PRO \n+ATOM     30  HB2 CYS     4      24.907   7.257  -1.851  1.00  0.00      PRO \n+ATOM     31  SG  CYS     4      26.887   7.076  -0.411  1.00  0.00      PRO \n+ATOM     32  C   CYS     4      24.341  10.034  -1.774  1.00  0.00      PRO \n+ATOM     33  O   CYS     4      23.104  10.106  -1.853  1.00  0.00      PRO \n+ATOM     34  N   THR     5      25.135  10.817  -2.507  1.00  0.00      PRO \n+ATOM     35  HN  THR     5      26.125  10.731  -2.426  1.00  0.00      PRO \n+ATOM     36  CA  THR     5      24.625  11.886  -3.343  1.00  0.00      PRO \n+ATOM     37  HA  THR     5      23.595  11.683  -3.608  1.00  0.00      PRO \n+ATOM     38  CB  THR     5      24.715  13.266  -2.674  1.00  0.00      PRO \n+ATOM     39  HB  THR     5      24.358  14.060  -3.371  1.00  0.00      PRO \n+ATOM     40  OG1 THR     5      26.051  13.580  -2.272  1.00  0.00      PRO \n+ATOM     41  HG1 THR     5      26.535  13.523  -3.104  1.00  0.00      PRO \n+ATOM     42  CG2 THR     5      23.787  13.298  -1.447  1.00  0.00      PRO \n+ATOM     43 HG21 THR     5      24.126  12.589  -0.663  1.00  0.00      PRO \n+ATOM     44 HG22 THR     5      22.759  13.003  -1.749  1.00  0.00      PRO \n+ATOM     45 HG23 THR     5      23.752  14.313  -1.003  1.00  0.00      PRO \n+ATOM     46  C   THR     5      25.385  11.902  -4.645  1.00  0.00      PRO \n+ATOM     47  O   THR     5      25.810'..b' CLA CLA     2       5.975 -34.097 -14.115  1.00  0.00      CLA \n+ATOM  61600  CLA CLA     3       3.049 -40.330   0.268  1.00  0.00      CLA \n+ATOM  61601  CLA CLA     4     -29.182 -19.908 -21.287  1.00  0.00      CLA \n+ATOM  61602  CLA CLA     5      32.119  26.809 -14.613  1.00  0.00      CLA \n+ATOM  61603  CLA CLA     6     -12.762  38.902  39.703  1.00  0.00      CLA \n+ATOM  61604  CLA CLA     7     -41.352  -6.310 -21.092  1.00  0.00      CLA \n+ATOM  61605  CLA CLA     8     -40.105  19.915  21.883  1.00  0.00      CLA \n+ATOM  61606  CLA CLA     9     -37.875 -10.640 -26.651  1.00  0.00      CLA \n+ATOM  61607  CLA CLA    10     -22.511  41.548  12.784  1.00  0.00      CLA \n+ATOM  61608  CLA CLA    11      35.216  33.731 -35.093  1.00  0.00      CLA \n+ATOM  61609  CLA CLA    12     -40.102   5.647  -2.397  1.00  0.00      CLA \n+ATOM  61610  CLA CLA    13      39.024 -12.398 -40.371  1.00  0.00      CLA \n+ATOM  61611  CLA CLA    14      18.261 -39.450  23.742  1.00  0.00      CLA \n+ATOM  61612  CLA CLA    15       6.178  41.435 -35.101  1.00  0.00      CLA \n+ATOM  61613  CLA CLA    16      24.358  15.109  39.388  1.00  0.00      CLA \n+ATOM  61614  CLA CLA    17       6.888  21.632 -18.643  1.00  0.00      CLA \n+ATOM  61615  CLA CLA    18      21.744   6.136  36.952  1.00  0.00      CLA \n+ATOM  61616  CLA CLA    19      37.313  -8.363  36.386  1.00  0.00      CLA \n+ATOM  61617  CLA CLA    20      -2.999 -20.832  23.104  1.00  0.00      CLA \n+ATOM  61618  CLA CLA    21       2.857  18.626 -27.815  1.00  0.00      CLA \n+ATOM  61619  CLA CLA    22       4.436 -15.917  42.798  1.00  0.00      CLA \n+ATOM  61620  CLA CLA    23     -36.824  -9.651  27.515  1.00  0.00      CLA \n+ATOM  61621  CLA CLA    24      30.595 -26.534 -13.854  1.00  0.00      CLA \n+ATOM  61622  CLA CLA    25       2.683  14.798  30.965  1.00  0.00      CLA \n+ATOM  61623  CLA CLA    26      29.848 -11.446 -12.895  1.00  0.00      CLA \n+ATOM  61624  CLA CLA    27      42.574 -16.385  39.148  1.00  0.00      CLA \n+ATOM  61625  CLA CLA    28      21.090  22.680  27.072  1.00  0.00      CLA \n+ATOM  61626  CLA CLA    29      31.477  21.841  -9.460  1.00  0.00      CLA \n+ATOM  61627  CLA CLA    30     -42.789  33.106 -42.003  1.00  0.00      CLA \n+ATOM  61628  CLA CLA    31      41.212  26.460  28.038  1.00  0.00      CLA \n+ATOM  61629  CLA CLA    32      31.330 -23.211  30.873  1.00  0.00      CLA \n+ATOM  61630  CLA CLA    33     -11.882  24.746  17.676  1.00  0.00      CLA \n+ATOM  61631  CLA CLA    34      42.509  41.966  29.673  1.00  0.00      CLA \n+ATOM  61632  CLA CLA    35     -21.155 -25.909  40.988  1.00  0.00      CLA \n+ATOM  61633  CLA CLA    36     -16.645  33.397 -20.493  1.00  0.00      CLA \n+ATOM  61634  CLA CLA    37      24.008  16.848   3.761  1.00  0.00      CLA \n+ATOM  61635  CLA CLA    38      -3.042 -26.229  -6.954  1.00  0.00      CLA \n+ATOM  61636  CLA CLA    39     -25.242 -29.525 -14.531  1.00  0.00      CLA \n+ATOM  61637  CLA CLA    40      34.942 -28.883 -36.691  1.00  0.00      CLA \n+ATOM  61638  CLA CLA    41     -35.913  -6.707   3.266  1.00  0.00      CLA \n+ATOM  61639  CLA CLA    42     -30.968   4.607 -32.953  1.00  0.00      CLA \n+ATOM  61640  CLA CLA    43      -5.809  15.242  42.418  1.00  0.00      CLA \n+ATOM  61641  CLA CLA    44      39.399  18.809 -13.827  1.00  0.00      CLA \n+ATOM  61642  CLA CLA    45     -15.805  29.210 -37.376  1.00  0.00      CLA \n+ATOM  61643  CLA CLA    46       0.091 -36.491 -34.859  1.00  0.00      CLA \n+ATOM  61644  CLA CLA    47     -12.875 -40.099  38.366  1.00  0.00      CLA \n+ATOM  61645  CLA CLA    48     -24.191  19.188  36.959  1.00  0.00      CLA \n+ATOM  61646  CLA CLA    49      16.215 -18.186 -29.406  1.00  0.00      CLA \n+ATOM  61647  CLA CLA    50      34.647  -7.708 -32.869  1.00  0.00      CLA \n+ATOM  61648  CLA CLA    51     -20.320 -38.996   6.847  1.00  0.00      CLA \n+ATOM  61649  CLA CLA    52     -28.453   0.614 -25.838  1.00  0.00      CLA \n+TER   61650      CLA     52\n+END\n'