Peptide Construction

pepfrag provides one key public class: Peptide. This class includes public methods for calculating the mass of the peptide, including any configured modifications (ModSite s), and the peptide fragment ions, with configurable neutral losses.

A Peptide can be constructed from its amino acid sequence, charge state and modifications, for example:

from pepfrag import ModSite, Peptide

peptide = Peptide(
    (ModSite(15.994915, 4, "Oxidation"), ModSite(304.20536, "nterm", "iTRAQ8plex"))

Peptide modifications are defined using a sequence of ModSite instances.

Additional keyword arguments are available, allowing the use of average masses instead of monoisotopic masses and introducing radical peptide fragment generation.

Fragment Generation

Fragment ions can be generated using the fragment() method.

The generated fragment ions can be customized using the ion_types argument to fragment(), which takes a dictionary mapping the desired IonType s to their planned neutral losses. The default is:

from pepfrag import IonType

    IonType.precursor: ['H2O', 'NH3', 'CO2'],
    IonType.imm: [],
    IonType.b: ['H2O', 'NH3', 'CO'],
    IonType.y: ['NH3', 'H2O'],
    IonType.a: [],
    IonType.c: [],
    IonType.z: []

The generated ions can be changed by providing a custom ion_types dictionary when calling fragment(), for example:

from pepfrag import IonType, Peptide

peptide = Peptide('AMYK', 2, [])
    IonType.precursor: [],
    IonType.b: ['NH3'],
    IonType.y: ['H2O']

outputs the following fragment ions, including precursor ions, b ions with NH3 losses and y ions with H2O losses:

    (72.044390252029, 'b1[+]', 1),
    (55.01784115090901, '[b1-NH3][+]', 1),
    (147.11280416609898, 'y1[+]', 1),
    (129.10223948206897, '[y1-H2O][+]', 1),
    (203.084875340499, 'b2[+]', 2),
    (186.058326239379, '[b2-NH3][+]', 2),
    (310.17613269973896, 'y2[+]', 2),
    (292.16556801570897, '[y2-H2O][+]', 2),
    (366.14820387413897, 'b3[+]', 3),
    (349.121654773019, '[b3-NH3][+]', 3),
    (183.57774017050897, 'b3[2+]', 3),
    (175.06446561994898, '[b3-NH3][2+]', 3),
    (441.21661778820896, 'y3[+]', 3),
    (423.206053104179, '[y3-H2O][+]', 3),
    (221.11194712754397, 'y3[2+]', 3),
    (212.10666478552898, '[y3-H2O][2+]', 3),
    (512.253731573359, '[M+H][+]', 4),
    (256.63050402011896, '[M+H][2+]', 4)

Customizing Neutral Losses

pepfrag includes a number of common neutral losses available using only their string names. These are: NH3, H2O, CO2 and CO.

Additional neutral losses can be specified using a tuple of (label, mass). For example:

from pepfrag import IonType

ion_types = {
    IonType.b: [('testLoss1', 17.04), 'NH3']

This would generate b ions, along with b-testLoss1 and b-NH3 fragment ions.