Path C - Module 23: Structural Repair & Mutagenesis#

Once you have audited the Mpro complex, you must prepare it for thermodynamic analysis. This involves reconstructing any missing sidechains and, most importantly, adding hydrogens using a pH-aware engine.

In this module, you will learn to “clean” the SARS-CoV-2 Mpro and perform a Virtual Mutation to explore binding pocket plasticity.

import molsysmt as msm
from molsysmt import systems

# Load the protease-ligand complex
molsys = msm.convert('pdb:6LU7', to_form='molsysmt.MolSys', selection='molecule_type==["protein", "small molecule"]')

1. Sidechain Reconstruction#

We use add_missing_heavy_atoms() to fix the residues that were incomplete in the original PDB file.

# Repair the protein core
msm.build.add_missing_heavy_atoms(molsys)

print(f"Protein atoms after heavy atom repair: {msm.get(molsys, selection='molecule_type=="protein"', n_atoms=True)}")

2. Intelligent Hydrogen Addition#

The binding of the N3 inhibitor to Mpro involves specific protonation states. We will add hydrogens at pH 7.4 (physiological condition).

# Add missing hydrogens
msm.build.add_missing_hydrogens(molsys, pH=7.4)

print(f"Final complex atoms: {msm.get(molsys, element='system', n_atoms=True)}")

3. Virtual Mutation of the Binding Site#

What happens to the binding affinity if a mutation occurs in the virus? Let’s mutate a residue in the pocket (e.g., His163) to a Glycine (GLY) to simulate a dramatic loss of interaction.

# Identify residue ID 163
res_idx = msm.select(molsys, selection='group_id==163', element='group')

# Perform the mutation
msm.build.mutate(molsys, selection='group_index=='+str(res_idx[0]), new_group_name='GLY')

# Verify
name = msm.get(molsys, element='group', selection=res_idx, group_name=True)
print(f"Residue 163 is now: {name}")

🏆 Path C Challenge: The Pocket Mutator#

  1. Identify a residue that is within 0.3 nm of the N3 inhibitor (Hint: use msm.get_neighbors()).

  2. Mutate that residue to an Alanine (ALA).

  3. Use msm.build.remove_overlapping_molecules() to ensure your new Alanine doesn’t clash with the inhibitor.

  4. Visualize the mutated active site.