PB assignation¶
Table of Contents
We hereby demonstrate how to use the API to assign PB sequences.
[1]:
from pprint import pprint
import urllib.request
import os
# print date & versions
import datetime
print("Date & time:",datetime.datetime.now())
import sys
print("Python version:", sys.version)
Date & time: 2021-01-27 13:55:14.789953
Python version: 3.7.9 (default, Oct 19 2020, 15:13:17)
[GCC 7.5.0]
[2]:
import pbxplore as pbx
print("PBxplore version:", pbx.__version__)
PBxplore version: 1.4.0
Use the built-in structure parser¶
Assign PB for a single structure¶
The pbxplore.chains_from_files()
function is the prefered way to read PDB and PDBx/mmCIF files using PBxplore. This function takes a list of file path as argument, and yield each chain it can read from these files. It provides a single interface to read PDB and PDBx/mmCIF files, to read single model and multimodel files, and to read a single file of a collection of files.
Here we want to read a single file with a single model and a single chain. Therefore, we need the first and only record that is yield by pbxplore.chains_from_files()
. This record contains a name for the chain, and the chain itself as a pbxplore.structure.structure.Chain
object. Note that, even if we want to read a single file, we need to provide it as a list to pbxplore.chains_from_files()
.
[3]:
pdb_name, _ = urllib.request.urlretrieve('https://files.rcsb.org/view/1BTA.pdb', '1BTA.pdb')
structure_reader = pbx.chains_from_files([pdb_name])
chain_name, chain = next(structure_reader)
print(chain_name)
print(chain)
1BTA.pdb | chain A
Chain A / model : 1434 atoms
Protein Blocks are assigned based on the dihedral angles of the backbone. So we need to calculate them. The pbxplore.structure.structure.Chain.get_phi_psi_angles()
methods calculate these angles and return them in a form that can be directly provided to the assignement function.
The dihedral angles are returned as a dictionnary. Each key of this dictionary is a residue number, and each value is a dictionary with the phi and psi angles.
[4]:
dihedrals = chain.get_phi_psi_angles()
pprint(dihedrals)
{1: {'phi': None, 'psi': -171.65563134448553},
2: {'phi': -133.80467711845586, 'psi': 153.74322760775027},
3: {'phi': -134.6617568892695, 'psi': 157.30476083095581},
4: {'phi': -144.49159910635183, 'psi': 118.59706956501033},
5: {'phi': -100.12866913978127, 'psi': 92.98634825528089},
6: {'phi': -83.48980457968895, 'psi': 104.23730726195485},
7: {'phi': -64.77163869310709, 'psi': -43.25159835828049},
8: {'phi': -44.47885842536954, 'psi': -25.89184262616925},
9: {'phi': -94.90790101955957, 'psi': -47.182577907117775},
10: {'phi': -41.312671692330014, 'psi': 133.73743399231304},
11: {'phi': -119.15122785547305, 'psi': -11.82789586402356},
12: {'phi': -174.2119655293399, 'psi': 175.87239770676175},
13: {'phi': -56.61341695443224, 'psi': -45.74767617535588},
14: {'phi': -50.78226415072095, 'psi': -45.3742585970337},
15: {'phi': -57.93584481869442, 'psi': -43.329444361460844},
16: {'phi': -55.20960354113049, 'psi': -56.47559202715399},
17: {'phi': -64.51979885245254, 'psi': -18.577118068149446},
18: {'phi': -70.24273354141474, 'psi': -55.153744337676926},
19: {'phi': -65.20648546633555, 'psi': -41.28370221159946},
20: {'phi': -58.98821952110768, 'psi': -35.78957701447905},
21: {'phi': -66.8659714296852, 'psi': -42.14634696303375},
22: {'phi': -67.34201665142825, 'psi': -57.40438549689628},
23: {'phi': -52.297936091413874, 'psi': -66.09120830346023},
24: {'phi': -61.19010445362886, 'psi': -14.807316930892625},
25: {'phi': 54.95158694420636, 'psi': 47.59528477656777},
26: {'phi': -69.51531755580697, 'psi': 161.10806531443862},
27: {'phi': -57.36300935545188, 'psi': -179.66365615297644},
28: {'phi': -79.91369005407893, 'psi': -18.494472196394668},
29: {'phi': -93.51717329199727, 'psi': 13.802530546559774},
30: {'phi': -38.40653214238887, 'psi': 105.85297788366393},
31: {'phi': -64.01559307951965, 'psi': -5.507357757886723},
32: {'phi': 50.06519606710965, 'psi': 3.6047302867544038},
33: {'phi': -84.83560576923662, 'psi': -176.048770127013},
34: {'phi': -76.65985981150652, 'psi': -36.89428882663367},
35: {'phi': -66.20745817863622, 'psi': -36.19018119951471},
36: {'phi': -80.76844188891471, 'psi': -55.88509876949212},
37: {'phi': -45.0995601497454, 'psi': -50.82304368319501},
38: {'phi': -58.512419169182465, 'psi': -56.4318511704347},
39: {'phi': -44.00775783983471, 'psi': -26.06209153795419},
40: {'phi': -79.6799641005731, 'psi': -51.3827703817916},
41: {'phi': -58.80532943671335, 'psi': -49.46425322450557},
42: {'phi': -75.73059711071141, 'psi': 3.9162670655637033},
43: {'phi': -177.14613562249534, 'psi': 60.46495675947553},
44: {'phi': 177.1265816932884, 'psi': -66.62887199130637},
45: {'phi': -58.436100708193806, 'psi': 149.59997847317612},
46: {'phi': -102.66050573267097, 'psi': 132.43212727859543},
47: {'phi': -114.5213275524662, 'psi': 169.33012343233455},
48: {'phi': -61.39150617820462, 'psi': 136.7035538929314},
49: {'phi': -113.17589693608565, 'psi': 156.54195412530404},
50: {'phi': -117.26440335376822, 'psi': 138.51305036902693},
51: {'phi': -120.03410170277817, 'psi': 81.75707989178757},
52: {'phi': -77.60981590398825, 'psi': 83.18451037698443},
53: {'phi': -79.65858964180552, 'psi': 111.40143302647459},
54: {'phi': -100.37011629225776, 'psi': 150.03395825502497},
55: {'phi': 49.87330458406236, 'psi': 68.7419980340502},
56: {'phi': -73.87938409722335, 'psi': -66.7355521840301},
57: {'phi': -56.20534388077749, 'psi': -35.207843043514686},
58: {'phi': -66.38284564180043, 'psi': -32.21866387324769},
59: {'phi': -94.6778115344365, 'psi': 17.6861402216656},
60: {'phi': -111.48538994784963, 'psi': -38.097764578613976},
61: {'phi': -70.64502750557983, 'psi': -62.8582975880629},
62: {'phi': -33.50588994671665, 'psi': -32.02546270762565},
63: {'phi': -128.57384077349852, 'psi': 62.57927537310066},
64: {'phi': -12.365761900396421, 'psi': 106.99327496259977},
65: {'phi': 73.68588813063126, 'psi': 32.13155886020173},
66: {'phi': -89.05260862755028, 'psi': -69.16778908477181},
67: {'phi': -77.83088301001709, 'psi': -21.564910924673597},
68: {'phi': -71.32122280651765, 'psi': -21.859413182600065},
69: {'phi': -81.4118653034867, 'psi': -55.2935117883826},
70: {'phi': -52.047970110313145, 'psi': -43.22593946145588},
71: {'phi': -59.215594114973726, 'psi': -45.283196644537554},
72: {'phi': -52.67186926130671, 'psi': -38.127901315075064},
73: {'phi': -75.00963018964649, 'psi': -30.83999517691734},
74: {'phi': -74.69878930178584, 'psi': -35.042954979175136},
75: {'phi': -80.22740138668189, 'psi': -37.2721834868002},
76: {'phi': -63.3253002341084, 'psi': -46.736848174955014},
77: {'phi': -62.577975558265166, 'psi': -38.836376804396195},
78: {'phi': -58.4371262613883, 'psi': -30.932534133630554},
79: {'phi': -77.25603045197096, 'psi': -28.810984281581455},
80: {'phi': -65.77402807318447, 'psi': -6.587861693755372},
81: {'phi': 113.27162201541088, 'psi': -14.067924223417435},
82: {'phi': -63.856071155072016, 'psi': 160.46313493362328},
83: {'phi': -109.29442965951228, 'psi': 65.33016925110071},
84: {'phi': -94.29902268445335, 'psi': 87.93029438989075},
85: {'phi': -52.91938395571083, 'psi': 98.897475962567},
86: {'phi': -73.44769372512917, 'psi': 114.64881254410926},
87: {'phi': -114.16119204550665, 'psi': 101.24805765454327},
88: {'phi': -96.78933556699712, 'psi': 106.74340425527281},
89: {'phi': -109.02775603395978, 'psi': None}}
The dihedral angles can be provided to the pbxplore.assign()
function that assigns a Protein Block to each residue, and that returns the PB sequence as a string. Note that the first and last two residues are assigned to the Z
jocker block as some dihedral angles cannot be calculated.
[5]:
pb_seq = pbx.assign(dihedrals)
print(pb_seq)
ZZdddfklonbfklmmmmmmmmnopafklnoiaklmmmmmnoopacddddddehkllmmmmngoilmmmmmmmmmmmmnopacdcddZZ
Assign PB for several models of a single file¶
A single PDB file can contain several models. Then, we do not want to read only the first chain. Instead, we want to iterate over all the chains.
[6]:
pdb_name, _ = urllib.request.urlretrieve('https://files.rcsb.org/view/2LFU.pdb', '2LFU.pdb')
for chain_name, chain in pbx.chains_from_files([pdb_name]):
dihedrals = chain.get_phi_psi_angles()
pb_seq = pbx.assign(dihedrals)
print('* {}'.format(chain_name))
print(' {}'.format(pb_seq))
* 2LFU.pdb | model 1 | chain A
ZZbghiacfkbccdddddehiadddddddddddfklggcdddddddddddddehifbdcddddddddddfklopadddddfhpamlnopcddddddehjadddddehjacbddddddddfklmaccddddddfbgniaghiapaddddddfklnoambZZ
* 2LFU.pdb | model 2 | chain A
ZZpcfblcffbccdddddeehjacdddddddddfklggcddddddddddddddfblghiadddddddddfklopadddddehpmmmnopcddddddeehiacdddfblopadcddddddfklpaccdddddfklmlmgcdehiaddddddfklmmgopZZ
* 2LFU.pdb | model 3 | chain A
ZZmgghiafbbccdddddehjbdcdddddddddfklggcddddddddddddddfbfghpacddddddddfklopadddddehiaklmmmgcdddddeehiaddddfkbgciacdddddefklpaccddddddfkgojbdfehpaddddddfkbccfbgZZ
* 2LFU.pdb | model 4 | chain A
ZZcghiacfkbacdddddfbhpacdddddddddfklmcfdddddddddddddehiacddddddddddddfknopadddddfkpamlnopaddddddehjaccdddfklnopacddddddfklmpccdddddddehiabghehiaddddddfklpccfkZZ
* 2LFU.pdb | model 5 | chain A
ZZpaehiehkaccdddddehjbccdddddddddfklggcddddddddddddddfbhpadddddddddddfklopadddddehiamlmmpccdddddeehiadddddfbacddcddddddfklmaccddddddfbgghiafehiadddddddfklpacfZZ
* 2LFU.pdb | model 6 | chain A
ZZmghbacfkbccdddddeehpacdddddddddfklggcdddddddddddddehiacadddddddddddfklopadddddehiaklnopcddddddeehiadddehjlnopacddddddfklmaccddddehiaehbgcdehiadddddddfehjlpcZZ
* 2LFU.pdb | model 7 | chain A
ZZcchbacfkbccdddddfehpacdddddddddfklggcdddddddddddddddehjapadddddddddfknopadddddfklmmmnopcddddddehjiddddddfknopacddddddfklpaccdddddfklmaacdfehpadddddehjblckknZZ
* 2LFU.pdb | model 8 | chain A
ZZcehjdeehiacdjdddedjbdcdddddddddfklggcdddddddddddddddbfblbacddddddddfklopacddddehiamlnopaddddddehjacddddfehpaaccdddddefklpaccdddddfklmbfbehehiaddddddffkgoiehZZ
* 2LFU.pdb | model 9 | chain A
ZZpccdjdfkbccdddddehhpacdddddddddfklggcdddddddddddddehiacbdcdddddddddfklopadddddehiammnopcddddddeejiadddehjlgobacddddddfklmpccddddehiacbcbdfehpadddddehjklmklmZZ
* 2LFU.pdb | model 10 | chain A
ZZccfklcfkbccdddddehjbdcdddddddddfklggcdddddddddddddehiapaccdddddddddfklopadddddehjamlnopaddddddehjddcdddfbfghpacddddddfklpaccddddddfbcfbacfehpadddddddekpghiaZZ
Read 10 chain(s) in 2LFU.pdb
Assign PB for a set of structures¶
The pbxplore.chains_from_files()
function can also handle several chains from several files.
[7]:
import glob
files = ['1BTA.pdb', '2LFU.pdb', '3ICH.pdb']
for pdb_name in files:
urllib.request.urlretrieve('https://files.rcsb.org/view/{0}'.format(pdb_name), pdb_name)
print('The following files will be used:')
pprint(files)
for chain_name, chain in pbx.chains_from_files(files):
dihedrals = chain.get_phi_psi_angles()
pb_seq = pbx.assign(dihedrals)
print('* {}'.format(chain_name))
print(' {}'.format(pb_seq))
The following files will be used:
['1BTA.pdb', '2LFU.pdb', '3ICH.pdb']
* 1BTA.pdb | chain A
ZZdddfklonbfklmmmmmmmmnopafklnoiaklmmmmmnoopacddddddehkllmmmmngoilmmmmmmmmmmmmnopacdcddZZ
Read 1 chain(s) in 1BTA.pdb
* 2LFU.pdb | model 1 | chain A
ZZbghiacfkbccdddddehiadddddddddddfklggcdddddddddddddehifbdcddddddddddfklopadddddfhpamlnopcddddddehjadddddehjacbddddddddfklmaccddddddfbgniaghiapaddddddfklnoambZZ
* 2LFU.pdb | model 2 | chain A
ZZpcfblcffbccdddddeehjacdddddddddfklggcddddddddddddddfblghiadddddddddfklopadddddehpmmmnopcddddddeehiacdddfblopadcddddddfklpaccdddddfklmlmgcdehiaddddddfklmmgopZZ
* 2LFU.pdb | model 3 | chain A
ZZmgghiafbbccdddddehjbdcdddddddddfklggcddddddddddddddfbfghpacddddddddfklopadddddehiaklmmmgcdddddeehiaddddfkbgciacdddddefklpaccddddddfkgojbdfehpaddddddfkbccfbgZZ
* 2LFU.pdb | model 4 | chain A
ZZcghiacfkbacdddddfbhpacdddddddddfklmcfdddddddddddddehiacddddddddddddfknopadddddfkpamlnopaddddddehjaccdddfklnopacddddddfklmpccdddddddehiabghehiaddddddfklpccfkZZ
* 2LFU.pdb | model 5 | chain A
ZZpaehiehkaccdddddehjbccdddddddddfklggcddddddddddddddfbhpadddddddddddfklopadddddehiamlmmpccdddddeehiadddddfbacddcddddddfklmaccddddddfbgghiafehiadddddddfklpacfZZ
* 2LFU.pdb | model 6 | chain A
ZZmghbacfkbccdddddeehpacdddddddddfklggcdddddddddddddehiacadddddddddddfklopadddddehiaklnopcddddddeehiadddehjlnopacddddddfklmaccddddehiaehbgcdehiadddddddfehjlpcZZ
* 2LFU.pdb | model 7 | chain A
ZZcchbacfkbccdddddfehpacdddddddddfklggcdddddddddddddddehjapadddddddddfknopadddddfklmmmnopcddddddehjiddddddfknopacddddddfklpaccdddddfklmaacdfehpadddddehjblckknZZ
* 2LFU.pdb | model 8 | chain A
ZZcehjdeehiacdjdddedjbdcdddddddddfklggcdddddddddddddddbfblbacddddddddfklopacddddehiamlnopaddddddehjacddddfehpaaccdddddefklpaccdddddfklmbfbehehiaddddddffkgoiehZZ
* 2LFU.pdb | model 9 | chain A
ZZpccdjdfkbccdddddehhpacdddddddddfklggcdddddddddddddehiacbdcdddddddddfklopadddddehiammnopcddddddeejiadddehjlgobacddddddfklmpccddddehiacbcbdfehpadddddehjklmklmZZ
* 2LFU.pdb | model 10 | chain A
ZZccfklcfkbccdddddehjbdcdddddddddfklggcdddddddddddddehiapaccdddddddddfklopadddddehjamlnopaddddddehjddcdddfbfghpacddddddfklpaccddddddfbcfbacfehpadddddddekpghiaZZ
* 3ICH.pdb | chain A
ZZccdfbdcdddddehjbdebjcdddddfklmmmlmmmmmmmmnopnopajeopacfbdcehibacehiamnonopgocdfkbjbdcdfblmbccfbghiacdddebehiafkbccddfbdcfklgokaccfbdcfbhklmmmmmmmpccdfkopafbacddfbgcddddfbacddddZZ
Read 10 chain(s) in 2LFU.pdb
Read 1 chain(s) in 3ICH.pdb
Assign PB for frames in a trajectory¶
PB sequences can be assigned from a trajectory. To do so, we use the pbxplore.chains_from_trajectory()
function that takes the path to a trajectory and the path to the corresponding topology as argument. Any file formats readable by MDAnalysis can be used. Except for its arguments, pbxplore.chains_from_trajectory()
works the same as pbxplore.chains_from_files()
.
[8]:
topology, _ = urllib.request.urlretrieve('https://raw.githubusercontent.com/pierrepo/PBxplore/master/demo_doc/psi_md_traj.gro',
'psi_md_traj.gro')
trajectory, _ = urllib.request.urlretrieve('https://raw.githubusercontent.com/pierrepo/PBxplore/master/demo_doc/psi_md_traj.xtc',
'psi_md_traj.xtc')
for chain_name, chain in pbx.chains_from_trajectory(trajectory, topology):
dihedrals = chain.get_phi_psi_angles()
pb_seq = pbx.assign(dihedrals)
print('* {}'.format(chain_name))
print(' {}'.format(pb_seq))
Frame 1/225.
* psi_md_traj.xtc | frame 0
ZZfkbcnopabfklmmmmpckbccdfbfkbcghiaghidfklmmmmmpcfklccZZ
* psi_md_traj.xtc | frame 1
ZZfkbcnhpabfklmmmmpckbccdfbfkbcchiachidfklmmmmmbdfklccZZ
* psi_md_traj.xtc | frame 2
ZZfkbcnhpabfklmmmmcckbccdfbfkbcchiacdddfklmmmmmbdfklpcZZ
* psi_md_traj.xtc | frame 3
ZZfkbcnhpacfklmmmmpckbccdfbfkbcehiaedddfklmmmpccdfklpcZZ
* psi_md_traj.xtc | frame 4
ZZfkbmnopabfklmmmmmmmbccddbfkbcghiaehidfklmmmmmcdfklpcZZ
* psi_md_traj.xtc | frame 5
ZZfkbcnlpabfklmmmmpmkbccdfbfkbcchiacdddfklmmmccbdfklccZZ
* psi_md_traj.xtc | frame 6
ZZfkbcnopabfklmmmnofkbccdfbfkbcchiacdddfklmmoccbdfklpcZZ
* psi_md_traj.xtc | frame 7
ZZfkbmnopabfklmmmmcfkbccdddfkbcchiaghidfklmmmccbdfklpcZZ
* psi_md_traj.xtc | frame 8
ZZfkbcnhpabfklmmmmockbccdfbfkbcehiaehiafklmmmmcbcfklccZZ
* psi_md_traj.xtc | frame 9
ZZfkbcnhpabfklmmmmcckbccdfbfkbcghiaehidfklmmmcfbdfklccZZ
* psi_md_traj.xtc | frame 10
ZZfkbcnopabfklmmmmpmkbccdfbfklcghiaehidfklmmmccbdfklccZZ
* psi_md_traj.xtc | frame 11
ZZfkbcghpabfklmmmnockbccdfbfcbcehiaedddfklmmmpcbdfklccZZ
* psi_md_traj.xtc | frame 12
ZZfkbanopabfklmmmmockbccdfbfkbcchiaehidfklmmmmmbdfklccZZ
* psi_md_traj.xtc | frame 13
ZZfkbcnhpabfklmmmmockbccdfbfkbcchiaghidfklmmmpccdfklccZZ
* psi_md_traj.xtc | frame 14
ZZfkbcnbpabfklmmmmockbccdfbfkbcchiaghidfklmmopfbdfklccZZ
* psi_md_traj.xtc | frame 15
ZZfkbcnlpabfklmmmmockbccdfbfklcchiacdddfklmmmpccdfklccZZ
* psi_md_traj.xtc | frame 16
ZZfkbcghpabfklmmmmmmkbccdfbfkbcehiachidfklmmmpcbdfklccZZ
* psi_md_traj.xtc | frame 17
ZZfkbanlpabfklmmmmpckbccdfbfkbcchiaedddfklmmmcfbdfklccZZ
* psi_md_traj.xtc | frame 18
ZZfkbcnhpabfklmmmmomkbccdfbfkbcehiaehidfklmmmcfbdfklccZZ
* psi_md_traj.xtc | frame 19
ZZfkbcnopabfklmmmmpmkbccdfbfkbcehiaehidfklmmmpmbdfklccZZ
* psi_md_traj.xtc | frame 20
ZZfkbcnhpabfklmmmmockbccdfbfkbaghiaedddfklmmmgfbafklccZZ
* psi_md_traj.xtc | frame 21
ZZfkbcnbpabfklmmmmcckbccdfbfkbcehiaghiafklmmmcfbdfklccZZ
* psi_md_traj.xtc | frame 22
ZZfkbcnlpabfklmmmmofkbccdfbfkbcchiaghiafklmmmccbdfklccZZ
* psi_md_traj.xtc | frame 23
ZZfkbcnopabfklmmmmockbccdfbfkbcchiaehiafklmmmccbdfklccZZ
* psi_md_traj.xtc | frame 24
ZZfkbcnbpabfklmmmmockbccddbfkbcchiaehidfklmmmpmbdfklccZZ
* psi_md_traj.xtc | frame 25
ZZfkbcgbpabfklmmmmockbccdfbfkbcchiachidfklmmmccbdfklpcZZ
* psi_md_traj.xtc | frame 26
ZZfkbcnbpabfklmmmmbgkbccdfbfkbcchiacdidfklmmmpmbdfklccZZ
* psi_md_traj.xtc | frame 27
ZZfkbcnopabfklmmmmpmkbccdfbfkbaghiaghiafklmmmcfbdfklccZZ
* psi_md_traj.xtc | frame 28
ZZfkbcnhpabfklmmmmockbccdfbfkbcghiaedidfklmmmcfbdfklccZZ
* psi_md_traj.xtc | frame 29
ZZfkbcnhpabfklmmmmmmmbccdfbfkbcghiaehidfklmmmcfbdfklccZZ
* psi_md_traj.xtc | frame 30
ZZfkbcnlpabfklmmmmmmmbccdfbfklcchiaehidfklmmmpfbdfklccZZ
* psi_md_traj.xtc | frame 31
ZZfkbonhpabfklmmmmmmmbccdfbfkbcghiaghidfklmmmmmbdfklccZZ
* psi_md_traj.xtc | frame 32
ZZfkbcfbpabfklmmmmmmmbccdfbdcbcehiaghidfklmmmccbdfklccZZ
* psi_md_traj.xtc | frame 33
ZZfkbcnhpabfklmmmmmmkbccdfbfkbcchiaghidfklmmmccbdfklccZZ
* psi_md_traj.xtc | frame 34
ZZfklcnopabfklmmmmbmmbccdfbfklcghiaghidfklmmmccbdfklccZZ
* psi_md_traj.xtc | frame 35
ZZfklcnopabfklmmmmpfkbccdfbfkbcehiaehiafklmmmccbdfklccZZ
* psi_md_traj.xtc | frame 36
ZZfkbcnopabfklmmmnofkbccdfbfcbcehiacdddfklmmmcfbdfklccZZ
* psi_md_traj.xtc | frame 37
ZZfklcnopabfklmmmmmmmbccdfbfklcghiaghidfklmmmcfbdfklccZZ
* psi_md_traj.xtc | frame 38
ZZfkbcnopabfklmmmmockbccdfbfkbcehiaehiafklmmmccbdfklpcZZ
* psi_md_traj.xtc | frame 39
ZZfkbcnopabfklmmmmmmmbccdfbfkbcghiaehiafklmmmpfbdfklccZZ
* psi_md_traj.xtc | frame 40
ZZfkbcnlpabfklmmmmockbccdddfklcchiaghiafklmmmpfbafklccZZ
* psi_md_traj.xtc | frame 41
ZZfkbcnopacfklmmmmmmkbccdddfkbcehiaghiafklmmmcfbdfklmcZZ
* psi_md_traj.xtc | frame 42
ZZfkbcnopabfklmmmnockbccdddfkbcchiaehidfklmmncfbdfklpcZZ
* psi_md_traj.xtc | frame 43
ZZfkbcnopabfklmmmmockbccdddfkbcchiaehidfklmmmgmbdfklpcZZ
* psi_md_traj.xtc | frame 44
ZZfkbcnhpabfklmmmmcfkbccdfbfkbcehiaghiafklmmmcfbdfklpcZZ
* psi_md_traj.xtc | frame 45
ZZfkbcnhpabfklmmmmmgcbccdfbfkbcchiaehidfklmmmccbdfkbccZZ
* psi_md_traj.xtc | frame 46
ZZfkbcnopabfklmmmmocbbccdfbdfbcehiaehidfklmmmgfbacklccZZ
* psi_md_traj.xtc | frame 47
ZZfkbcnbpabfklmmmmockbccdfbfkbcchiaehidfklmmoccbdfklccZZ
* psi_md_traj.xtc | frame 48
ZZfkbmnbpabfklmmmmockbccdfbfkbcchiaehiafklmmommbcfklccZZ
* psi_md_traj.xtc | frame 49
ZZfkbcnlpabfklmmmmcfkbccdfbfklcghiaehiafklmmmmmbcfklccZZ
* psi_md_traj.xtc | frame 50
ZZfkbcnopabfklmmmmockbccdfbfcbcehiacdidfklmmmmmpcfklpcZZ
* psi_md_traj.xtc | frame 51
ZZfkbcnopabfklmmmmockbccdfbfkbcchiaehidfklmmmmmbcfklccZZ
* psi_md_traj.xtc | frame 52
ZZfkbcnbpabfklmmmmomkbccdfbfklcghiaghidfklmmmmmmcfklccZZ
* psi_md_traj.xtc | frame 53
ZZfkbmnopcbfklmmmmpckbccdfbfklcghiaghiafklmmmmmccfklpcZZ
* psi_md_traj.xtc | frame 54
ZZfkbcnbpfbfklmmmmpckbccdddfkbcchiaghiafklmmmmmpcfklpcZZ
* psi_md_traj.xtc | frame 55
ZZfkbcnbpfbfklmmmmockbccdfbfkbcchiaehidfklmmmmmpccfbacZZ
* psi_md_traj.xtc | frame 56
ZZfkbmnopabfklmmmmcckbccdfbfkbcchiaehiafklmmmmmpccfbacZZ
* psi_md_traj.xtc | frame 57
ZZfkbcnbpabfklmmmmcfkbccdfbfkbcehiaehiafklmmmmmacdfbacZZ
* psi_md_traj.xtc | frame 58
ZZfkbcnhpabfklmmmmockbccdfbdfbachiaehiafklmmmmmmcfklccZZ
* psi_md_traj.xtc | frame 59
ZZfkbcnopabfklmmmmockbccdfbfkbcchiaghidfklmmmmmmccfbacZZ
* psi_md_traj.xtc | frame 60
ZZfkbcnbpabfklmmmmofkbccdfbfkbcehiaghidfklmmmmmpccfbacZZ
* psi_md_traj.xtc | frame 61
ZZfkbanbpfbfklmmmmockbccdfbfkbcehiaghidfklmmmmmcccfbacZZ
* psi_md_traj.xtc | frame 62
ZZfkbcnbpabfklmmmmomkbccdfbfkbachiaehiafklmmnomacdfbacZZ
* psi_md_traj.xtc | frame 63
ZZfkbcnbpabfklmmmmpmkbccdfbfkbcchiaehiafklmmmmnocchiacZZ
* psi_md_traj.xtc | frame 64
ZZfkbcnbpabfklmmmmpckbccdfbfkbcehiaehiafklmmmmmpccfkacZZ
* psi_md_traj.xtc | frame 65
ZZfkbcnbpcbfklmmmmpckbccdfbfkbcehiaghiafklmmmmmpccfbacZZ
* psi_md_traj.xtc | frame 66
ZZfkbcnopabfklmmmmockbccdfbfkbcchiaehiafklmmmmmbccfbccZZ
* psi_md_traj.xtc | frame 67
ZZfkbcnhpabfklmmmmcfkbccdfbfkbcehiaehiafklmmmmmbccfbccZZ
* psi_md_traj.xtc | frame 68
ZZfkbcnbpabfklmmmmpckbccdfbfkbcehiaehidfklmmmmmbccfbacZZ
* psi_md_traj.xtc | frame 69
ZZfkbcnbpabfklmmmmockbccdfbfkbcghiaehiafklmmmmmocfklccZZ
* psi_md_traj.xtc | frame 70
ZZfkbcnopabfklmmmmmmkbccdfbfkbcchiaehidfklmmmmmcccfbacZZ
* psi_md_traj.xtc | frame 71
ZZfkbcnbpabfklmmmmomkbccdfbfkbcehiaghidfklmmmmmcccfbacZZ
* psi_md_traj.xtc | frame 72
ZZfkbcfbpabfklmmmmofkbccdfbfcbcehiaehidfklmmmmmmccfbacZZ
* psi_md_traj.xtc | frame 73
ZZfkbcnbpabfklmmmmockbccdfbffbcchiaehiafklmmmmmccdfbacZZ
* psi_md_traj.xtc | frame 74
ZZfkbcnbpabfklmmmmcckbccdfbfklcghiaehiafklmmmmmcccfbdcZZ
* psi_md_traj.xtc | frame 75
ZZfkbcfhpabfklmmmmpmkbccdfbfklcchiaehiafklmmmmmccfklccZZ
* psi_md_traj.xtc | frame 76
ZZfkbcghpabfklmmmmmmmbccdfbfkbcchiaehiafklmmmmmpacfbacZZ
* psi_md_traj.xtc | frame 77
ZZfkbcchiabfklmmmmbfkbccdfbfkbcehiaehiafklmmmmmccdfbacZZ
* psi_md_traj.xtc | frame 78
ZZfkbcchiacfklmmmmmmkbccdfbfkbcehiaehiafklmmmmmpccfbacZZ
* psi_md_traj.xtc | frame 79
ZZfkbcghpabfklmmmmmmkbccdfbfkbcchiaehidfklmmmmmacfklpcZZ
* psi_md_traj.xtc | frame 80
ZZfkbcghpabfklmmmmmmkbccdfbfkbcghiaghiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 81
ZZfkbcnhpabfklmmmmockbccdfbfkbcehiaghidfklmmmmmbcchiacZZ
* psi_md_traj.xtc | frame 82
ZZfkbcghpabfklmmmmmmcbccdfbfklcghiaghiafklmmmmmpcfklccZZ
* psi_md_traj.xtc | frame 83
ZZfkbcfbpabfklmmmmockbccdfbfklcghiaghidfklmmnomacdfbacZZ
* psi_md_traj.xtc | frame 84
ZZfkbcnbpabfklmmmmockbccdfbdfbgghiaehiafklmmmmmbccfbccZZ
* psi_md_traj.xtc | frame 85
ZZfkbcgbpacfklmmmmomkbccdfbfkbcehiaghiafklmmmmmpcfklccZZ
* psi_md_traj.xtc | frame 86
ZZfkbcghpacfklmmmmmmmbccdfbfkbcehiaehiafklmmmmmccfklccZZ
* psi_md_traj.xtc | frame 87
ZZfkbcnopabfklmmmmomkbccdfbdcbcehiaghiafklmmmmmacfklpcZZ
* psi_md_traj.xtc | frame 88
ZZfkbcfbpacfklmmmmmmmbccdfbfkbcghiaehiafklmmmmmacfklacZZ
* psi_md_traj.xtc | frame 89
ZZfkbcnopabfklmmmmomkbccdfbfklcghiaghiafklmmmmmmcfklpcZZ
* psi_md_traj.xtc | frame 90
ZZfkbcnhpacfklmmmmockbccdfbfkbcghiaghiafklmmmmmccfklccZZ
* psi_md_traj.xtc | frame 91
ZZffbcnopacfklmmmmockbccdfbfklaghiaehiafklmmmmmpccfbacZZ
* psi_md_traj.xtc | frame 92
ZZfkbcnlpacfklmmmmcckbccdfbfkbcghiaehidfklmmmmmccdfbacZZ
* psi_md_traj.xtc | frame 93
ZZdfbanhpacfklmmmmcfkbccdfbfkbcehiaghiafklmmmmmccdfbacZZ
* psi_md_traj.xtc | frame 94
ZZfkbcnhpacfklmmmmockbccdfbfkbcehiaehiafklmmmmmccdfbacZZ
* psi_md_traj.xtc | frame 95
ZZfkbcnopabfklmmmmmmmbccdfbfkbcehiaehiafklmmmmmcccfbacZZ
* psi_md_traj.xtc | frame 96
ZZfkbcnbpabfklmmmmockbccdfbfkbcehiaghiafklmmmmmcccfbacZZ
* psi_md_traj.xtc | frame 97
ZZfkbcnbpabfklmmmmmmkbccdfbfklcghiaehiafklmmmmmmccfbccZZ
* psi_md_traj.xtc | frame 98
ZZdfbfnbpfbfklmmmmmmkbccdfbfkbcchiaehidfklmmmmmpccklccZZ
* psi_md_traj.xtc | frame 99
ZZfkbcnbpabfklmmmncckbccdfbafbcchiaghidfklmmmmmbcehiacZZ
* psi_md_traj.xtc | frame 100
ZZfkbcnbpabfklmmmmmmkbccdfbfkbachiaghidfklmmmmmpccfbacZZ
* psi_md_traj.xtc | frame 101
ZZfkbcnbjabfklmmmmmmmbccdfbfklpghiaghidfklmmmmmpcfkbccZZ
* psi_md_traj.xtc | frame 102
ZZfkbcnbpcbfklmmmmockbccdfbfklcghiaehidfklmmmmmpccklccZZ
* psi_md_traj.xtc | frame 103
ZZfkbcnbpabfklmmmmockbccdfbfkbcchiaehidfklmmmmmccdhiacZZ
* psi_md_traj.xtc | frame 104
ZZfkbcnopacfklmmmmpckbccdfbfkbcehiaehiafklmmmmmpccfbacZZ
* psi_md_traj.xtc | frame 105
ZZfkbcnopabfklmmmmockbccdfbfklcchiaehidfklmmmmmbccfbacZZ
* psi_md_traj.xtc | frame 106
ZZfkbcnbpcbfklmmmmoccbccdfbfkbcghiaehidfklmmmmmbccfbacZZ
* psi_md_traj.xtc | frame 107
ZZfkbcnbjfbfklmmmmockbccdfbfkbcghiaehidfklmmmmmpccfbacZZ
* psi_md_traj.xtc | frame 108
ZZfkbckbpcbfklmmmmpmkbccdfbfkbcehiaghidfklmmmmmpccfbacZZ
* psi_md_traj.xtc | frame 109
ZZfkbcnbpabfklmmmmpmkbccdfbfklcghiaghiafklmmmmmpccfbacZZ
* psi_md_traj.xtc | frame 110
ZZfkbcnbpabfklmmmnockbccdfbfklcehiaghiafklmmmmmpccfbacZZ
* psi_md_traj.xtc | frame 111
ZZfkbcnbpabfklmmmmockbccdfbfklcghiaehiafklmmmnmpacfbacZZ
* psi_md_traj.xtc | frame 112
ZZfkbcfbpcbfklmmmmockbccdfbfklcghiaghiafklmmmmmpccfbacZZ
* psi_md_traj.xtc | frame 113
ZZfkbcnhpabfklmmmmpckbccdfbfklcchiaehiafklmmmmmcccfbacZZ
* psi_md_traj.xtc | frame 114
ZZfkbcehpabfklmmmmpmkbccdfbfkbcghiaghiafklmmmmmccdfbacZZ
* psi_md_traj.xtc | frame 115
ZZfkbcnbpabfklmmmmomkbccdfbfkbcehiaghiafklmmmmmcccfbacZZ
* psi_md_traj.xtc | frame 116
ZZfkbcnbpabfklmmmmomkbccdfbfklcghiaghiafklmmmmmcccfbccZZ
* psi_md_traj.xtc | frame 117
ZZfkbcfbpabfklmmmmomkbccdfbfkbcghiaghiafklmmmmmccdfbccZZ
* psi_md_traj.xtc | frame 118
ZZfkbcnbpcbfklmmmmockbccdfbfkbcghiaghiafklmmmmmpccfbpcZZ
* psi_md_traj.xtc | frame 119
ZZfkbcnopabfklmmmmockbccdfbfklcghiaehiafklmmmmmbccfbdcZZ
* psi_md_traj.xtc | frame 120
ZZfkbcnopabfklmmmmockbccdfbfkbcehiaehiafklmmmmmccdfbacZZ
* psi_md_traj.xtc | frame 121
ZZfkbcnbpabfklmmmnockbccdfbfklcehiaghiafklmmmmmpccfbccZZ
* psi_md_traj.xtc | frame 122
ZZfkbcnopabfklmmmmmckbccdfbfklcghiaghiafklmmmmmcccfbacZZ
* psi_md_traj.xtc | frame 123
ZZfkbcnopabfklmmmmbckbccdfbfkbcchiaghiafklmmnombcfklccZZ
* psi_md_traj.xtc | frame 124
ZZfkbcehpabfklmmmmcckbccdfbfkbcehiaehiafklmmmmmbcfklpcZZ
* psi_md_traj.xtc | frame 125
ZZfkbcnbpabfklmmmmockbccdfbffbcchiaghiafklmmmmmcccfbacZZ
* psi_md_traj.xtc | frame 126
ZZfkbcnopabfklmmmmockbccdfbfklcghiaehiafklmmmmmpccfbccZZ
* psi_md_traj.xtc | frame 127
ZZfkbcnbpabfklmmmmmmkbccdfbfkbcehiachiafklmmmmmmccfbacZZ
* psi_md_traj.xtc | frame 128
ZZfkbcnopabfklmmmmockbccdfbfbbcehiaghiafklmmmmmpccfbacZZ
Frame 100/225.
* psi_md_traj.xtc | frame 129
ZZfkbcnopabfklmmmmmmkbccdfbfbdcehiaehiafklmmmmmcccfbacZZ
* psi_md_traj.xtc | frame 130
ZZfkbcnopabfklmmmmockbccdfbfkbcghiaghiafklmmmmmcccfbacZZ
* psi_md_traj.xtc | frame 131
ZZfkbcnbpabfklmmmmockbccdfbfkbcehiaghiafklmmmmmmgcfkacZZ
* psi_md_traj.xtc | frame 132
ZZfkbmnlpabfklmmmmockbccdfbfkbcghiaehiafklmmmmmpcghiacZZ
* psi_md_traj.xtc | frame 133
ZZfkbcnopabfklmmmmbckbccdfbfcbcehiaehiafklmmmmmacehiacZZ
* psi_md_traj.xtc | frame 134
ZZfkbcnbpabfklmmmmockbccdfbfkbcehiaehidfklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 135
ZZfkbcnopabfklmmmmockbccdfbfkbcehiaghiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 136
ZZfkbcnbpcbfklmmmmmmkbccdfbfkbcehiaehiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 137
ZZfkbmnopabfklmmmmcckbccdfbfkbcghiaghiafklmmmmmpgehiacZZ
* psi_md_traj.xtc | frame 138
ZZfkbcnbpabfklmmmmmmmbccdfblkbcehiaehiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 139
ZZfkbcnbpcbfklmmmmbmkbccdfbfkbcehiaehiafklmmmmmmcehjacZZ
* psi_md_traj.xtc | frame 140
ZZfkbfnopcbfklmmmmpmkbccdfbfkbcehiaghiafklmmmmmmgehiacZZ
* psi_md_traj.xtc | frame 141
ZZfkbcnbpcbfklmmmmmmmbccdfbfkbcehiaehiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 142
ZZfkbcnopabfklmmmmpmkbccdfbfkbcehiaehiafklmmmmmacehiacZZ
* psi_md_traj.xtc | frame 143
ZZfkbcnhpabfklmmmmomkbccdfbfkbcehiaghiafklmmmmmacehiacZZ
* psi_md_traj.xtc | frame 144
ZZfkbcnbpabfklmmmmmmkbccdfbfkbcehiachiafklmmmmmmcehiacZZ
* psi_md_traj.xtc | frame 145
ZZfkbcfbpabfklmmmmbckbccdfbdfbaehiaghiafklmmmmmacehiacZZ
* psi_md_traj.xtc | frame 146
ZZfkbcnbpcbfklmmmmockbccdfbdfbaehiaehiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 147
ZZfkbcnbpabfklmmmmockbccdfbdhiaghiaghiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 148
ZZfkbcnbpcbfklmmmmomkbccdfbdcbdehiaghiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 149
ZZfkbcnbpabfklmmmmcfkbccdfbfkbcehiaghiafklmmmmmpcghiacZZ
* psi_md_traj.xtc | frame 150
ZZfkbcnbpcbfklmmmmomkbccdfbfkbcehiaehiafklmmnombcghiacZZ
* psi_md_traj.xtc | frame 151
ZZfkbcnbpabfklmmmmockbccdfbfblcehiaghiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 152
ZZfkbcnbpabfklmmmmockbccdfbfklcehiaghiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 153
ZZfkbcnbpabfklmmmmpfkbccdfbfblcehiaghiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 154
ZZfkbcnbpabfklmmmmpmkbccdfbfklcghiaehiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 155
ZZfkbcnbpabfklmmmmpmkbccdfbfklcghiaghiafklmmmmmpcghiacZZ
* psi_md_traj.xtc | frame 156
ZZfkbcnbpabfklmmmmpckbccdfbfklcghiaehiafklmmmmmbcehiacZZ
* psi_md_traj.xtc | frame 157
ZZfkbcnbpabfklmmmmofkbccdfbfkbcghiaghiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 158
ZZfkbcnbpabfklmmmnockbccdfbfkbcehiaehiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 159
ZZfkbcnbpcbfklmmmmockbccdfbdfbaehiaehiafklmmmmmmcehiacZZ
* psi_md_traj.xtc | frame 160
ZZfkbcnbpabfklmmmmmmkbccdfbdfbachiaghiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 161
ZZfkbcnbpabfklmmmmockbccdfbacbdehiaehiafklmmmmmmcehiacZZ
* psi_md_traj.xtc | frame 162
ZZfkbcnbpabfklmmmmockbccdfbfkbcehiaghiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 163
ZZfkbcfbpcbfklmmmmpckbccdfbfkbcghiaghiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 164
ZZfkbcnhpabfklmmmmomkbccdfbdfbaehiaehiafklmmmmmpcehkacZZ
* psi_md_traj.xtc | frame 165
ZZfkbcnopabfklmmmmockbccdfbdcbcehiaehiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 166
ZZfkbcnbpabfklmmmmcfkbccdfbfkbcghiaghiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 167
ZZfkbcfbpfbfklmmmmockbccdfbfkbcghiaghiafklmmommpcehiacZZ
* psi_md_traj.xtc | frame 168
ZZfkbcfbpabfklmmmmockbccdfbfkbcghiaehiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 169
ZZfkbcfbpabfklmmmmockbccdfbfkbcghiaghiafklmmmmmmcehiacZZ
* psi_md_traj.xtc | frame 170
ZZfkbcfbpabfklmmmmockbccdfbfkbcghiachiafklmmmmmacehiacZZ
* psi_md_traj.xtc | frame 171
ZZfkbcnopabfklmmmmockbccdfbfklcehiaghiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 172
ZZfkbcnopabfklmmmmockbccdfbfklcghiaehiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 173
ZZfkbcnopabfklmmmmpckbccdfbfkbcehiaehiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 174
ZZfkbmnopabfklmmmmockbccdfbfklcehiaehiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 175
ZZfkbcnbpabfklmmmmockbccdfbfklcchiaghiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 176
ZZfkbcnbpabfklmmmncfkbccdfbfkbcehiaehiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 177
ZZfkbcnopabfklmmmnockbccdfbfkbcghiaehiafklmmmmmmcehiacZZ
* psi_md_traj.xtc | frame 178
ZZfkbcnbpabfklmmmmcckbccdfbfkbcehiaghiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 179
ZZfkbcnbpabfklmmmncfkbccdfbfkbcghiaghiafklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 180
ZZfkbcnopabfklmmmmpckbccdfbfklcehiaghiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 181
ZZfkbfnbpcbfklmmmmockbccdfbdcbcehiacdddfklmmmmnpcehiacZZ
* psi_md_traj.xtc | frame 182
ZZfkbcnbpcbfklmmmmpmkbccdfbfkbcghiaghiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 183
ZZfkbcnbpabfklmmmmockbccdfbfkbcehiaghiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 184
ZZfkbcnbpabfklmmmmcckbccdfbfklcghiaehiafklmmommccehiacZZ
* psi_md_traj.xtc | frame 185
ZZfkbcnbpabfklmmmmpfkbccdfbfkbcehiaehiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 186
ZZfkbcnopabfklmmmmmmkbccdfbfklcghiaghiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 187
ZZfkbcnopabfklmmmmockbccdfbfklcghiaghiafklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 188
ZZfkbcnbpabfklmmmmpmkbccdfbfkbcchiafbdcfklmmmmmpcehjacZZ
* psi_md_traj.xtc | frame 189
ZZfkbcnbpcbfklmmmmockbccdfbfcbcehiafbdcfklmmmmmbcehiacZZ
* psi_md_traj.xtc | frame 190
ZZfkbcnbpcbfklmmmmockbccdfbfklcghiafbdcfklmmmmmbcehiacZZ
* psi_md_traj.xtc | frame 191
ZZfkbmnbpcbfklmmmnockbccdfblbacehiafbdcfklmmnmmbcehiacZZ
* psi_md_traj.xtc | frame 192
ZZfkbcnbpfbfklmmmmpmkbccdfbfbdcehiafbdcfklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 193
ZZfkbcnbpcbfklmmmnomkbccdfbfklcghiacbdcfklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 194
ZZfkbmnbpabfklmmmmpmkbccdfbfkbcghiafbdcfklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 195
ZZfkbfnbpabfklmmmmpmkbccdfbfkbcehiafbdcfklmmmmmmcehiacZZ
* psi_md_traj.xtc | frame 196
ZZfkbfnbpabfklmmmmpmkbccdfbfkbcehiafbdcfklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 197
ZZfkbmnbpabfklmmmmockbccdfbfkbcehiafbdcfklmmmmmpcchiacZZ
* psi_md_traj.xtc | frame 198
ZZfkbmnbpcbfklmmmmpmkbccdfbdfbcehiafbdcfklmmmmmmcehiacZZ
* psi_md_traj.xtc | frame 199
ZZfkbcnbpabfklmmmnockbccdfbfkbcghiafbdcfklmmmmmpaehiacZZ
* psi_md_traj.xtc | frame 200
ZZfkbcnbpcbfklmmmmockbccdfbdcbcehiafbdcfklmmmmmmcehiacZZ
* psi_md_traj.xtc | frame 201
ZZfkbcnopabfklmmmmomkbccdfbfbdcehiafbdcfklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 202
ZZfkbcnopabfklmmmmomkbccdfbfkbcehiafbdcfklmmmmmpcghiacZZ
* psi_md_traj.xtc | frame 203
ZZfkbcnopabfklmmmmmmkbccdfbfbbcehiafbdcfklmmmmmpcghiacZZ
* psi_md_traj.xtc | frame 204
ZZfkbcnopabfklmmmmpmkbccdfbfbbcehiafbdcfklmmmmmpcghiacZZ
* psi_md_traj.xtc | frame 205
ZZfkbcnopabfklmmmmomkbccdfbfbbcehiafbdcfklmmmmmbcghiacZZ
* psi_md_traj.xtc | frame 206
ZZfkbcnopabfklmmmmpckbccdfbfkbgghiafbdcfklmmmmmpcehjacZZ
* psi_md_traj.xtc | frame 207
ZZfkbcnopacfklmmmmomkbccdfblkbcghiafbdcfklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 208
ZZfkbcfbpabfklmmmmockbccdfbfkbcghiafbdcfklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 209
ZZfkbcnbpabfklmmmmockbccdfbfkbcghiafbdcfklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 210
ZZfkbcnbpabfklmmmmockbccdfbfkbcghiafbdcfklmmmmmbcehiacZZ
* psi_md_traj.xtc | frame 211
ZZdfbanbpabfklmmmmockbccdfbfkbcehiafbdcfklmmmnmccehiacZZ
* psi_md_traj.xtc | frame 212
ZZfkbcnopabfklmmmnofkbccdfbfkbcehiafbdcfklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 213
ZZfkbcnbpabfklmmmmockbccdfbfkbcehiafbdcfklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 214
ZZfkbcnopabfklmmmmomkbccdfbfcbcehiafbdcfklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 215
ZZfkbcnopabfklmmmmpfkbccdfbfkbcchiacbdcfklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 216
ZZfkbcnopabfklmmmmockbccdfbfkbcehiacbdcfklmmmnmpaghiacZZ
* psi_md_traj.xtc | frame 217
ZZfkbcnbpabfklmmmmcckbccdfbfkbcehiafbdcfklmmmmmmcehiacZZ
* psi_md_traj.xtc | frame 218
ZZfkbcnhpabfklmmmmpckbccdfbfkbcchiafbdcfklmmmmmccehiacZZ
* psi_md_traj.xtc | frame 219
ZZfkbcnbpabfklmmmmpckbccdfbfkbachiafbdcfklmmmmmpcehiacZZ
* psi_md_traj.xtc | frame 220
ZZfkbcnbpabfklmmmnockbccdfbfkbcehiafbdcfklmmmnmpaghiacZZ
* psi_md_traj.xtc | frame 221
ZZdfbanbpabfklmmmnockbccdfblkbcehiafbdcfklmmmmmmcehiacZZ
* psi_md_traj.xtc | frame 222
ZZfkbcnopabfklmmmmcfkbccdfbfkbcehiafbdcfklmmmmmmcehiacZZ
* psi_md_traj.xtc | frame 223
ZZfkbcnopabfklmmmmcfkbccdfbfkbcehiafbdcfklmmmmmmcghiacZZ
* psi_md_traj.xtc | frame 224
ZZfkbcnbpabfklmmmmofkbccdfbfkbcghiafbdcfklmmmmmpcehiacZZ
Frame 200/225.
Frame 225/225.
Use a different structure parser¶
Providing the dihedral angles can be formated as expected by pbxplore.assign()
, the source of these angles does not matter. For instance, other PDB parser can be used with PBxplore.
BioPython¶
[9]:
import Bio
import Bio.PDB
import math
print("BioPython version:", Bio.__version__)
pdb_name, _ = urllib.request.urlretrieve('https://files.rcsb.org/view/2LFU.pdb', '2LFU.pdb')
for model in Bio.PDB.PDBParser().get_structure("2LFU", pdb_name):
for chain in model:
polypeptides = Bio.PDB.PPBuilder().build_peptides(chain)
for poly_index, poly in enumerate(polypeptides):
dihedral_list = poly.get_phi_psi_list()
dihedrals = {}
for resid, (phi, psi) in enumerate(dihedral_list, start=1):
if not phi is None:
phi = 180 * phi / math.pi
if not psi is None:
psi = 180 * psi / math.pi
dihedrals[resid] = {'phi': phi, 'psi': psi}
print(model, chain)
pb_seq = pbx.assign(dihedrals)
print(pb_seq)
BioPython version: 1.78
<Model id=0> <Chain id=A>
ZZbghiacfkbccdddddehiadddddddddddfklggcdddddddddddddehifbdcddddddddddfklopadddddfhpamlnopcddddddehjadddddehjacbddddddddfklmaccddddddfbgniaghiapaddddddfklnoambZZ
<Model id=1> <Chain id=A>
ZZpcfblcffbccdddddeehjacdddddddddfklggcddddddddddddddfblghiadddddddddfklopadddddehpmmmnopcddddddeehiacdddfblopadcddddddfklpaccdddddfklmlmgcdehiaddddddfklmmgopZZ
<Model id=2> <Chain id=A>
ZZmgghiafbbccdddddehjbdcdddddddddfklggcddddddddddddddfbfghpacddddddddfklopadddddehiaklmmmgcdddddeehiaddddfkbgciacdddddefklpaccddddddfkgojbdfehpaddddddfkbccfbgZZ
<Model id=3> <Chain id=A>
ZZcghiacfkbacdddddfbhpacdddddddddfklmcfdddddddddddddehiacddddddddddddfknopadddddfkpamlnopaddddddehjaccdddfklnopacddddddfklmpccdddddddehiabghehiaddddddfklpccfkZZ
<Model id=4> <Chain id=A>
ZZpaehiehkaccdddddehjbccdddddddddfklggcddddddddddddddfbhpadddddddddddfklopadddddehiamlmmpccdddddeehiadddddfbacddcddddddfklmaccddddddfbgghiafehiadddddddfklpacfZZ
<Model id=5> <Chain id=A>
ZZmghbacfkbccdddddeehpacdddddddddfklggcdddddddddddddehiacadddddddddddfklopadddddehiaklnopcddddddeehiadddehjlnopacddddddfklmaccddddehiaehbgcdehiadddddddfehjlpcZZ
<Model id=6> <Chain id=A>
ZZcchbacfkbccdddddfehpacdddddddddfklggcdddddddddddddddehjapadddddddddfknopadddddfklmmmnopcddddddehjiddddddfknopacddddddfklpaccdddddfklmaacdfehpadddddehjblckknZZ
<Model id=7> <Chain id=A>
ZZcehjdeehiacdjdddedjbdcdddddddddfklggcdddddddddddddddbfblbacddddddddfklopacddddehiamlnopaddddddehjacddddfehpaaccdddddefklpaccdddddfklmbfbehehiaddddddffkgoiehZZ
<Model id=8> <Chain id=A>
ZZpccdjdfkbccdddddehhpacdddddddddfklggcdddddddddddddehiacbdcdddddddddfklopadddddehiammnopcddddddeejiadddehjlgobacddddddfklmpccddddehiacbcbdfehpadddddehjklmklmZZ
<Model id=9> <Chain id=A>
ZZccfklcfkbccdddddehjbdcdddddddddfklggcdddddddddddddehiapaccdddddddddfklopadddddehjamlnopaddddddehjddcdddfbfghpacddddddfklpaccddddddfbcfbacfehpadddddddekpghiaZZ