Cheers, I'll then leave commit r25161 (http://article.gmane.org/gmane.science.nmr.relax.scm/22911) in the repository to allow the system test to pass.
Regards, Edward On 21 August 2014 12:02, Troels Emtekær Linnet <[email protected]> wrote: > Hi Edward. > > We only need the R2eff file. > > I think I added some few graphs in "final" folder to document the new > graphs in the manual. > > Best > Troels > > 2014-08-21 10:16 GMT+02:00 Edward d'Auvergne <[email protected]>: >> Hi Troels, >> >> Before I delete them, apart from the R2eff file do we need the results >> files in the >> test_suite/shared_data/dispersion/Kjaergaard_et_al_2013/check_graphs/mc_2000/*/ >> directories? These directories take up too much room, mainly because >> of the interpolated Grace files in the final directory. Is this >> information required? Or do you plan on using it in the future? >> >> Cheers, >> >> Edward >> >> >> On 21 August 2014 10:02, Edward d'Auvergne <[email protected]> wrote: >>> Hi Troels, >>> >>> I've now converted your code to handle the R1 parameter dynamically, >>> so that is it part of the standard models. Therefore the '* R1 fit' >>> models have been removed. Some parts using the MODEL_LIST_*_W_R1 and >>> MODEL_LIST_*_FIT_R1 were a bit more complicated than expected to sort >>> out. But most things should now operate fine. The >>> Relax_disp.test_r1rho_kjaergaard_missing_r1 system test is still >>> problematic as it is using the pre-run directory and loading the saved >>> states of the models whereby R1 has not been optimised, rather than >>> using model nesting as it should, but I should have a solution for >>> that soon. Anyway, this is only a small amount of work which uses the >>> infrastructure you added to do everything. >>> >>> Regards, >>> >>> Edward >>> >>> On 20 August 2014 19:36, Troels Emtekær Linnet <[email protected]> >>> wrote: >>>> Hi Edward. >>>> >>>> I trust that you know how to better plan programming than me. >>>> >>>> Please convert if you feel that this is a necessary step. >>>> >>>> Best >>>> Troels >>>> >>>> 2014-08-20 19:25 GMT+02:00 Edward d'Auvergne <[email protected]>: >>>>> I have just obliterated the wall. I have implemented: >>>>> >>>>> 1) The relax_disp.r1_fit user function >>>>> (http://thread.gmane.org/gmane.science.nmr.relax.scm/22858). >>>>> 2) The specific_analyses.relax_disp.data.is_r1_optimsed() function >>>>> for asking if we should optimise R1 or not >>>>> (http://thread.gmane.org/gmane.science.nmr.relax.scm/22857). >>>>> 3) The specific_analyses.relax_disp.parameters.r1_setup() function >>>>> for modifying the model parameter list as needed >>>>> (http://thread.gmane.org/gmane.science.nmr.relax.scm/22859). >>>>> 4) Sent the r1_fit flag into the target function >>>>> (http://thread.gmane.org/gmane.science.nmr.relax.scm/22866). >>>>> >>>>> As can be seen, the changes were rather simple. There is only one >>>>> brick remaining in the ruins of this wall, and that is simply using >>>>> this functionality. It would require using the r1_fit flag in the >>>>> target function __init__() method to switch between target functions, >>>>> and then removing the redundant '* R1 fit' models. Should I remove >>>>> the last brick and simplify the model list? >>>>> >>>>> Regards, >>>>> >>>>> Edward >>>>> >>>>> >>>>> >>>>> On 20 August 2014 17:34, Edward d'Auvergne <[email protected]> wrote: >>>>>> It's a thin wall that needs to be broken. For the backend of the >>>>>> relax_disp.select_model, we shouldn't do anything. We make the >>>>>> decision at the point of the grid_search() and minimise() API methods >>>>>> if we should prefix the model parameter lists with R1. As >>>>>> grid_search() calls minimise(), then we do this once in minimise(). >>>>>> Even better would be in the >>>>>> specific_analyses.relax_disp.optimisation.Disp_minimise_command class >>>>>> just after the R1 data is assembled. >>>>>> >>>>>> We could create a new function called >>>>>> specific_analyses.relax_disp.data.r1_optimisation() which decides if >>>>>> R1 values are to be optimised. This can be easily extended in the >>>>>> future by someone else to handle CPMG data as well. This function >>>>>> returns True or False and this can be stored as the self.r1_fit flag >>>>>> in Disp_minimise_command. If self.r1_fit is True, we can then call >>>>>> specific_analyses.relax_disp.parameters.prefix_r1() which adds the >>>>>> required R1 parameters to the spin container 'param' list. Then when >>>>>> setting up the target function class in Disp_minimise_command.run(), >>>>>> the self.r1_fit flag is sent in. The target function class __init__() >>>>>> method then uses the r1_fit flag to choose which target function >>>>>> method will be aliased to self.func by adding an extra set of if >>>>>> statements. I.e. change: >>>>>> >>>>>> if model == MODEL_DPL94: >>>>>> self.func = self.func_DPL94 >>>>>> if model == MODEL_DPL94_FIT_R1: >>>>>> self.func = self.func_DPL94_fit_r1 >>>>>> >>>>>> To: >>>>>> >>>>>> if model == MODEL_DPL94: >>>>>> if r1_fit: >>>>>> self.func = self.func_DPL94 >>>>>> else: >>>>>> self.func = self.func_DPL94_fit_r1 >>>>>> >>>>>> The specific_analyses.relax_disp.data.r1_optimisation() function can >>>>>> be called at any time that the R1 data is accessed, for example the >>>>>> unpacking of the parameter values (though in this case the r1_fit flag >>>>>> could be passed into the Disp_result_command to avoid this call). >>>>>> That's pretty much it. I don't think anything else is required. Am I >>>>>> missing something important? >>>>>> >>>>>> Cheers, >>>>>> >>>>>> Edawrd >>>>>> >>>>>> On 20 August 2014 17:14, Troels Emtekær Linnet <[email protected]> >>>>>> wrote: >>>>>>> Heh. >>>>>>> >>>>>>> I think I tried the solution you suggested. >>>>>>> >>>>>>> But I think you will run into several problems, that the parameters is >>>>>>> no longer setup correct. >>>>>>> >>>>>>> The issuing of: >>>>>>> relax_disp.select_model(model=MODEL) >>>>>>> >>>>>>> does "alot" of stuff. >>>>>>> >>>>>>> The problems starts about the initialisation of the dispersion class. >>>>>>> >>>>>>> One hits a wall of problems, which I surely cannot recommend. >>>>>>> >>>>>>> Best >>>>>>> Troels >>>>>>> >>>>>>> >>>>>>> 2014-08-20 17:07 GMT+02:00 Edward d'Auvergne <[email protected]>: >>>>>>>> Hi, >>>>>>>> >>>>>>>> Not loading the R1 data and then fitting it is good, especially if it >>>>>>>> is automatic. As long as a RelaxWarning is printed out to inform the >>>>>>>> user. The target function switching is much simpler than the model >>>>>>>> name translation. For example simply send in a r1_fit flag to the >>>>>>>> target function __init__() method and then add some more if statements >>>>>>>> to the end of that method. It would make it even more automatic from >>>>>>>> the perspective of the user. >>>>>>>> >>>>>>>> As I said, you've already done the hard part. The infrastructure you >>>>>>>> added is there now for handling this. You have implemented all >>>>>>>> required target functions and associated functions for handling the R1 >>>>>>>> fitting. The changes we are discussing are trivial in comparison. >>>>>>>> >>>>>>>> Regards, >>>>>>>> >>>>>>>> Edward >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 20 August 2014 16:56, Troels Emtekær Linnet <[email protected]> >>>>>>>> wrote: >>>>>>>>> Hi Edward. >>>>>>>>> >>>>>>>>> I actually think it is a quite elegant solution, that if one does not >>>>>>>>> load R1 data, then the R1 parameter is fitted. >>>>>>>>> >>>>>>>>> I think it is a better solution than the previous suggestion. >>>>>>>>> >>>>>>>>> It involves less coding, and the logic is sound. >>>>>>>>> >>>>>>>>> And the system is still "open" for weird stuff, whereby you by >>>>>>>>> scripting can analyse with and without fitting R1 in same analyses. >>>>>>>>> >>>>>>>>> I think this is best. >>>>>>>>> >>>>>>>>> But in the end. Potato, tomato. >>>>>>>>> If this solution prevents any further implementation, then this could >>>>>>>>> also be done. >>>>>>>>> >>>>>>>>> Best >>>>>>>>> Troels >>>>>>>>> >>>>>>>>> >>>>>>>>> 2014-08-20 16:48 GMT+02:00 Edward d'Auvergne <[email protected]>: >>>>>>>>>> An easy system test would be to load a set of CPMG data and a set of >>>>>>>>>> R1rho data, and then see if this can be analysed assuming no exchange >>>>>>>>>> via the 'No Rex' models. There are no other models for this yet, but >>>>>>>>>> it would show what is missing. You've added the infrastructure which >>>>>>>>>> is the hardest part. What remains to allow this is actually not much >>>>>>>>>> at all now that the infrastructure is in place. Just a bit of gluing >>>>>>>>>> code. >>>>>>>>>> >>>>>>>>>> On a related note, what is your opinion on the suggestions you made >>>>>>>>>> in >>>>>>>>>> sr #3135 at https://gna.org/support/?3135#comment0 "Optimisation of >>>>>>>>>> the R1 relaxation rate for the off-resonance R1rho relaxation >>>>>>>>>> dispersion models."? Namely that we let the user choose if R1 values >>>>>>>>>> are optimised or not for off-resonance data, whether or not R1 values >>>>>>>>>> were loaded. So then the '* R1 fit' models are merged into the >>>>>>>>>> non-fitted models, and the target function switching occurs without >>>>>>>>>> the user knowing. You should note that the target function switching >>>>>>>>>> is far simpler than the current model name translation system. It >>>>>>>>>> just requires a few more if statements at the end of the target >>>>>>>>>> function __init__() method to alias the correct self.func_*() method. >>>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> >>>>>>>>>> Edward >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 20 August 2014 16:36, Troels Emtekær Linnet >>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>> Hi Edward. >>>>>>>>>>> >>>>>>>>>>> I think I in the start tried following this path. >>>>>>>>>>> >>>>>>>>>>> But I realised with all the "R1 fit" models, that the very >>>>>>>>>>> important, >>>>>>>>>>> relax_disp.select_model(model) >>>>>>>>>>> >>>>>>>>>>> setup all information for this model. >>>>>>>>>>> >>>>>>>>>>> As this was also a new model implementation, I also wanted the >>>>>>>>>>> flexibility to be able to select the desired model, and >>>>>>>>>>> be able to compare. >>>>>>>>>>> >>>>>>>>>>> I would suggest that this functionality is not digged further down >>>>>>>>>>> the >>>>>>>>>>> code, before more experience is collected. >>>>>>>>>>> >>>>>>>>>>> Best >>>>>>>>>>> Troels >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 2014-08-20 16:22 GMT+02:00 Edward d'Auvergne <[email protected]>: >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> What would be even more powerful would be to shift this >>>>>>>>>>>> functionality >>>>>>>>>>>> even deeper down and merging the 'No Rex' and 'No Rex R1rho off >>>>>>>>>>>> res' >>>>>>>>>>>> models into one, just as the 'R2eff' model covers both the >>>>>>>>>>>> exponential >>>>>>>>>>>> curve-fitting via minimisation and the two-point approximation by >>>>>>>>>>>> calculation. Rather than switching the model name for the user, >>>>>>>>>>>> the >>>>>>>>>>>> target function can be switched. The 'No Rex R1 fit' model could >>>>>>>>>>>> then >>>>>>>>>>>> be created (by simply renaming 'No Rex R1rho off res R1 fit') and >>>>>>>>>>>> this >>>>>>>>>>>> would then eventually handle CPMG data as well. >>>>>>>>>>>> >>>>>>>>>>>> The reason for this is simple. In the future, certain interested >>>>>>>>>>>> parties (you probably know who) plans on developing a combined CPMG >>>>>>>>>>>> and R1rho model and on analysing this data together. This will >>>>>>>>>>>> need a >>>>>>>>>>>> 'No Rex' model for statistical comparisons. The splitting of 'No >>>>>>>>>>>> Rex' >>>>>>>>>>>> into two models as is currently coded is incompatible with this. A >>>>>>>>>>>> 'No Rex' model which has a loop over experiment types "for ei in >>>>>>>>>>>> range(self.NE):" switching to the different functionality would be >>>>>>>>>>>> a >>>>>>>>>>>> better solution. >>>>>>>>>>>> >>>>>>>>>>>> Regards, >>>>>>>>>>>> >>>>>>>>>>>> Edward >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 20 August 2014 16:09, <[email protected]> wrote: >>>>>>>>>>>>> Author: tlinnet >>>>>>>>>>>>> Date: Wed Aug 20 16:09:40 2014 >>>>>>>>>>>>> New Revision: 25100 >>>>>>>>>>>>> >>>>>>>>>>>>> URL: http://svn.gna.org/viewcvs/relax?rev=25100&view=rev >>>>>>>>>>>>> Log: >>>>>>>>>>>>> Made the GUI selection of models for relaxation dispersion more >>>>>>>>>>>>> simple. >>>>>>>>>>>>> >>>>>>>>>>>>> After the implementation of a function which will translate the >>>>>>>>>>>>> models, the >>>>>>>>>>>>> 'No Rex' model will be converted to the 'No Rex' model for R1rho >>>>>>>>>>>>> off-resonance. >>>>>>>>>>>>> >>>>>>>>>>>>> Also the corresponding 'R1 fit' model will be chosen istead, if >>>>>>>>>>>>> R1 data has not been loaded. >>>>>>>>>>>>> >>>>>>>>>>>>> This makes the model selection easier in the GUI interface. >>>>>>>>>>>>> >>>>>>>>>>>>> Modified: >>>>>>>>>>>>> trunk/gui/analyses/auto_relax_disp.py >>>>>>>>>>>>> >>>>>>>>>>>>> Modified: trunk/gui/analyses/auto_relax_disp.py >>>>>>>>>>>>> URL: >>>>>>>>>>>>> http://svn.gna.org/viewcvs/relax/trunk/gui/analyses/auto_relax_disp.py?rev=25100&r1=25099&r2=25100&view=diff >>>>>>>>>>>>> ============================================================================== >>>>>>>>>>>>> --- trunk/gui/analyses/auto_relax_disp.py (original) >>>>>>>>>>>>> +++ trunk/gui/analyses/auto_relax_disp.py Wed Aug 20 >>>>>>>>>>>>> 16:09:40 2014 >>>>>>>>>>>>> @@ -715,8 +715,8 @@ >>>>>>>>>>>>> MODEL_R2EFF, >>>>>>>>>>>>> None, >>>>>>>>>>>>> MODEL_NOREX, >>>>>>>>>>>>> - MODEL_NOREX_R1RHO, >>>>>>>>>>>>> - MODEL_NOREX_R1RHO_FIT_R1, >>>>>>>>>>>>> +# MODEL_NOREX_R1RHO, >>>>>>>>>>>>> +# MODEL_NOREX_R1RHO_FIT_R1, >>>>>>>>>>>>> None, >>>>>>>>>>>>> MODEL_LM63, >>>>>>>>>>>>> MODEL_LM63_3SITE, >>>>>>>>>>>>> @@ -735,15 +735,15 @@ >>>>>>>>>>>>> MODEL_M61, >>>>>>>>>>>>> MODEL_M61B, >>>>>>>>>>>>> MODEL_DPL94, >>>>>>>>>>>>> - MODEL_DPL94_FIT_R1, >>>>>>>>>>>>> +# MODEL_DPL94_FIT_R1, >>>>>>>>>>>>> MODEL_TP02, >>>>>>>>>>>>> - MODEL_TP02_FIT_R1, >>>>>>>>>>>>> +# MODEL_TP02_FIT_R1, >>>>>>>>>>>>> MODEL_TAP03, >>>>>>>>>>>>> - MODEL_TAP03_FIT_R1, >>>>>>>>>>>>> +# MODEL_TAP03_FIT_R1, >>>>>>>>>>>>> MODEL_MP05, >>>>>>>>>>>>> - MODEL_MP05_FIT_R1, >>>>>>>>>>>>> +# MODEL_MP05_FIT_R1, >>>>>>>>>>>>> MODEL_NS_R1RHO_2SITE, >>>>>>>>>>>>> - MODEL_NS_R1RHO_2SITE_FIT_R1, >>>>>>>>>>>>> +# MODEL_NS_R1RHO_2SITE_FIT_R1, >>>>>>>>>>>>> MODEL_NS_R1RHO_3SITE_LINEAR, >>>>>>>>>>>>> MODEL_NS_R1RHO_3SITE, >>>>>>>>>>>>> None, >>>>>>>>>>>>> @@ -756,8 +756,8 @@ >>>>>>>>>>>>> "{%s/%s, %s}" % (r2eff, r1rho, i0), >>>>>>>>>>>>> None, >>>>>>>>>>>>> "{%s, ...}" % (r2), >>>>>>>>>>>>> - "{%s, ...}" % (r2), >>>>>>>>>>>>> - "{%s, %s, ...}" % (r1, r2), >>>>>>>>>>>>> +# "{%s, ...}" % (r2), >>>>>>>>>>>>> +# "{%s, %s, ...}" % (r1, r2), >>>>>>>>>>>>> None, >>>>>>>>>>>>> "{%s, ..., %s, %s}" % (r2, phi_ex, kex), >>>>>>>>>>>>> "{%s, ..., %s, kB, %s, kC}" % (r2, phi_exB, phi_exC), >>>>>>>>>>>>> @@ -776,15 +776,15 @@ >>>>>>>>>>>>> "{%s, ..., %s, %s}" % (r1rho_prime, phi_ex, kex), >>>>>>>>>>>>> "{%s, ..., pA, %s, %s}" % (r1rho_prime, dw, kex), >>>>>>>>>>>>> "{%s, ..., %s, %s}" % (r1rho_prime, phi_ex, kex), >>>>>>>>>>>>> - "{%s, %s, ..., %s, %s}" % (r1, r1rho_prime, phi_ex, kex), >>>>>>>>>>>>> +# "{%s, %s, ..., %s, %s}" % (r1, r1rho_prime, phi_ex, >>>>>>>>>>>>> kex), >>>>>>>>>>>>> "{%s, ..., pA, %s, %s}" % (r1rho_prime, dw, kex), >>>>>>>>>>>>> - "{%s, %s, ..., pA, %s, %s}" % (r1, r1rho_prime, dw, kex), >>>>>>>>>>>>> +# "{%s, %s, ..., pA, %s, %s}" % (r1, r1rho_prime, dw, >>>>>>>>>>>>> kex), >>>>>>>>>>>>> "{%s, ..., pA, %s, %s}" % (r1rho_prime, dw, kex), >>>>>>>>>>>>> - "{%s, %s, ..., pA, %s, %s}" % (r1, r1rho_prime, dw, kex), >>>>>>>>>>>>> +# "{%s, %s, ..., pA, %s, %s}" % (r1, r1rho_prime, dw, >>>>>>>>>>>>> kex), >>>>>>>>>>>>> "{%s, ..., pA, %s, %s}" % (r1rho_prime, dw, kex), >>>>>>>>>>>>> - "{%s, %s, ..., pA, %s, %s}" % (r1, r1rho_prime, dw, kex), >>>>>>>>>>>>> +# "{%s, %s, ..., pA, %s, %s}" % (r1, r1rho_prime, dw, >>>>>>>>>>>>> kex), >>>>>>>>>>>>> "{%s, ..., pA, %s, %s}" % (r1rho_prime, dw, kex), >>>>>>>>>>>>> - "{%s, %s, ..., pA, %s, %s}" % (r1, r1rho_prime, dw, kex), >>>>>>>>>>>>> +# "{%s, %s, ..., pA, %s, %s}" % (r1, r1rho_prime, dw, >>>>>>>>>>>>> kex), >>>>>>>>>>>>> "{%s, ..., pA, %s, %s, pB, %s, %s}" % (r1rho_prime, >>>>>>>>>>>>> dw_AB, kAB, dw_BC, kBC), >>>>>>>>>>>>> "{%s, ..., pA, %s, %s, pB, %s, %s, %s}" % (r1rho_prime, >>>>>>>>>>>>> dw_AB, kAB, dw_BC, kBC, kAC), >>>>>>>>>>>>> None, >>>>>>>>>>>>> @@ -797,8 +797,8 @@ >>>>>>>>>>>>> "The base model for determining the %s/%s values and >>>>>>>>>>>>> errors for all other models." % (r2eff, r1rho), >>>>>>>>>>>>> None, >>>>>>>>>>>>> "The model for no chemical exchange relaxation.", >>>>>>>>>>>>> - "The model for no chemical exchange being present, for >>>>>>>>>>>>> off-resonance R1rho-type experiments. R1rho = R1 * cos(theta)^2 >>>>>>>>>>>>> + r1rho_prime * sin(theta)^2.", >>>>>>>>>>>>> - "The model for no chemical exchange being present, for >>>>>>>>>>>>> off-resonance R1rho-type experiments whereby R1 is fit. R1rho = >>>>>>>>>>>>> R1 * cos(theta)^2 + r1rho_prime * sin(theta)^2.", >>>>>>>>>>>>> +# "The model for no chemical exchange being present, for >>>>>>>>>>>>> off-resonance R1rho-type experiments. R1rho = R1 * cos(theta)^2 >>>>>>>>>>>>> + r1rho_prime * sin(theta)^2.", >>>>>>>>>>>>> +# "The model for no chemical exchange being present, for >>>>>>>>>>>>> off-resonance R1rho-type experiments whereby R1 is fit. R1rho = >>>>>>>>>>>>> R1 * cos(theta)^2 + r1rho_prime * sin(theta)^2.", >>>>>>>>>>>>> None, >>>>>>>>>>>>> "The original Luz and Meiboom (1963) 2-site fast >>>>>>>>>>>>> exchange equation.", >>>>>>>>>>>>> "The original Luz and Meiboom (1963) 3-site fast >>>>>>>>>>>>> exchange equation.", >>>>>>>>>>>>> @@ -817,15 +817,15 @@ >>>>>>>>>>>>> "The Meiboom (1961) 2-site fast exchange equation.", >>>>>>>>>>>>> "The Meiboom (1961) 2-site equation for all time scales >>>>>>>>>>>>> with pA >> pB.", >>>>>>>>>>>>> "The Davis, Perlman and London (1994) 2-site fast >>>>>>>>>>>>> exchange equation.", >>>>>>>>>>>>> - "The Davis, Perlman and London (1994) 2-site fast >>>>>>>>>>>>> exchange equation, whereby R1 is fit.", >>>>>>>>>>>>> +# "The Davis, Perlman and London (1994) 2-site fast >>>>>>>>>>>>> exchange equation, whereby R1 is fit.", >>>>>>>>>>>>> "The Trott and Palmer (2002) 2-site equation for all >>>>>>>>>>>>> time scales.", >>>>>>>>>>>>> - "The Trott and Palmer (2002) 2-site equation for all >>>>>>>>>>>>> time scales, whereby R1 is fit.", >>>>>>>>>>>>> +# "The Trott and Palmer (2002) 2-site equation for all >>>>>>>>>>>>> time scales, whereby R1 is fit.", >>>>>>>>>>>>> "The Trott, Abergel and Palmer (2003) off-resonance >>>>>>>>>>>>> 2-site equation for all time scales.", >>>>>>>>>>>>> - "The Trott, Abergel and Palmer (2003) off-resonance >>>>>>>>>>>>> 2-site equation for all time scales, whereby R1 is fit.", >>>>>>>>>>>>> +# "The Trott, Abergel and Palmer (2003) off-resonance >>>>>>>>>>>>> 2-site equation for all time scales, whereby R1 is fit.", >>>>>>>>>>>>> "The Miloushev and Palmer (2005) off-resonance 2-site >>>>>>>>>>>>> equation for all time scales.", >>>>>>>>>>>>> - "The Miloushev and Palmer (2005) off-resonance 2-site >>>>>>>>>>>>> equation for all time scales, whereby R1 is fit.", >>>>>>>>>>>>> +# "The Miloushev and Palmer (2005) off-resonance 2-site >>>>>>>>>>>>> equation for all time scales, whereby R1 is fit.", >>>>>>>>>>>>> "The 2-site numerical solution using 3D magnetisation >>>>>>>>>>>>> vectors.", >>>>>>>>>>>>> - "The 2-site numerical solution using 3D magnetisation >>>>>>>>>>>>> vectors, whereby R1 is fit.", >>>>>>>>>>>>> +# "The 2-site numerical solution using 3D magnetisation >>>>>>>>>>>>> vectors, whereby R1 is fit.", >>>>>>>>>>>>> "The 3-site linearised numerical solution using 3D >>>>>>>>>>>>> magnetisation vectors.", >>>>>>>>>>>>> "The 3-site numerical solution using 3D magnetisation >>>>>>>>>>>>> vectors.", >>>>>>>>>>>>> None, >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>> 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

