The offset is handled exactly in the same way as for the R1rho data - the theory is identical (http://thread.gmane.org/gmane.science.nmr.relax.scm/22521/focus=6564). However we don't have a model for this yet (http://thread.gmane.org/gmane.science.nmr.relax.scm/22521/focus=6563). And the user function for the pi pulse parameters is missing. Therefore there is not much point setting up such a test yet.
Cheers, Edward On 31 July 2014 12:12, Troels Emtekær Linnet <[email protected]> wrote: > Hi Edward. > > I added the systemtest, but I am about to delete it again. > > I am not sure how to handle "offset" data for CPMG experiments. > > I am thinking that I will rather test in > specific_analyses/relax_disp/data.py plot_disp_curves() > > to see if it is a CPMG model, raise a warning, and pass out of the > function without doing anything. > > What do you think? > > Best > Troels > > 2014-07-31 9:43 GMT+02:00 Edward d'Auvergne <[email protected]>: >> Hi Troels, >> >> Is the text file checking temporarily commented out in this test? >> >> Cheers, >> >> Edward >> >> >> On 30 July 2014 23:43, <[email protected]> wrote: >>> Author: tlinnet >>> Date: Wed Jul 30 23:43:22 2014 >>> New Revision: 24865 >>> >>> URL: http://svn.gna.org/viewcvs/relax?rev=24865&view=rev >>> Log: >>> Added systemtest Relax_disp.test_kteilum_fmpoulsen_makke_check_graphs() to >>> check all possible combinations of dispersion plotting. >>> >>> sr #3124(https://gna.org/support/?3124): Grace graphs production for R1rho >>> analysis with R2_eff as function of Omega_eff. >>> sr #3138(https://gna.org/support/?3138): Interpolating theta through >>> spin-lock offset [Omega], rather than spin-lock field strength [w1]. >>> >>> Modified: >>> branches/r1rho_plotting/test_suite/system_tests/relax_disp.py >>> >>> Modified: branches/r1rho_plotting/test_suite/system_tests/relax_disp.py >>> URL: >>> http://svn.gna.org/viewcvs/relax/branches/r1rho_plotting/test_suite/system_tests/relax_disp.py?rev=24865&r1=24864&r2=24865&view=diff >>> ============================================================================== >>> --- branches/r1rho_plotting/test_suite/system_tests/relax_disp.py >>> (original) >>> +++ branches/r1rho_plotting/test_suite/system_tests/relax_disp.py Wed >>> Jul 30 23:43:22 2014 >>> @@ -4108,6 +4108,114 @@ >>> self.assertAlmostEqual(spin.chi2/1000, 162.511988511609/1000, 3) >>> >>> >>> + def test_kteilum_fmpoulsen_makke_check_graphs(self): >>> + """Check of all possible dispersion graphs from optimisation of >>> Kaare Teilum, Flemming M Poulsen, Mikael Akke 2006 "acyl-CoA binding >>> protein" CPMG data to the CR72 dispersion model. >>> + >>> + This uses the data from paper at >>> U{http://dx.doi.org/10.1073/pnas.0509100103}. This is CPMG data with a >>> fixed relaxation time period. Experiment in 0.48 M GuHCl (guanidine >>> hydrochloride). >>> + >>> + Figure 3 shows the ln( k_a [s^-1]) for different concentrations of >>> GuHCl. The precise values are: >>> + >>> + - [GuHCL][M] ln(k_a[s^-1]) k_a[s^-1] >>> + - 0.483 0.89623903 2.4503699912708878 >>> + - 0.545 1.1694838 >>> + - 0.545 1.1761503 >>> + - 0.622 1.294 >>> + - 0.669 1.5176493 >>> + - 0.722 1.6238791 >>> + - 0.813 1.9395758 >>> + - 1.011 2.3558415 10.547000429321157 >>> + """ >>> + >>> + # Base data setup. >>> + model = 'TSMFK01' >>> + expfolder = "acbp_cpmg_disp_048MGuHCl_40C_041223" >>> + self.setup_kteilum_fmpoulsen_makke_cpmg_data(model=model, >>> expfolder=expfolder) >>> + >>> + # Alias the spins. >>> + res61L = cdp.mol[0].res[0].spin[0] >>> + >>> + # The R20 keys. >>> + r20_key1 = generate_r20_key(exp_type=EXP_TYPE_CPMG_SQ, >>> frq=599.89086220e6) >>> + >>> + # Set the initial parameter values. >>> + res61L.r2a = {r20_key1: 8.0} >>> + res61L.dw = 6.5 >>> + res61L.k_AB = 2.5 >>> + >>> + # Low precision optimisation. >>> + self.interpreter.minimise(min_algor='simplex', line_search=None, >>> hessian_mod=None, hessian_type=None, func_tol=1e-05, grad_tol=None, >>> max_iter=1000, constraints=True, scaling=True, verbosity=1) >>> + >>> + # Start testing all possible combinations of graphs. >>> + y_axis_types = [Y_AXIS_R2_EFF, Y_AXIS_R2_R1RHO] >>> + x_axis_types = [X_AXIS_DISP, X_AXIS_THETA, X_AXIS_W_EFF] >>> + interpolate_types = [INTERPOLATE_DISP, INTERPOLATE_OFFSET] >>> + >>> + # Write to temp folder. >>> + result_dir_name = ds.tmpdir >>> + result_folders = [model] >>> + spin_id = ":61@N" >>> + >>> + # Loop through all possible combinations of y_axis, x_axis and >>> interpolation. >>> + data_path = status.install_path + >>> sep+'test_suite'+sep+'shared_data'+sep+'dispersion'+sep+'KTeilum_FMPoulsen_MAkke_2006'+sep+expfolder+sep+'check_graphs' >>> + >>> + for result_folder in result_folders: >>> + # Initial counter per graph, per model. >>> + i = 1 >>> + for y_axis in y_axis_types: >>> + for x_axis in x_axis_types: >>> + for interpolate in interpolate_types: >>> + # Determine file name: >>> + file_name_ini = >>> return_grace_file_name_ini(y_axis=y_axis, x_axis=x_axis, >>> interpolate=interpolate) >>> + >>> + # Make the file name. >>> + file_name = "%s%s.agr" % (file_name_ini, >>> spin_id.replace('#', '_').replace(':', '_').replace('@', '_')) >>> + >>> + # Set result folder. >>> + dir_folder = "%i"%(i) >>> + >>> + # Write the curves. >>> + dir = >>> result_dir_name+sep+result_folder+sep+dir_folder >>> + print("Plotting combination of %s, %s, >>> %s"%(y_axis, x_axis, interpolate)) >>> + >>> self.interpreter.relax_disp.plot_disp_curves(dir=dir, y_axis=y_axis, >>> x_axis=x_axis, interpolate=interpolate, force=True) >>> + >>> + # Get the file path. >>> + file_path = get_file_path(file_name, dir) >>> + >>> + # Test the plot file exists. >>> + print("Testing file access to graph: %s"%file_path) >>> + self.assert_(access(file_path, F_OK)) >>> + >>> + # Now open, and compare content, line by line. >>> + file_prod = open(file_path) >>> + lines_prod = file_prod.readlines() >>> + file_prod.close() >>> + >>> + # Define file to compare against. >>> + #dir_comp = >>> data_path+sep+result_folder+sep+dir_folder >>> + #file_path_comp = get_file_path(file_name, >>> dir_comp) >>> + #file_comp = open(file_path_comp) >>> + #lines_comp = file_comp.readlines() >>> + #file_comp.close() >>> + >>> + ## Assert number of lines is equal. >>> + #self.assertEqual(len(lines_prod), len(lines_comp)) >>> + #for j in range(len(lines_prod)): >>> + # # Make the string test >>> + # first_char = lines_prod[j][0] >>> + # if first_char in ["@", "&"]: >>> + # self.assertEqual(lines_prod[j], >>> lines_comp[j]) >>> + # else: >>> + # # Split string in x, y, error. >>> + # # The error would change per run. >>> + # x_prod, y_prod, y_prod_err = >>> lines_prod[j].split() >>> + # x_comp, y_comp, y_comp_err = >>> lines_comp[j].split() >>> + # self.assertAlmostEqual(float(x_prod), >>> float(x_comp)) >>> + # self.assertAlmostEqual(float(y_prod), >>> float(y_comp)) >>> + >>> + # Add to counter. >>> + i += 1 >>> + >>> + >>> def test_kteilum_fmpoulsen_makke_cpmg_data_048m_guhcl_to_cr72(self): >>> """Optimisation of Kaare Teilum, Flemming M Poulsen, Mikael Akke >>> 2006 "acyl-CoA binding protein" CPMG data to the CR72 dispersion model. >>> >>> >>> >>> _______________________________________________ >>> relax (http://www.nmr-relax.com) >>> >>> This is the relax-commits mailing list >>> [email protected] >>> >>> To unsubscribe from this list, get a password >>> reminder, or change your subscription options, >>> visit the list information page at >>> https://mail.gna.org/listinfo/relax-commits >> >> _______________________________________________ >> relax (http://www.nmr-relax.com) >> >> This is the relax-devel mailing list >> [email protected] >> >> To unsubscribe from this list, get a password >> reminder, or change your subscription options, >> visit the list information page at >> https://mail.gna.org/listinfo/relax-devel _______________________________________________ relax (http://www.nmr-relax.com) This is the relax-devel mailing list [email protected] To unsubscribe from this list, get a password reminder, or change your subscription options, visit the list information page at https://mail.gna.org/listinfo/relax-devel

