Add missing terminal cappings#

Adding terminal cappings to peptides and proteins.

Capping the termini of peptides and proteins can be important for ensuring charge neutrality, stability, or for matching biological conditions. Terminal cappings are often required in molecular modeling, particularly when working with small peptides or fragments.

Added in version 1.0.0.

How this function works#

API documentation

Follow this link for a detailed description of the input arguments, raised errors, and returned objects: molsysmt.build.add_missing_terminal_cappings().

The function molsysmt.build.add_missing_terminal_cappings() adds chemical groups to the N-terminus, the C-terminus, or both. These groups can be neutral or charged depending on the chosen capping residues. By default, it completes the terminal atoms without introducing caps, resulting in charged termini. Alternatively, you can specify capping groups such as ACE for the N-terminus or NME for the C-terminus to neutralize the ends.

Let’s illustrate how this function works with a simple tripeptide example:

import molsysmt as msm
molsys = msm.build.build_peptide('AlaValPro', to_form='molsysmt.MolSys')
msm.info(molsys, element='group')
index id name type n atoms component index chain index molecule index molecule type entity index entity name
0 1 ALA amino acid 10 0 0 0 peptide 0 peptide 0
1 2 VAL amino acid 16 0 0 0 peptide 0 peptide 0
2 3 PRO amino acid 14 0 0 0 peptide 0 peptide 0

As shown, the termini of the peptide are currently uncapped. We now add the atoms required to complete the terminal amino acids without capping groups. This produces a charged version of the peptide.

molsys_charged = msm.build.add_missing_terminal_cappings(molsys, N_terminal=None, C_terminal=None)
msm.info(molsys_charged, element='group')
index id name type n atoms component index chain index molecule index molecule type entity index entity name
0 1 ALA amino acid 12 0 0 0 peptide 0 peptide 0
1 2 VAL amino acid 16 0 0 0 peptide 0 peptide 0
2 3 PRO amino acid 15 0 0 0 peptide 0 peptide 0

Let’s confirm that the terminal groups carry charges under these conditions.

msm.physchem.get_charge(molsys_charged, element='group')
Magnitude
[0.0 0.0 0.0]
Unitselementary_charge

To neutralize the terminal charges, we can cap the N-terminus with an acetyl group (ACE) and the C-terminus with a N-methyl amide (NME).

molsys_uncharged = msm.build.add_missing_terminal_cappings(molsys, N_terminal='ACE', C_terminal='NME')
msm.info(molsys_uncharged, element='group')
index id name type n atoms component index chain index molecule index molecule type entity index entity name
0 0 ACE terminal capping 6 0 0 0 peptide 0 peptide 0
1 1 ALA amino acid 10 0 0 0 peptide 0 peptide 0
2 2 VAL amino acid 16 0 0 0 peptide 0 peptide 0
3 3 PRO amino acid 14 0 0 0 peptide 0 peptide 0
4 4 NME terminal capping 6 0 0 0 peptide 0 peptide 0

We check the charges again to confirm that the peptide is now neutral.

msm.physchem.get_charge(molsys_uncharged, element='group')
Magnitude
[0.0 0.0 0.0 0.0 0.0]
Unitselementary_charge

See also

User guide > Tools > Build > Build peptide:
Generate capped peptide structures from a sequence.

User guide > Tools > PhysChem > Get charge:
Compute net charges for molecular systems or selections.

User guide > Tools > Basic > Info:
Summarize the content and composition of a molecular system.