Path A - Module 25: Solvation & Ion Engineering#

Biological molecules don’t exist in a vacuum. They are surrounded by water molecules and ions that mediate their interactions.

In this module, you will learn to build the final environment for your Alzheimer’s study: joining the fibril and the peptide, and then solvating them in a salty box.

import molsysmt as msm
from molsysmt import systems

# 1. Load the fibril target
fibril = msm.convert('pdb:2BEG', to_form='molsysmt.MolSys')
msm.build.add_missing_heavy_atoms(fibril)

# 2. Synthesize the therapeutic peptide
peptide = msm.build.build_peptide('KLVFF')

1. Merging the Systems#

Before solvating, we need to put the fibril and the peptide in the same molecular system using merge().

# For now, they might clash in space, but we will fix that later.
complex_sys = msm.merge([fibril, peptide])

print(f"Complex atoms: {msm.get(complex_sys, element='system', n_atoms=True)}")
msm.info(complex_sys, element='molecule')

2. Solvation#

The function solvate() takes your solute and places it inside a box of water molecules. You can specify the clearance (distance from the protein to the edge of the box).

# Solvate the complex with 1.0 nm of clearance
solvated_sys = msm.build.solvate(complex_sys, box_shape='cubic', clearance='1.0 nm')

print(f"Atoms after solvation: {msm.get(solvated_sys, element='system', n_atoms=True)}")
msm.info(solvated_sys)

3. Adding Ions#

Real biological systems are not just pure water. They have salt. MolSysMT can add ions to reach a specific concentration (e.g., 0.15 M NaCl) and to ensure the total charge of the box is zero.

# Solvate and add salt in one go (or you can add ions to a solvated system)
final_sys = msm.build.solvate(complex_sys, box_shape='cubic', clearance='1.2 nm', 
                              ionic_strength='150 mM', neutralization='neutralize')

msm.info(final_sys, element='entity')

🏆 Path A Challenge: The Salt Manager#

  1. Take your capped_peptide from the previous module challenge.

  2. Solvate it in a Rhombic Dodecahedron box (a more efficient shape than cubic).

  3. Set the concentration to 200 mM of KCl (Potassium Chloride) instead of NaCl.

  4. Check the final total charge of the system using msm.get(..., total_charge=True).

Your system is now biophysically complete! In Module 26, we will learn how to patch and update attributes if we find any naming errors in our construction.