def _dG0_prime_vector(self, pH, I, T): """ Calculates the difference in kJ/mol between dG'0 and the dG0 of the MS with the least hydrogens (dG0[0]) Returns: dG'0 - dG0[0] """ if self.inchi is None: return 0 elif self.pKas == []: dG0s = np.zeros((1, 1)) else: dG0s = -np.cumsum([0] + self.pKas) * R * T * np.log(10) dG0s = dG0s DH = debye_huckel((I, T)) # dG0' = dG0 + nH * (R T ln(10) pH + DH) - charge^2 * DH pseudoisomers = np.vstack( [dG0s, np.array(self.nHs), np.array(self.zs)]).T dG0_prime_vector = pseudoisomers[:, 0] + \ pseudoisomers[:, 1] * (R * T * np.log(10) * pH + DH) - \ pseudoisomers[:, 2]**2 * DH return dG0_prime_vector
def transform(self, pH, I, T): if self.inchi is None: return 0 elif self.pKas == []: dG0s = np.zeros((1, 1)) else: dG0s = -np.cumsum([0] + self.pKas) * R * T * np.log(10) dG0s = dG0s - dG0s[self.majorMSpH7] DH = debye_huckel((I, T)) # dG0' = dG0 + nH * (R T ln(10) pH + DH) - charge^2 * DH pseudoisomers = np.vstack([dG0s, np.array(self.nHs), np.array(self.zs)]).T dG0_prime_vector = pseudoisomers[:, 0] + \ pseudoisomers[:, 1] * (R * T * np.log(10) * pH + DH) - \ pseudoisomers[:, 2]**2 * DH return -R * T * logsumexp(dG0_prime_vector / (-R * T))
def transform(self, pH, I, T): if self.inchi is None: return 0 elif self.pKas == []: dG0s = np.zeros((1, 1)) else: dG0s = -np.cumsum([0] + self.pKas) * R * T * np.log(10) dG0s = dG0s - dG0s[self.majorMSpH7] DH = debye_huckel((I, T)) # dG0' = dG0 + nH * (R T ln(10) pH + DH) - charge^2 * DH pseudoisomers = np.vstack( [dG0s, np.array(self.nHs), np.array(self.zs)]).T dG0_prime_vector = pseudoisomers[:, 0] + \ pseudoisomers[:, 1] * (R * T * np.log(10) * pH + DH) - \ pseudoisomers[:, 2]**2 * DH return -R * T * logsumexp(dG0_prime_vector / (-R * T))
def _transform(self, pH, I, T): """ Returns the difference between the dG0 of microspecies with the least hydrogens and the transformed dG0' (in kJ/mol) """ if self.inchi is None: return 0 elif self.pKas == []: dG0s = np.zeros((1, 1)) else: dG0s = -np.cumsum([0] + self.pKas) * R * T * np.log(10) dG0s = dG0s DH = debye_huckel((I, T)) # dG0' = dG0 + nH * (R T ln(10) pH + DH) - charge^2 * DH pseudoisomers = np.vstack([dG0s, np.array(self.nHs), np.array(self.zs)]).T dG0_prime_vector = pseudoisomers[:, 0] + \ pseudoisomers[:, 1] * (R * T * np.log(10) * pH + DH) - \ pseudoisomers[:, 2]**2 * DH return -R * T * logsumexp(dG0_prime_vector / (-R * T))
def _dG0_prime_vector(self, pH, I, T): """ Calculates the difference in kJ/mol between dG'0 and the dG0 of the MS with the least hydrogens (dG0[0]) Returns: dG'0 - dG0[0] """ if self.inchi is None: return 0 elif self.pKas == []: dG0s = np.zeros((1, 1)) else: dG0s = -np.cumsum([0] + self.pKas) * R * T * np.log(10) dG0s = dG0s DH = debye_huckel((I, T)) # dG0' = dG0 + nH * (R T ln(10) pH + DH) - charge^2 * DH pseudoisomers = np.vstack([dG0s, np.array(self.nHs), np.array(self.zs)]).T dG0_prime_vector = pseudoisomers[:, 0] + \ pseudoisomers[:, 1] * (R * T * np.log(10) * pH + DH) - \ pseudoisomers[:, 2]**2 * DH return dG0_prime_vector