Get SASA#
Computing solvent-accessible surface area (SASA) for atoms and residues.
The function molsysmt.physchem.get_sasa() evaluates solvent-accessible surface areas using numerical rolling-probe sphere algorithms (e.g. Shrake-Rupley / Lee-Richards).
Added in version 1.0.0.
API documentation
Follow this link for a detailed description of the input arguments, raised errors, and returned objects of this function: molsysmt.physchem.get_sasa().
Basic usage#
Let’s compute the solvent-accessible surface area per residue for a protein structure:
import molsysmt as msm
import pyunitwizard as puw
import matplotlib.pyplot as plt
molsys = msm.convert(msm.systems['Trp-Cage']['1l2y.h5msm'])
Note
Demo Systems Catalog
This tutorial uses demonstration datasets provided by MolSysMT. To explore the full catalog of bundled systems, forms, and file paths, visit the Demo Systems guide.
We compute the SASA per residue group and plot the solvent exposure profile along the peptide sequence:
sasa_groups = msm.physchem.get_sasa(molsys, element='group', structure_indices=0)
sasa_vals = puw.get_value(sasa_groups[0], to_unit='nm**2')
group_names = msm.get(molsys, element='group', name=True)
fig, ax = plt.subplots(figsize=(8, 3.5))
ax.bar(range(len(sasa_vals)), sasa_vals, color='steelblue', edgecolor='black', alpha=0.8)
ax.set_xticks(range(len(sasa_vals)))
ax.set_xticklabels(group_names, rotation=45, fontsize=8)
ax.set_title('Residue Solvent Accessible Surface Area (SASA)')
ax.set_xlabel('Residue')
ax.set_ylabel('SASA (nm$^2$)')
ax.grid(True, linestyle='--', alpha=0.4, axis='y')
plt.tight_layout()
plt.show()
Total macromolecular SASA#
Aggregating at the molecule level yields the total solvent-accessible area of the folded chain:
sasa_total = msm.physchem.get_sasa(molsys, element='molecule', structure_indices=0)
print('Total molecular SASA:', sasa_total[0, 0])
Total molecular SASA: 18.53787966629342 nanometer ** 2
See also
Related Tools & References
Convert: Convert molecular systems with
molsysmt.basic.convert().Get: Query system attributes with
molsysmt.basic.get().Get atomic radius: Query atomic radii with
molsysmt.physchem.get_atomic_radius().Get buried fraction: Evaluate residue burial fractions with
molsysmt.physchem.get_buried_fraction().