[Biojava-dev] IsoelectricPointCalc bug?

Pjm pjm at sanger.ac.uk
Tue Jul 22 18:02:22 EDT 2003


I think I have found a bug in the IsoeletricPoint code. The emboss code gives 
the below sequence a value of 13 but the biojava code gives the following error;

org.biojava.bio.BioException: Illegal initial range limits.
         at org.biojava.utils.math.BinarySearch.solve (BinarySearch.java:58) 
(pc 70)
         at org.biojava.bio.proteomics.IsoelectricPointCalc.getPI 
(IsoelectricPointCalc.java:192) (pc 47)
         at org.genedb.prelim.tests.IsoelectricPointBroken.main 
(IsoelectricPointBroken.java:43) (pc 46)


I've ran this code over 1000's of peptides sequences but this one sequence 
blows it up - heres the code to generate the above message;


// This is AA seq for GeneDB_Spombe:SPCC663.04
String peptideString = "MPSHKSFRTKQKLAKAARQNRPIPQWIRLRTGNTVHYNMKRRHWRRTKLNI";

SymbolList aaSymList = null;
double isoelectricPoint;

try {
      Alphabet aa = ProteinTools.getAlphabet();
      SymbolTokenization aaToken = aa.getTokenization("token");
      aaSymList = new SimpleSymbolList(aaToken, peptideString);

      IsoelectricPointCalc iep = new IsoelectricPointCalc();
      isoelectricPoint         = (float) iep.getPI(aaSymList, true, true);

      System.out.println("isoelectricPoint for SPCC663.04 is "+isoelectricPoint);
}
catch(Exception e){
     e.printStackTrace();
     System.exit(1);
}

Does anyone know whats going on? Have I missed something obvious?

Paul Mooney



More information about the biojava-dev mailing list