Package functions :: Module ri_prime
[hide private]
[frames] | no frames]

Source Code for Module functions.ri_prime

  1  from Numeric import Float64, zeros 
  2  from re import match 
  3   
4 -class Ri_prime:
5 - def __init__(self):
6 "Function for back calculating the transformed relaxation values R1, R2, and sigma_noe."
7 8
9 - def Ri_prime(self):
10 """Function for back calculation of the transformed relaxation values R1, R2, and sigma_noe. 11 12 The transformed relaxation equations 13 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 14 15 Data structure: self.data.ri_prime 16 Dimension: 1D, (transformed relaxation data) 17 Type: Numeric array, Float64 18 Dependencies: self.data.jw 19 Required by: self.data.ri, self.data.dri, self.data.d2ri 20 21 22 Formulae 23 ~~~~~~~~ 24 25 Components 26 ~~~~~~~~~~ 27 1 / mu0 \ 2 (gH.gN.h_bar)**2 28 d = - . | ---- | . ---------------- 29 4 \ 4.pi / <r**6> 30 31 (wN.csa)**2 32 c = ----------- 33 3 34 35 J_R1_d = J(wH-wN) + 3J(wN) + 6J(wH+wN) 36 37 J_R1_c = J(wN) 38 39 J_R2_d = 4J(0) + J(wH-wN) + 3J(wN) + 6J(wH) + 6J(wH+wN) 40 41 J_R2_c = 4J(0) + 3J(wN) 42 43 J_sigma_noe = 6J(wH+wN) - J(wH-wN) 44 45 46 Relaxation equations 47 ~~~~~~~~~~~~~~~~~~~~ 48 49 R1() = d . J_R1_d + c . J_R1_c 50 51 52 d c 53 R2() = - . J_R2_d + - . J_R2_c + Rex 54 2 6 55 56 57 sigma_noe() = d . J_sigma_noe 58 59 """ 60 61 # Calculate the spectral density values. 62 self.Jw() 63 64 # Initialise the components of the transformed relaxation equations. 65 self.data.dip_comps = zeros((self.mf.data.num_ri), Float64) 66 self.data.j_dip_comps = zeros((self.mf.data.num_ri), Float64) 67 self.data.csa_comps = zeros((self.mf.data.num_ri), Float64) 68 self.data.j_csa_comps = zeros((self.mf.data.num_ri), Float64) 69 if match('m[34]', self.data.model): 70 self.data.rex_comps = zeros((self.mf.data.num_ri), Float64) 71 72 # Calculate the components of the transformed relaxation equations. 73 for i in range(self.mf.data.num_ri): 74 frq_num = self.mf.data.remap_table[i] 75 76 # R1 components. 77 if self.mf.data.data_types[i] == 'R1': 78 self.data.dip_comps[i] = self.mf.data.dipole_const 79 self.data.j_dip_comps[i] = self.data.jw[frq_num, 2] + 3.0*self.data.jw[frq_num, 1] + 6.0*self.data.jw[frq_num, 4] 80 self.data.csa_comps[i] = self.mf.data.csa_const[frq_num] 81 self.data.j_csa_comps[i] = self.data.jw[frq_num, 1] 82 83 # R2 components. 84 elif self.mf.data.data_types[i] == 'R2': 85 self.data.dip_comps[i] = self.mf.data.dipole_const / 2.0 86 self.data.j_dip_comps[i] = 4.0*self.data.jw[frq_num, 0] + self.data.jw[frq_num, 2] + 3.0*self.data.jw[frq_num, 1] + 6.0*self.data.jw[frq_num, 3] + 6.0*self.data.jw[frq_num, 4] 87 self.data.csa_comps[i] = self.mf.data.csa_const[frq_num] / 6.0 88 self.data.j_csa_comps[i] = 4.0*self.data.jw[frq_num, 0] + 3.0*self.data.jw[frq_num, 1] 89 if self.data.model == 'm3': 90 self.data.rex_comps[i] = self.data.params[1] * (1e-8 * self.mf.data.frq[frq_num])**2 91 elif self.data.model == 'm4': 92 self.data.rex_comps[i] = self.data.params[2] * (1e-8 * self.mf.data.frq[frq_num])**2 93 94 # sigma_noe components. 95 elif self.mf.data.data_types[i] == 'NOE': 96 self.data.dip_comps[i] = self.mf.data.dipole_const 97 self.data.j_dip_comps[i] = 6.0*self.data.jw[frq_num, 4] - self.data.jw[frq_num, 2] 98 99 # Initialise the transformed relaxation values. 100 self.data.ri_prime = zeros((self.mf.data.num_ri), Float64) 101 102 # Calculate the transformed relaxation values. 103 if match('m[34]', self.data.model): 104 self.data.ri_prime = self.data.dip_comps * self.data.j_dip_comps + self.data.csa_comps * self.data.j_csa_comps + self.data.rex_comps 105 else: 106 self.data.ri_prime = self.data.dip_comps * self.data.j_dip_comps + self.data.csa_comps * self.data.j_csa_comps
107