File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -552,9 +552,15 @@ def formal_charge(particle_name):
552552 raise ValueError (f"Unknown acidity '{ acidity } ' for particle '{ particle } '" )
553553 if "pka_values" in entry :
554554 pka_list = entry ["pka_values" ]
555+ n = len (pka_list )
556+ cumsum_pK = np .cumsum (pka_list )
557+ terms = [10.0 ** (- cumsum_pK [i ] + (i + 1 ) * pH ) for i in range (n )]
558+ denominator = 1.0 + sum (terms )
559+ numerator = sum ((i + 1 ) * terms [i ] for i in range (n ))
560+ charge = psi * numerator / denominator
555561 else :
556- pka_list = [ entry ["pka_value" ] ]
557- charge = sum ( psi / (1.0 + 10.0 ** (psi * (pH - pka ))) for pka in pka_list )
562+ pka = entry ["pka_value" ]
563+ charge = psi / (1.0 + 10.0 ** (psi * (pH - pka )))
558564 Z += multiplicity * charge
559565 else :
560566 Z += multiplicity * formal_charge (particle )
You can’t perform that action at this time.
0 commit comments