Build Status


The isoelectric point (pI), sometimes abbreviated to iep, is the pH at which a particular molecule or surface carries no net electrical charge.

This library is a Ruby implementation for estimating the isoelectric point of a protein.

The following Pka sets are supported

* dtaselect
* emboss
* rodwell
* wikipedia
* sillero
*Custom Pka sets are also supported


gem install bio-isoelectric_point


gem uninstall bio-isoelectric_point


require 'bio-isoelectric_point'

#create  a protein sequence amino acid object
protein_seq ="KKGFTCGELA")

#what is the protein charge at ph 14?
charge = protein_seq.charge_at(14)     #=>-2.999795857467562

#calculate the pH using dtaselect pka set and round off to 3 decimal places
isoelectric_point = protein_seq.isoelectric_point('dtaselect', 3) #=>8.219

#calculate the iep ph with a custom set
custom_pka_set = { "N_TERMINUS" => 8.1,
                   "C_TERMINUS" => 3.15,
                            "K" => 10.1,
                            "R" => 12.1,
                            "H" => 6.4,
                            "D" => 4.34,
                            "E" => 4.33,
                            "C" => 8.33,
                            "Y" => 9.5
iep_ph = protein_seq.isoelectric_point(custom_pka_set, 3) #=> 8.193

Contributing to bio-isoelectric_point

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet

  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it

  • Start a feature/bugfix branch

  • Commit and push until you are happy

  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.

  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

Copyright ©2011 George Githinji. See LICENSE.txt for more details.