示例#1
0
    def func(self, r=None, csa=None, r1=None, r2=None, noe=None):
        """Function for calculating the three spectal density values.

        Three values are returned, J(0), J(wX), and J(wH) (or J(0.87wH)).
        """

        # Calculate the fixed component of the dipolar and CSA constants.
        calc_fixed_dip(self.data)
        calc_fixed_csa(self.data)

        # Calculate the dipolar and CSA constants.
        comp_dip_const_func(self.data, r)
        comp_csa_const_func(self.data, csa)

        # Rename the dipolar and CSA constants.
        d = self.data.dip_const_func
        c = self.data.csa_const_func[0]

        # Calculate the sigma NOE value.
        sigma_noe = self.calc_sigma_noe(noe, r1)

        # Calculate J(0).
        j0 = -1.5 / (3.0*d + c) * (0.5*r1 - r2 + 0.6*sigma_noe)

        # Calculate J(wX).
        jwx = 1.0 / (3.0*d + c) * (r1 - 1.4*sigma_noe)

        # Calculate J(wH).
        jwh = sigma_noe / (5.0*d)

        # Return the three values.
        return j0, jwx, jwh
示例#2
0
    def func(self, orientation=None, tc=None, r=None, csa=None, r1=None, r2=None, noe=None):
        """Function for calculating the three consistency testing values.

        Three values are returned, J(0), F_eta and F_R2.
        """

        # Calculate the fixed component of the dipolar and CSA constants.
        calc_fixed_dip(self.data)
        calc_fixed_csa(self.data)

        # Calculate the dipolar and CSA constants.
        comp_dip_const_func(self.data, r)
        comp_csa_const_func(self.data, csa)

        # Rename the dipolar and CSA constants.
        d = self.data.dip_const_func
        c = self.data.csa_const_func[0]

        # Calculate the sigma NOE value.
        sigma_noe = self.calc_sigma_noe(noe, r1)

        # Calculate J(0).
        j0 = -1.5 / (3.0 * d + c) * (0.5 * r1 - r2 + 0.6 * sigma_noe)

        # Calculate J(wX).
        jwx = 1.0 / (3.0 * d + c) * (r1 - 1.4 * sigma_noe)

        # Calculate P_2.
        # p_2 is a second rank Legendre polynomial as p_2(x) = 0.5 * (3 * (x ** 2) -1)
        # where x is the cosine of the angle Theta when expressed in radians.
        #
        # Note that the angle Theta (called 'orientation' in relax) is the angle between the 15N-1H
        # vector and the principal axis of the 15N chemical shift tensor.
        p_2 = 0.5 * ((3.0 * (cos(orientation * pi / 180)) ** 2) - 1)

        # Calculate eta.
        # eta is the cross-correlation rate between 15N CSA and 15N-1H dipolar interaction. It is
        # expressed here as proposed in Fushman & Cowburn (1998) JACS, 120: 7109-7110.
        eta = ((d * c / 3.0) ** 0.5) * (4.0 * j0 + 3.0 * jwx) * p_2

        # Calculate F_eta.
        # F_eta is independent of the magnetic field for residues with local mobility
        f_eta = (
            eta * self.data.gh / (self.data.frq_list[0, 3] * (4.0 + 3.0 / (1 + (self.data.frq_list[0, 1] * tc) ** 2)))
        )

        # Calculate P_HF.
        # P_HF is the contribution to R2 from high frequency motions.
        # P_HF = 0.5 * d * [J(wH-wN) + 6 * J(wH) + 6 * J(wH+wN)].
        # Here, P_HF is described using a reduced spectral density approach.
        p_hf = 1.3 * (self.data.gx / self.data.gh) * (1.0 - noe) * r1

        # Calculate F_R2.
        # F_R2 tests the consistency of the transverse relaxation data.
        f_r2 = (r2 - p_hf) / ((4.0 + 3.0 / (1 + (self.data.frq_list[0, 1] * tc) ** 2)) * (d + c / 3.0))

        # Return the three values.
        return j0, f_eta, f_r2