Examples of protein calculations via com-hfg objects.

The classes in the com.hfg.bio package facilitate the calculation of various physical properties for protein or nucleotide sequences. The object hierarchy begins with Element which implements the OrganicMatter interface. Molecule then extends OrganicMatter and contains Elements. AminoAcid and Nucleotide in turn extend Molecule and they are in turn contained in Protein and NucleicAcid objects.

  1. Mass Calculation
  2. Extinction coefficient calculation
  3. Isoelectric point calculation
  4. Protein cross-link example
  5. Translation example

Example 1: Mass, chemical formula, and elemental composition

Elemental mass reference:
Coursey JS, Schwab DJ, and Dragoset RA. (2005). Atomic Weights and Isotopic Compositions (version 2.4.1). [Online] http://physics.nist.gov/PhysRefData/Compositions/ [2006-08-18]. National Institute of Standards and Technology, Gaithersburg, MD.
(Note that the value in parenthesis following the mass value is the standard uncertainty.)
Organic mass values used are from:
Zhang Z, Pan H, Chen X. (2009). "Mass spectrometry for structural characterization of therapeutic antibodies." Mass Spectrom Rev 28:147-176. doi: 10.1002/mas.20190
  1.  
  2. Protein protein = new Protein()
  3. .setID("Trypsin")
  4. .setSequence("VDDDDKIVGGYTCGANTVPYQVSLNSGYHFCGGSLINSQWVVSAAHCYKSG"
  5. + "IQVRLGEDNINVVEGNEQFISASKSIVHPSYNSNTLNNDIMLIKLKSAA"
  6. + "SLNSRVASISLPTSCASAGTQCLISGWGNTKSSGTSYPDVLKCLKAPIL"
  7. + "SDSSCKSAYPGQITSNMFCAGYLEGGKDSCQGDSGGPVVCSGKLQGIVS"
  8. + "WGSGCAQKNKPGVYTKVCNYVSWIKQTIASN");
  9. protein.setNumDisulfideBonds(6);
  10.  
  11. // Mass
  12. Assert.assertEquals(23980.65113, protein.getAverageMass(), 0.0001);
  13. Assert.assertEquals(23980.76178, protein.getOrganicAverageMass(), 0.0001);
  14. Assert.assertEquals(23965.4927994, protein.getMonoisotopicMass(), 0.00001);
  15.  
  16. // Chemical formula
  17. Assert.assertEquals("C1039H1626N286O338S14", protein.getChemicalFormula());
  18. Assert.assertEquals("C₁₀₃₉H₁₆₂₆N₂₈₆O₃₃₈S₁₄", protein.getChemicalFormulaWithSubscripts());
  19.  
  20. // Elemental composition
  21. Assert.assertEquals(1626, protein.getElementalComposition(ProteinAnalysisMode.NATIVE).get(Element.HYDROGEN).intValue());
  22.  
  23. ReducedAnalysisMode reducedAnalysisMode = new ReducedAnalysisMode().setAlkylatedCysteine(AminoAcid.CYSTEINE);
  24.  
  25. Assert.assertEquals(1638, protein.getElementalComposition(reducedAnalysisMode).get(Element.HYDROGEN).intValue());
  26.  

Example 2: Molar Extinction Coefficient Calculation

Uses residue coefficents from:
  1.  
  2. // Trypsin
  3. Protein protein = new Protein();
  4. protein.setSequence("VDDDDKIVGGYTCGANTVPYQVSLNSGYHFCGGSLINSQWVVSAAHCYKSG"
  5. + "IQVRLGEDNINVVEGNEQFISASKSIVHPSYNSNTLNNDIMLIKLKSAA"
  6. + "SLNSRVASISLPTSCASAGTQCLISGWGNTKSSGTSYPDVLKCLKAPIL"
  7. + "SDSSCKSAYPGQITSNMFCAGYLEGGKDSCQGDSGGPVVCSGKLQGIVS"
  8. + "WGSGCAQKNKPGVYTKVCNYVSWIKQTIASN");
  9. protein.setNumDisulfideBonds(6);
  10.  
  11. Assert.assertEquals(37700, protein.getExtinctionCoeff());
  12. Assert.assertEquals(1.57, protein.getPercentExtinctionCoeff(), 0.01);
  13.  

