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

   Protein protein = new Protein()
             .setID("Trypsin")
             .setSequence("VDDDDKIVGGYTCGANTVPYQVSLNSGYHFCGGSLINSQWVVSAAHCYKSG"
                          + "IQVRLGEDNINVVEGNEQFISASKSIVHPSYNSNTLNNDIMLIKLKSAA"
                          + "SLNSRVASISLPTSCASAGTQCLISGWGNTKSSGTSYPDVLKCLKAPIL"
                          + "SDSSCKSAYPGQITSNMFCAGYLEGGKDSCQGDSGGPVVCSGKLQGIVS"
                          + "WGSGCAQKNKPGVYTKVCNYVSWIKQTIASN");
    
   protein.setNumDisulfideBonds(6);

   // Mass
   Assert.assertEquals(23980.65113,   protein.getAverageMass(), 0.0001);
   Assert.assertEquals(23980.76178,   protein.getOrganicAverageMass(), 0.0001);
   Assert.assertEquals(23965.4927994, protein.getMonoisotopicMass(), 0.00001);

   // Chemical formula
   Assert.assertEquals("C1039H1626N286O338S14", protein.getChemicalFormula());
   Assert.assertEquals("C₁₀₃₉H₁₆₂₆N₂₈₆O₃₃₈S₁₄", protein.getChemicalFormulaWithSubscripts());

   // Elemental composition
   Assert.assertEquals(1626, protein.getElementalComposition(ProteinAnalysisMode.NATIVE).get(Element.HYDROGEN).intValue());

   ReducedAnalysisMode reducedAnalysisMode = new ReducedAnalysisMode().setAlkylatedCysteine(AminoAcid.CYSTEINE);

   Assert.assertEquals(1638, protein.getElementalComposition(reducedAnalysisMode).get(Element.HYDROGEN).intValue());

      

Example 2: Molar Extinction Coefficient Calculation

Uses residue coefficents from:

   // Trypsin
   Protein protein = new Protein();
   protein.setSequence("VDDDDKIVGGYTCGANTVPYQVSLNSGYHFCGGSLINSQWVVSAAHCYKSG"
                       + "IQVRLGEDNINVVEGNEQFISASKSIVHPSYNSNTLNNDIMLIKLKSAA"
                       + "SLNSRVASISLPTSCASAGTQCLISGWGNTKSSGTSYPDVLKCLKAPIL"
                       + "SDSSCKSAYPGQITSNMFCAGYLEGGKDSCQGDSGGPVVCSGKLQGIVS"
                       + "WGSGCAQKNKPGVYTKVCNYVSWIKQTIASN");
   protein.setNumDisulfideBonds(6);

   Assert.assertEquals(37700, protein.getExtinctionCoeff());
   Assert.assertEquals(1.57, protein.getPercentExtinctionCoeff(), 0.01);

       

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

   // >P02655|APOC2_HUMAN Apolipoprotein C-II precursor (Apo-CII) (ApoC-II). Residues 23-101
   Protein protein = new Protein();
   protein.setSequence("TQQPQQDEMPSPTFLTQVKESLSSYWESAKTAAQNLYE"
                       + "KTYLPAVDEKLRDLYSKSTAAMSTYTGIFTDQVLSVLKGEE");

   Assert.assertEquals(4.59f, protein.getIsoelectricPoint(KaSet.SILLERO));
   Assert.assertEquals(4.66f, protein.getIsoelectricPoint(KaSet.EXPASY));
   Assert.assertEquals(4.60f, protein.getIsoelectricPoint(KaSet.BJELLQVIST));

       

Example 4: Protein cross-link example


   // P01308
   Protein chainA = new Protein().setSequence("giveqcctsicslyqlenycn");
   ProteinXLink xlink = new ProteinXLink(ProteinXLinkType.DISULFIDE, chainA, 6, chainA, 11);
   chainA.addXLink(xlink);

   Protein chainB = new Protein().setSequence("vnqhlcgshlvealylvcgergffytpkt");

   Protein insulin  = new Protein().setID("Insulin");
   insulin.addChain(chainA);
   insulin.addChain(chainB);

   insulin.addXLink(new ProteinXLink(ProteinXLinkType.DISULFIDE, chainA, 7, chainB, 6));

   insulin.addXLink(new ProteinXLink(ProteinXLinkType.DISULFIDE, chainA, 20, chainB, 18));

   // No matter which chains we added the xlinks to, getXLinks() should search down
   // through enclosed chains and return all xlinks it finds.
   Assert.assertEquals(3, insulin.getXLinks().size());

      

Example 5: Translation


   // Proinsulin
   NucleicAcid na = new NucleicAcid().setID("AY899304.1")
        .setSequence("atggc"
                     + "cctgtggatgcgcctcctgcccctgctggcgctgctggccctctggggacctgacccagc"
                     + "cgcagcctttgtgaaccaacacctgtgcggctcacacctggtggaagctctctacctagt"
                     + "gtgcggggaacgaggcttcttctacacacccaagacccgccgggaggcagaggacctgca"
                     + "ggtggggcaggtggagctgggcgggggccctggtgcaggcagcctgcagcccttggccct"
                     + "ggaggggtccctgcagaagcgtggcattgtggaacaatgctgtaccagcatctgctccct"
                     + "ctaccagctggagaactactgcaac");

   NucleicAcidTranslator translator = new NucleicAcidTranslator();

   Protein translation = translator.translate(na, TranslationFrame.A);

   Assert.assertEquals("MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN", translation.getSequence());
   Assert.assertEquals(TranslationFrame.A, translation.getAttribute(NucleicAcidTranslator.FRAME_ATT));
    
      

Return to Main Page