Author: tlinnet Date: Wed Jun 18 10:35:42 2014 New Revision: 24073 URL: http://svn.gna.org/viewcvs/relax?rev=24073&view=rev Log: Implemented systemtest test_r1rho_kjaergaard_missing_r1, for safety check if R1 data is not loaded. The systemtest passes, so target function is safe. Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion models for Clustered analysis. Modified: branches/disp_spin_speed/test_suite/system_tests/relax_disp.py Modified: branches/disp_spin_speed/test_suite/system_tests/relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/test_suite/system_tests/relax_disp.py?rev=24073&r1=24072&r2=24073&view=diff ============================================================================== --- branches/disp_spin_speed/test_suite/system_tests/relax_disp.py (original) +++ branches/disp_spin_speed/test_suite/system_tests/relax_disp.py Wed Jun 18 10:35:42 2014 @@ -60,6 +60,7 @@ "test_m61_exp_data_to_m61", "test_r1rho_kjaergaard_auto", "test_r1rho_kjaergaard_man", + "test_r1rho_kjaergaard_missing_r1", "test_value_write_calc_rotating_frame_params_auto_analysis" ] @@ -4587,6 +4588,80 @@ self.assert_(access(result_dir_name+sep+'resultsR1'+sep+'final'+sep+'theta.out', F_OK)) + def test_r1rho_kjaergaard_missing_r1(self): + """Optimisation of the Kjaergaard et al., 2013 Off-resonance R1rho relaxation dispersion experiments using the 'DPL' model. + + This uses the data from Kjaergaard's paper at U{DOI: 10.1021/bi4001062<http://dx.doi.org/10.1021/bi4001062>}. + + This uses the automatic analysis, with missing loading R1. + + """ + + # Cluster residues + cluster_ids = [ + ":13@N", + ":15@N", + ":16@N", + ":25@N", + ":26@N", + ":28@N", + ":39@N", + ":40@N", + ":41@N", + ":43@N", + ":44@N", + ":45@N", + ":49@N", + ":52@N", + ":53@N"] + + # Load the data. + self.setup_r1rho_kjaergaard(cluster_ids=cluster_ids, read_R1=False) + + # The dispersion models. + MODELS = ['R2eff', 'DPL94'] + + # The grid search size (the number of increments per dimension). + GRID_INC = 4 + + # The number of Monte Carlo simulations to be used for error analysis at the end of the analysis. + MC_NUM = 3 + + # Model selection technique. + MODSEL = 'AIC' + + # Execute the auto-analysis (fast). + # Standard parameters are: func_tol=1e-25, grad_tol=None, max_iter=10000000, + OPT_FUNC_TOL = 1e-1 + relax_disp.Relax_disp.opt_func_tol = OPT_FUNC_TOL + OPT_MAX_ITERATIONS = 1000 + relax_disp.Relax_disp.opt_max_iterations = OPT_MAX_ITERATIONS + + result_dir_name = ds.tmpdir + + # Make all spins free + for curspin in cluster_ids: + self.interpreter.relax_disp.cluster('free spins', curspin) + # Shut them down + self.interpreter.deselect.spin(spin_id=curspin, change_all=False) + + # Select only a subset of spins for global fitting + #self.interpreter.select.spin(spin_id=':41@N', change_all=False) + #self.interpreter.relax_disp.cluster('model_cluster', ':41@N') + + #self.interpreter.select.spin(spin_id=':40@N', change_all=False) + #self.interpreter.relax_disp.cluster('model_cluster', ':40@N') + + self.interpreter.select.spin(spin_id=':52@N', change_all=False) + #self.interpreter.relax_disp.cluster('model_cluster', ':52@N') + + # Run the analysis. + relax_disp.Relax_disp(pipe_name=ds.pipe_name, pipe_bundle=ds.pipe_bundle, results_dir=result_dir_name, models=MODELS, grid_inc=GRID_INC, mc_sim_num=MC_NUM, modsel=MODSEL) + + # Check the kex value of residue 52 + #self.assertAlmostEqual(cdp.mol[0].res[41].spin[0].kex, ds.ref[':52@N'][6]) + + def test_r2eff_read(self): """Test the operation of the relax_disp.r2eff_read user function."""