Example 3: Isoelectric point (pI) calculation

Citations:
Sillero A, Ribeiro JM (1989). "Isoelectric points of proteins: theoretical determination". Analytical biochemistry. 179(2):319-325. Electrophoresis 14(10):1023-31. doi: 10.1016/0003-2697(89)90136-X
Patrickios CS, Yamasaki EN (1995). "Polypeptide amino acid composition and isoelectric point. II. Comparison between experiment and theory". Analytical biochemistry. 231(1):82-91. doi: 10.1006/abio.1995.1506
Stryer L (1995) "Biochemistry"
Gasteiger E, Hoogland C, Gattiker A, Duvaud S, Wilkins MR, Appel RD, Bairoch A (2005). "Protein Identification and Analysis Tools on the ExPASy Server" (In) John M. Walker (ed): The Proteomics Protocols Handbook, Humana Press. 571-607
Grimsley GR, Scholtz JM, Pace CN (2009). "A summary of the measured pK values of the ionizable groups in folded proteins". Protein Science. 18(1), 247-251. doi: 10.1002/pro.19
  1.  
  2. // >P02655|APOC2_HUMAN Apolipoprotein C-II precursor (Apo-CII) (ApoC-II). Residues 23-101
  3. Protein protein = new Protein();
  4. protein.setSequence("TQQPQQDEMPSPTFLTQVKESLSSYWESAKTAAQNLYE"
  5. + "KTYLPAVDEKLRDLYSKSTAAMSTYTGIFTDQVLSVLKGEE");
  6.  
  7. Assert.assertEquals(4.59f, protein.getIsoelectricPoint(KaSet.SILLERO));
  8. Assert.assertEquals(4.66f, protein.getIsoelectricPoint(KaSet.EXPASY));
  9. Assert.assertEquals(4.60f, protein.getIsoelectricPoint(KaSet.BJELLQVIST));
  10.  

Example 4: Protein cross-link example

  1.  
  2. // P01308
  3. Protein chainA = new Protein().setSequence("giveqcctsicslyqlenycn");
  4. ProteinXLink xlink = new ProteinXLink(ProteinXLinkType.DISULFIDE, chainA, 6, chainA, 11);
  5. chainA.addXLink(xlink);
  6.  
  7. Protein chainB = new Protein().setSequence("vnqhlcgshlvealylvcgergffytpkt");
  8.  
  9. Protein insulin = new Protein().setID("Insulin");
  10. insulin.addChain(chainA);
  11. insulin.addChain(chainB);
  12.  
  13. insulin.addXLink(new ProteinXLink(ProteinXLinkType.DISULFIDE, chainA, 7, chainB, 6));
  14.  
  15. insulin.addXLink(new ProteinXLink(ProteinXLinkType.DISULFIDE, chainA, 20, chainB, 18));
  16.  
  17. // No matter which chains we added the xlinks to, getXLinks() should search down
  18. // through enclosed chains and return all xlinks it finds.
  19. Assert.assertEquals(3, insulin.getXLinks().size());
  20.  

Example 5: Translation

  1.  
  2. // Proinsulin
  3. NucleicAcid na = new NucleicAcid().setID("AY899304.1")
  4. .setSequence("atggc"
  5. + "cctgtggatgcgcctcctgcccctgctggcgctgctggccctctggggacctgacccagc"
  6. + "cgcagcctttgtgaaccaacacctgtgcggctcacacctggtggaagctctctacctagt"
  7. + "gtgcggggaacgaggcttcttctacacacccaagacccgccgggaggcagaggacctgca"
  8. + "ggtggggcaggtggagctgggcgggggccctggtgcaggcagcctgcagcccttggccct"
  9. + "ggaggggtccctgcagaagcgtggcattgtggaacaatgctgtaccagcatctgctccct"
  10. + "ctaccagctggagaactactgcaac");
  11.  
  12. NucleicAcidTranslator translator = new NucleicAcidTranslator();
  13.  
  14. Protein translation = translator.translate(na, TranslationFrame.A);
  15.  
  16. Assert.assertEquals("MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN", translation.getSequence());
  17. Assert.assertEquals(TranslationFrame.A, translation.getAttribute(NucleicAcidTranslator.FRAME_ATT));

Return to Main Page