Proteome Informatics Group > Java Proteomic Library
 

Recipe 2.4. Adding modifications in polypeptide

Problem

You want to add modifications on peptides.

Solution

You need a manager to add modifications on peptides:

// a simple peptide (peptide type by default)
Peptide peptide = 
	new Peptide.Builder("MQRSTATGCFKL").build();

// get the modif manager
ModifContainerManager modifManager =
	ModifContainerManager.getInstance();

// add modifications
modifManager.addModifAt(peptide, ModificationFactory.valueOf(134), 5);
modifManager.addCtModif(peptide, ModificationFactory.valueOf(16));

Assert.assertEquals("H_MQRSTA({134.00})TGCFKL_HO({16.00})", peptide.toString());

As some amino-acids are ionizable as some modifications:

import org.expasy.jpl.core.mol.modif.*;

// a new ionizable modification
IonizableModification phospho = 
	IonizableModification.newInstance(
		ModificationFactory.withLabel("phosphorylation", ChemicalFacade.getMolecule("H2PO3")),
		    new IonizableGroup.Builder(7.21, NeutralMoleculeType.ACID)
		    	.addPKa(12.67).build());
		
// a simple peptide
Peptide peptide = new Peptide.Builder("QEAYEGK").build();
	
// the modif manager	
ModifContainerManager manager =
	ModifContainerManager.getInstance();

// add ionizable modif	
manager.addModifAt(peptide, phospho, 3);

// toString() modif format
// 1. default display is contextual (phospho is based on a formula):
//  => "H_QEAY(H2O3P)EGK_HO"
System.out.println(peptide);

// 2a. format can be defined at building time:
peptide =
	new Peptide.Builder("QEAYEGK").doubleDisplayPrecision(2)
		.forceModifDoubleDisplay().build();

// 2b. ... or after building peptide:
peptide.setModifFormatDisplay(new ModifFormat.Builder().decimal(2)
	.format(Format.DOUBLE).build());

// add ionizable modif	
manager.addModifAt(peptide, phospho, 3);

//  => "H_QEAY({80.97})EGK_HO"
System.out.println(peptide);

// display "partial charge at pH 7 = -1.6189328858092091"
System.out.println("partial charge at pH 7 = "+
	+ BioPolymerUtils.getPartialCharges(peptide, 7));

Discussion

See Also

See also this recipe to create a modified peptide at building time or this one to create modifications.