예제 #1
0
    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
예제 #2
0
    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))
예제 #3
0
    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))
예제 #4
0
    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))
예제 #5
0
 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