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:10.576138
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
Frame 100/225.
* 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
* 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