RMSD analysis for protein2-ligand2¶
Uses MDAnalysis to compute the metric for protein2. The workflow mirrors the analysis scripts at https://github.com/JordiVillaFreixa/Pau_TFG_DAO/tree/main/analysis.
Table of contents¶
Step 1¶
In [ ]:
from pathlib import Path
import os
import matplotlib.pyplot as plt
import MDAnalysis as mda
from MDAnalysis.analysis import rms
import pandas as pd
COURSE_DIR = Path(os.environ.get('COURSE_DIR','~/Concepcion26')).expanduser()
topo = COURSE_DIR / 'data' / 'complex' / 'protein2.pdb'
traj = COURSE_DIR / 'results' / '03-simulaciones-clasicas' / 'complex' / 'output_traj.dcd'
if not topo.exists() or not traj.exists():
raise FileNotFoundError(f'Run Episode 3 scripts so {traj!s} exists')
u = mda.Universe(topo, traj)
rmsd = rms.RMSD(u, select='backbone', ref_frame=0)
rmsd.run()
df = pd.DataFrame(rmsd.results.rmsd, columns=['Frame','Time (ps)','Backbone']).iloc[:,1:]
fig, ax = plt.subplots()
ax.plot(df['Time (ps)'], df['Backbone'], label='Backbone')
ax.set_xlabel('Time (ps)')
ax.set_ylabel('RMSD (Å)')
ax.set_title('RMSD: backbone evolution')
ax.grid(True)
fig.tight_layout()
fig.savefig('rmsd_backbone.png')
pd.options.display.float_format = '{:,.3f}'.format
print(df.head())