Allright.

You are handling my improper writing of English.
That must be a tough job...

I can only say, that I will really try to do this better.

Maybe I should re-read:
http://www.nmr-relax.com/manual/Format_commit_logs.html
http://wiki.nmr-relax.com/Format_commit_logs

Best
Troels

2014-05-22 9:43 GMT+02:00 Edward d'Auvergne <[email protected]>:
> Hi Troels,
>
> Just for reference, this is how I would change your commit message for
> the release documentation, as this can make my life easier if you do
> this for me ;)  I didn't do this for all your commits in the last
> message for relax 3.2.0
> (https://gna.org/forum/forum.php?forum_id=2461) because there were far
> too many to handle :)  Anyway, the main changes are to convert each
> line into a proper sentence structure for reading:
>
>
>> Implemented systemtest Relax_disp.test_cpmg_synthetic_ns3d_to_b14.
>
> Implemented the Relax_disp.test_cpmg_synthetic_ns3d_to_b14 system test.
>
>
>> bug #22021: (https://gna.org/bugs/?22021) Model B14 shows bad fitting to 
>> data.
>
> Bug #22021 (https://gna.org/bugs/?22021), model B14 shows bad fitting to data.
>
>
>> This is to catch model B14 showing bad fitting behaviour.
>
> No change required :)
>
> Cheers,
>
> Edward
>
>
>
>
> On 21 May 2014 20:36,  <[email protected]> wrote:
>> Author: tlinnet
>> Date: Wed May 21 20:36:33 2014
>> New Revision: 23315
>>
>> URL: http://svn.gna.org/viewcvs/relax?rev=23315&view=rev
>> Log:
>> Implemented systemtest Relax_disp.test_cpmg_synthetic_ns3d_to_b14.
>>
>> bug #22021: (https://gna.org/bugs/?22021) Model B14 shows bad fitting to 
>> data.
>>
>> This is to catch model B14 showing bad fitting behaviour.
>>
>> Modified:
>>     trunk/test_suite/system_tests/relax_disp.py
>>
>> Modified: trunk/test_suite/system_tests/relax_disp.py
>> URL: 
>> http://svn.gna.org/viewcvs/relax/trunk/test_suite/system_tests/relax_disp.py?rev=23315&r1=23314&r2=23315&view=diff
>> ==============================================================================
>> --- trunk/test_suite/system_tests/relax_disp.py (original)
>> +++ trunk/test_suite/system_tests/relax_disp.py Wed May 21 20:36:33 2014
>> @@ -1091,6 +1091,145 @@
>>                          self.assertAlmostEqual(set_val/1000, min_val/1000, 
>> 1)
>>                      elif mo_param == 'pA':
>>                          self.assertAlmostEqual(set_val, min_val, 3)
>> +
>> +
>> +    def test_cpmg_synthetic_ns3d_to_b14(self):
>> +        """Test synthetic cpmg data.
>> +
>> +        This script will produce synthetic CPMG R2eff values according to 
>> the NS CPMG 2-site 3D model, and the fit the data with B14.
>> +        Try to catch bug #22021 U{https://gna.org/bugs/index.php?22021}: 
>> Model B14 shows bad fitting to data.
>> +        """
>> +
>> +        # Reset.
>> +        #self.interpreter.reset()
>> +
>> +        ## Set Experiments.
>> +        model_create = 'NS CPMG 2-site 3D'
>> +        #model_create = 'NS CPMG 2-site expanded'
>> +        model_analyse = 'B14'
>> +        # Exp 1
>> +        sfrq_1 = 599.8908617*1E6
>> +        r20_key_1 = generate_r20_key(exp_type=EXP_TYPE_CPMG_SQ, frq=sfrq_1)
>> +        time_T2_1 = 0.06
>> +        ncycs_1 = [2, 4, 8, 10, 20, 30, 40, 60]
>> +        r2eff_err_1 = [0, 0, 0, 0, 0, 0, 0, 0]
>> +        exp_1 = [sfrq_1, time_T2_1, ncycs_1, r2eff_err_1]
>> +
>> +        sfrq_2 = 499.8908617*1E6
>> +        r20_key_2 = generate_r20_key(exp_type=EXP_TYPE_CPMG_SQ, frq=sfrq_2)
>> +        time_T2_2 = 0.05
>> +        ncycs_2 = [2, 4, 8, 10, 30, 35, 40, 50]
>> +        r2eff_err_2 = [0, 0, 0, 0, 0, 0, 0, 0]
>> +        exp_2 = [sfrq_2, time_T2_2, ncycs_2, r2eff_err_2]
>> +
>> +        # Collect all exps
>> +        exps = [exp_1, exp_2]
>> +
>> +        spins = [
>> +            ['Ala', 1, 'N', {'r2': {r20_key_1:10., r20_key_2:10.}, 'r2a': 
>> {r20_key_1:10., r20_key_2:10.}, 'r2b': {r20_key_1:10., r20_key_2:10.}, 
>> 'kex': 1000., 'pA': 0.99, 'dw': 2.} ]
>> +            ]
>> +
>> +        # Collect the data to be used.
>> +        ds.data = [model_create, model_analyse, spins, exps]
>> +
>> +        # The tmp directory. None is the local directory.
>> +        ds.tmpdir = ds.tmpdir
>> +
>> +        # The results directory. None is the local directory.
>> +        #ds.resdir = None
>> +        ds.resdir = ds.tmpdir
>> +
>> +        # Do set_grid_r20_from_min_r2eff ?.
>> +        ds.set_grid_r20_from_min_r2eff = True
>> +
>> +        # Remove insignificant level.
>> +        ds.insignificance = 0.0
>> +
>> +        # The grid search size (the number of increments per dimension).
>> +        ds.GRID_INC = 8
>> +
>> +        # The do clustering.
>> +        ds.do_cluster = False
>> +
>> +        # The function tolerance.  This is used to terminate minimisation 
>> once the function value between iterations is less than the tolerance.
>> +        # The default value is 1e-25.
>> +        ds.set_func_tol = 1e-9
>> +
>> +        # The maximum number of iterations.
>> +        # The default value is 1e7.
>> +        ds.set_max_iter = 1000
>> +
>> +        # The verbosity level.
>> +        ds.verbosity = 1
>> +
>> +        # The rel_change WARNING level.
>> +        ds.rel_change = 0.05
>> +
>> +        # The plot_curves.
>> +        ds.plot_curves = False
>> +
>> +        # The conversion for ShereKhan at http://sherekhan.bionmr.org/.
>> +        ds.sherekhan_input = False
>> +
>> +        # Make a dx map to be opened om OpenDX. To map the hypersurface of 
>> chi2, when altering kex, dw and pA.
>> +        ds.opendx = False
>> +
>> +        # The set r2eff err.
>> +        ds.r2eff_err = 0.1
>> +
>> +        # The print result info.
>> +        ds.print_res = False
>> +
>> +        # Execute the script.
>> +        self.interpreter.run(script_file=status.install_path + 
>> sep+'test_suite'+sep+'system_tests'+sep+'scripts'+sep+'relax_disp'+sep+'cpmg_synthetic.py')
>> +
>> +        cur_spins = ds.data[2]
>> +        # Compare results.
>> +        for i in range(len(cur_spins)):
>> +            res_name, res_num, spin_name, params = cur_spins[i]
>> +            cur_spin_id = ":%i@%s"%(res_num, spin_name)
>> +            cur_spin = return_spin(cur_spin_id)
>> +
>> +            grid_params = ds.grid_results[i][3]
>> +            min_params = ds.min_results[i][3]
>> +            # Now read the parameters.
>> +            print("For spin: '%s'"%cur_spin_id)
>> +            for mo_param in cur_spin.params:
>> +                # The R2 is a dictionary, depending on spectrometer 
>> frequency.
>> +                if isinstance(getattr(cur_spin, mo_param), dict):
>> +                    grid_r2 = grid_params[mo_param]
>> +                    min_r2 = min_params[mo_param]
>> +                    set_r2 = params[mo_param]
>> +                    for key, val in set_r2.items():
>> +                        grid_r2_frq = grid_r2[key]
>> +                        min_r2_frq = min_r2[key]
>> +                        set_r2_frq = set_r2[key]
>> +                        frq = float(key.split(EXP_TYPE_CPMG_SQ+' - 
>> ')[-1].split('MHz')[0])
>> +                        rel_change = math.sqrt( (min_r2_frq - 
>> set_r2_frq)**2/(min_r2_frq)**2 )
>> +                        print("%s %s %s %s %.1f GRID=%.3f MIN=%.3f SET=%.3f 
>> RELC=%.3f"%(cur_spin.model, res_name, cur_spin_id, mo_param, frq, 
>> grid_r2_frq, min_r2_frq, set_r2_frq, rel_change) )
>> +                        if rel_change > ds.rel_change:
>> +                            print("WARNING: rel change level is above %.2f, 
>> and is %.4f."%(ds.rel_change, rel_change))
>> +                            print("###################################")
>> +
>> +                        ## Make test on R2.
>> +                        self.assertAlmostEqual(set_r2_frq, min_r2_frq, 2)
>> +                else:
>> +                    grid_val = grid_params[mo_param]
>> +                    min_val = min_params[mo_param]
>> +                    set_val = params[mo_param]
>> +                    rel_change = math.sqrt( (min_val - 
>> set_val)**2/(min_val)**2 )
>> +                    print("%s %s %s %s GRID=%.3f MIN=%.3f SET=%.3f 
>> RELC=%.3f"%(cur_spin.model, res_name, cur_spin_id, mo_param, grid_val, 
>> min_val, set_val, rel_change) )
>> +                    if rel_change > ds.rel_change:
>> +                        print("WARNING: rel change level is above %.2f, and 
>> is %.4f."%(ds.rel_change, rel_change))
>> +                        print("###################################")
>> +
>> +                    ## Make test on parameters.
>> +                    if mo_param == 'dw':
>> +                        self.assertAlmostEqual(set_val/10, min_val/10, 6)
>> +                    elif mo_param == 'kex':
>> +                        self.assertAlmostEqual(set_val/1000, min_val/1000, 
>> 5)
>> +                    elif mo_param == 'pA':
>> +                        self.assertAlmostEqual(set_val, min_val, 7)
>>
>>
>>      def test_cpmg_synthetic_ns3d_to_cr72_noise_cluster(self):
>>
>>
>> _______________________________________________
>> 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

Reply via email to