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

