SIB

Recipe 3.2 - Fragmenting a Peptide

Problem

You want to fragment a Peptide in-silico

Solution

PeptideFragmenter will do the job Here is how to create an instance of PeptideFragmenter that will produce fragments b and y


PeptideFragmenter fragmenter = new PeptideFragmenter(EnumSet.of(IonType.b, IonType.y), PeakList.Precision.DOUBLE);

If you need to generate fragments with losses, you have to explicitly provide the peak generators to the constructor. Note that the previous code example was using a BackbonePeakGenerator.


Set<IonType> ionTypes = EnumSet.of(IonType.b, IonType.y, IonType.i, IonType.p);

Mass waterLoss = Composition.parseComposition("H-2O-1");
Mass ammoniumLoss = Composition.parseComposition("H-3N-1");

List<PeptidePeakGenerator<PepFragAnnotation>> peakGenerators = Lists.newArrayList();

peakGenerators.add(new BackbonePeakGenerator(ionTypes, 1));

peakGenerators.add(new PeptideNeutralLossPeakGenerator(waterLoss,
        EnumSet.of(AminoAcid.S, AminoAcid.T, AminoAcid.D, AminoAcid.E), ionTypes, 1));

peakGenerators.add(new PeptideNeutralLossPeakGenerator(ammoniumLoss,
        EnumSet.of(AminoAcid.Q, AminoAcid.K, AminoAcid.R, AminoAcid.N), ionTypes, 1));

PeptideFragmenter fragmenter = new PeptideFragmenter(peakGenerators, PeakList.Precision.DOUBLE);

Generating n-1 x 4 (2 charges + 2 ion types) fragments.


PeptideFragmenter fragmenter = new PeptideFragmenter(EnumSet.of(IonType.b, IonType.y), PeakList.Precision.DOUBLE);

Peptide peptide = Peptide.parse("GYDSPR");

// generating peptide b and y fragments with charges +1 and +2
PeptideSpectrum peptideSpectrum = fragmenter.fragment(peptide, 2);

Assert.assertEquals(20, peptideSpectrum.size());

Discussion

See also

Recipe 1.5 to learn more about Peptide.