Method: #calc_PI
- Defined in:
- lib/ms/isoelectric_calc.rb
#calc_PI(pep_charges) ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/ms/isoelectric_calc.rb', line 85 def calc_PI(pep_charges) pH = 8; pH_prev = 0.0; pH_next = 14.0 charge = charge_at_pH(pep_charges, pH) while pH-pH_prev > Precision and pH_next-pH > Precision if charge < 0.0 tmp = pH pH = pH - ((pH-pH_prev)/2) charge = charge_at_pH(pep_charges, pH) pH_next = tmp else tmp = pH pH = pH + ((pH_next - pH)/2) charge = charge_at_pH(pep_charges, pH) pH_prev = tmp end # puts "charge: #{charge.round(2)}\tpH: #{pH.round(2)}\tpH_next: #{pH_next.round(2)}\tpH_prev: #{pH_prev.round(2)}" end pH end |