Hi, Here is a mini-proposal for a special Python dictionary object to help with dispersion model nesting:
----- class Model_nesting(dict): """Special object for handling model nesting for avoiding the grid search.""" def get_deps(self, model): """Return the dependency list for the given model.""" return self[model] def set_deps(self, model, deps=None): """Set the model dependency list for the given model.""" self[model] = deps MODEL_NESTING = Model_nesting() MODEL_NESTING['B14 full'] = ['CR72 full', 'B14', 'CR72'] ----- The class would be in the specific_analyses.relax_disp.models module and the MODEL_NESTING instantiation in the specific_analyses.relax_disp.variables module. This can have error checking added and additional methods for manipulating the data added. The get_deps() and set_deps() methods are optional for the power user. They may be useful if the __getattr__(), __getitem__(), __setattr__(), and __setitem__() methods are overridden to allow for better object control (see the objects in the data_store package for how this is done). A get_dep() method could be added which accepts the model and a list of the currently optimised models and then returns the nested model to be used or None, i.e. to implement the model preference. Or, this could just be a normal Python dictionary rather than a special dictionary object. Such an object could be used by relax power users, via scripting, to implement their own relaxation dispersion analysis protocol. But this is just an idea and many alternatives exist. Regards, Edward On 19 August 2014 10:07, Edward d'Auvergne <edw...@nmr-relax.com> wrote: > Hi Troels, > > This continues from > http://thread.gmane.org/gmane.science.nmr.relax.scm/22733/, and all > the related threads. For the change of r25060 > (http://article.gmane.org/gmane.science.nmr.relax.scm/22810), could > you please document all cases? I.e. model x takes its parameters from > model y, and then do this for all models. See the table below for how > to document this. This algorithm really worries me and I strongly > think that this development is in the wrong direction. All models are > special cases! You can't just take any model as the starting point > for another. The following ordering is not a good idea: > > 1) EQ_NUMERIC, EQ_SILICO, EQ_ANALYTIC. > 2) Year (from newest). > 3) Number of sites. > > Models should be rather classified in the following groups: > > 1) Parameter nesting (related to 2). The models should ideally have > identical parameter sets. > 2) Fast exchange, slow exchange, very slow exchange, vs. all exchange > regimes. These are mutually exclusive (apart from the last). > 3) The pA >> pB limit - this can never be mixed with the normal pA > > pB condition. > 4) Model stability (i.e. stable vs. unstable). > 5) Model accuracy. > 6) Analytic vs. numeric. > > This is in order of importance. Part 2) here excludes most > combinations of the new algorithm - you cannot mix the models for > different mutually exclusive exchange regimes. > > The one and only aim is for speed by avoiding the grid search, > therefore the nested model from which the parameters are copied from > must be a good estimate for the solution of the target model. I would > then propose the following table mapping models to nested models for > avoiding the grid search. The order is also the order of > optimisation, as you will see from the nested model dependencies. The > proposal is: > > R2eff <- None > No Rex <- None > > LM63 <- None > LM63 3-site <- LM63 > CR72 <- None > CR72 full <- CR72 > IT99 <- None > TSMFK01 <- None > B14 <- CR72 > B14 full <- CR72 full, B14, CR72 > NS CPMG 2-site expanded <- B14, CR72 > NS CPMG 2-site 3D <- NS CPMG 2-site expanded, B14, CR72 > NS CPMG 2-site 3D full <- B14 full, CR72 full, NS CPMG 2-site > expanded, B14, CR72 > NS CPMG 2-site star <- NS CPMG 2-site expanded, B14, CR72 > NS CPMG 2-site star full <- B14 full, CR72 full, NS CPMG 2-site > expanded, B14, CR72 > > M61 <- None > M61 skew <- None > DPL94 <- None > DPL94 R1 fit <- DPL94 > TP02 <- None > TP02 R1 fit <- TP02 > TAP03 <- None > TAP03 R1 fit <- TAP03 > MP05 <- TAP03, TP02 > MP05 R1 fit <- MP05, TAP03, TP02 > NS R1rho 2-site <- MP05, TAP03, TP02 > NS R1rho 2-site R1 fit <- NS R1rho 2-site, MP05, TAP03, TP02 > NS R1rho 3-site linear <- NS R1rho 2-site, MP05, TAP03, TP02 > NS R1rho 3-site <- NS R1rho 3-site linear, NS R1rho 2-site, > MP05, TAP03, TP02 > > MMQ CR72 <- None > NS MMQ 2-site <- MMQ CR72 > NS MMQ 3-site linear <- NS MMQ 2-site, MMQ CR72 > NS MMQ 3-site <- NS MMQ 3-site linear, NS MMQ 2-site, MMQ CR72 > > In the second column, the list of models indicate importance. For > example for the 'B14 full' model, the 'CR72 full' model is the first > preference. If that model has not been optimised, then B14 is used. > And if B14 is missing, the fall back is to CR72. If none of these > models have been optimised, the grid search will be performed. In > this case, 'CR72 full' is preferred as it has perfect parameter > nesting - all parameters of 'B14 full' are found in 'CR72 full'. The > B14 and CR72 are fallbacks - here R20A and R20B are copied from R20 so > they start optimisation as R20A == R20B. Hence 'CR72 full' whereby > R20A != R20B is a much better starting point as R20A and R20B have > been optimised to different values. But the large model instability > in 'CR72 full' might make the user want to start with 'B14'. > > For the '* R1 fit' models, this nesting is of little interest in > experimental cases, as you either measure R1 data or not (measuring it > is always preferable for model stability). Some people who have > measured R1 data might still be interested in what will if R1 is > nevertheless optimised, so that nesting could be of use. > > This nesting table is complete as far as I can tell. Some of this > nesting could be still argued to be wrong, for example TP02 with pA << > pB as a starting point. I would not use any other nesting for fear of > creating a very bad optimisation starting position. The table is very > easy to extend for new models as well. But because of model > instability, the user may wish to change this nesting. > > Regards, > > Edward > > > > > > > > > > On 18 August 2014 18:11, Edward d'Auvergne <edw...@nmr-relax.com> wrote: >> Hi Troels, >> >> I will continue from your last post in the triplet thread at >> http://thread.gmane.org/gmane.science.nmr.relax.scm/22737. I have >> copied and pasted your message below: >> >> On 18 August 2014 17:17, Troels Emtekær Linnet <tlin...@nmr-relax.com> wrote: >>> I will remove the nesting of IT99, since it also worried me. >> >> I would also suggest removing TSMFK01, TAP03, M61, M61 skew, and DPL94. >> >> >>> But do you really intent to stay on the argument that nesting should >>> always be from CR72? >> >> No, we need a 3rd solution for this. >> >> >>> What if the model pipe for B14 is available. >>> Or from NS CPMG 2-site expanded ? >> >> We could, for example, have a list of nested models. For example for >> the NS CPMG 2-site expanded model, the list would be [MODEL_B41, >> MODEL_CR72]. It used B14 first, but switches to CR72 if B14 is not >> available. This is easy to hardcode in a dictionary (or special >> Python dictionary object) and hardcode into a table in the manual. >> >> For all of the numeric CPMG models, which should be optimised after >> the analytic models in all cases so that model nesting can be useful >> for speed, I would suggest using B14 and then CR72. But if you have >> fast exchange, then the LM63 model is far better for these models than >> B14 or CR72, however the parameters are not nested. There are >> infinite parameter combinations of the numeric models which give the >> same parameter values as LM63. >> >> For the R1rho models, a similar logic would be used. MP05 replaces >> B14, and TP02 replaces CR72. The BK13 model will also need to be >> considered in the future (https://gna.org/support/?3155). DPL94 >> replaces LM63 for the fast vs. slow exchange problem, but then you >> also have the infinite parameter combination problem. >> >> Note that the infinite parameter combination problem is actually a >> major issue affecting the optimisation of all numeric models when the >> exchange is fast, but that no one talks about this! >> >> >>> Is this issue rather related how to sort the models first? >> >> This is an important issue which requires knowledge of the nesting, as >> I mentioned previously. Our understanding of the models themselves >> and our logic based on experiment is far more useful for determining >> model nesting and the order in which they should be optimised. This >> is why a hardcoded solution is very powerful. >> >> Regards, >> >> Edward >> >> >> >> On 12 August 2014 10:54, <tlin...@nmr-relax.com> wrote: >>> Author: tlinnet >>> Date: Tue Aug 12 10:54:36 2014 >>> New Revision: 24983 >>> >>> URL: http://svn.gna.org/viewcvs/relax?rev=24983&view=rev >>> Log: >>> Added meta information about equation type. >>> >>> The models are dividided into: analytic, silico or numeric. >>> >>> sr #3135(https://gna.org/support/?3135): Optimisation of the R1 relaxation >>> rate for the off-resonance R1rho relaxation dispersion models. >>> >>> Modified: >>> branches/R1_fitting/specific_analyses/relax_disp/variables.py >>> >>> branches/R1_fitting/test_suite/unit_tests/_specific_analyses/_relax_disp/test_variables.py >>> >>> Modified: branches/R1_fitting/specific_analyses/relax_disp/variables.py >>> URL: >>> http://svn.gna.org/viewcvs/relax/branches/R1_fitting/specific_analyses/relax_disp/variables.py?rev=24983&r1=24982&r2=24983&view=diff >>> ============================================================================== >>> --- branches/R1_fitting/specific_analyses/relax_disp/variables.py >>> (original) >>> +++ branches/R1_fitting/specific_analyses/relax_disp/variables.py Tue >>> Aug 12 10:54:36 2014 >>> @@ -59,6 +59,12 @@ >>> """The list of all dispersion experiment types.""" >>> >>> >>> +# Model equation types. Either analytic, silico or numeric. >>> +EQ_ANALYTIC = 'analytic' >>> +EQ_NUMERIC = 'numeric' >>> +EQ_SILICO = 'silico' >>> + >>> + >>> # The model names, parameters, and descriptions. >>> MODEL_R2EFF = 'R2eff' >>> MODEL_DESC_R2EFF = "The model for determining the R2eff/R1rho values from >>> peak intensities." >>> @@ -67,6 +73,7 @@ >>> MODEL_YEAR_R2EFF = 1950 >>> MODEL_EXP_TYPE_R2EFF = EXP_TYPE_R2EFF >>> MODEL_SITES_R2EFF = None >>> +MODEL_EQ_R2EFF = EQ_ANALYTIC >>> >>> MODEL_NOREX = 'No Rex' >>> MODEL_DESC_NOREX = "The model for no chemical exchange relaxation." >>> @@ -75,6 +82,7 @@ >>> MODEL_YEAR_NOREX = 1951 >>> MODEL_EXP_TYPE_NOREX = EXP_TYPE_NOREX >>> MODEL_SITES_NOREX = 1 >>> +MODEL_EQ_NOREX = EQ_ANALYTIC >>> >>> MODEL_NOREX_R1RHO = "No_Rex_R1rho_off_res" >>> MODEL_DESC_NOREX_R1RHO = "The model for no chemical exchange relaxation, >>> for R1rho off resonance models." >>> @@ -83,6 +91,7 @@ >>> MODEL_YEAR_NOREX_R1RHO = 1952 >>> MODEL_EXP_TYPE_NOREX_R1RHO = EXP_TYPE_NOREX_R1RHO >>> MODEL_SITES_NOREX_R1RHO = 1 >>> +MODEL_EQ_NOREX_R1RHO = EQ_ANALYTIC >>> >>> MODEL_NOREX_R1RHO_FIT_R1 = "%s_fit_r1"%MODEL_NOREX_R1RHO >>> MODEL_DESC_NOREX_R1RHO_FIT_R1 = "The model for no chemical exchange >>> relaxation, for R1rho off resonance models, where R1 is fitted." >>> @@ -91,6 +100,7 @@ >>> MODEL_YEAR_NOREX_R1RHO_FIT_R1 = 1953 >>> MODEL_EXP_TYPE_NOREX_R1RHO_FIT_R1 = EXP_TYPE_NOREX_R1RHO >>> MODEL_SITES_NOREX_R1RHO_FIT_R1 = 1 >>> +MODEL_EQ_NOREX_R1RHO_FIT_R1 = EQ_ANALYTIC >>> >>> MODEL_LM63 = 'LM63' >>> MODEL_DESC_LM63 = "The Luz and Meiboom (1963) 2-site fast exchange model >>> for SQ-CPMG experiments." >>> @@ -98,6 +108,7 @@ >>> MODEL_YEAR_LM63 = 1963 >>> MODEL_EXP_TYPE_LM63 = EXP_TYPE_CPMG_SQ >>> MODEL_SITES_LM63 = 2 >>> +MODEL_EQ_LM63 = EQ_ANALYTIC >>> >>> MODEL_LM63_3SITE = 'LM63 3-site' >>> MODEL_DESC_LM63_3SITE = "The Luz and Meiboom (1963) 3-site fast exchange >>> model for SQ-CPMG experiments." >>> @@ -105,6 +116,7 @@ >>> MODEL_YEAR_LM63_3SITE = 1963 >>> MODEL_EXP_TYPE_LM63_3SITE = EXP_TYPE_CPMG_SQ >>> MODEL_SITES_LM63_3SITE = 3 >>> +MODEL_EQ_LM63_3SITE = EQ_ANALYTIC >>> >>> MODEL_CR72 = 'CR72' >>> MODEL_DESC_CR72 = "The reduced Carver and Richards (1972) 2-site model for >>> all time scales for SQ-CPMG experiments, whereby the simplification R20A = >>> R20B is assumed." >>> @@ -112,6 +124,7 @@ >>> MODEL_YEAR_CR72 = 1972 >>> MODEL_EXP_TYPE_CR72 = EXP_TYPE_CPMG_SQ >>> MODEL_SITES_CR72 = 2 >>> +MODEL_EQ_CR72 = EQ_ANALYTIC >>> >>> MODEL_CR72_FULL = 'CR72 full' >>> MODEL_DESC_CR72_FULL = "The full Carver and Richards (1972) 2-site model >>> for all time scales for SQ-CPMG experiments." >>> @@ -119,6 +132,7 @@ >>> MODEL_YEAR_CR72_FULL = 1972 >>> MODEL_EXP_TYPE_CR72_FULL = EXP_TYPE_CPMG_SQ >>> MODEL_SITES_CR72_FULL = 2 >>> +MODEL_EQ_CR72_FULL = EQ_ANALYTIC >>> >>> MODEL_IT99 = 'IT99' >>> MODEL_DESC_IT99 = "The Ishima and Torchia (1999) 2-site CPMG model for all >>> time scales for SQ-CPMG experiments, with skewed populations (pA >> pB)." >>> @@ -126,6 +140,7 @@ >>> MODEL_YEAR_IT99 = 1999 >>> MODEL_EXP_TYPE_IT99 = EXP_TYPE_CPMG_SQ >>> MODEL_SITES_IT99 = 2 >>> +MODEL_EQ_IT99 = EQ_ANALYTIC >>> >>> MODEL_TSMFK01 = 'TSMFK01' >>> MODEL_DESC_TSMFK01 = "The Tollinger et al. (2001) 2-site very-slow >>> exchange model for SQ-CPMG experiments." >>> @@ -133,6 +148,7 @@ >>> MODEL_YEAR_TSMFK01 = 2001 >>> MODEL_EXP_TYPE_TSMFK01 = EXP_TYPE_CPMG_SQ >>> MODEL_SITES_TSMFK01 = 2 >>> +MODEL_EQ_TSMFK01 = EQ_ANALYTIC >>> >>> MODEL_B14 = 'B14' >>> MODEL_DESC_B14 = "The Baldwin (2014) 2-site CPMG exact solution model for >>> all time scales for SQ-CPMG experiments, whereby the simplification R20A = >>> R20B is assumed." >>> @@ -140,6 +156,7 @@ >>> MODEL_YEAR_B14 = 2014 >>> MODEL_EXP_TYPE_B14 = EXP_TYPE_CPMG_SQ >>> MODEL_SITES_B14 = 2 >>> +MODEL_EQ_B14 = EQ_ANALYTIC >>> >>> MODEL_B14_FULL = 'B14 full' >>> MODEL_DESC_B14_FULL = "The Baldwin (2014) 2-site CPMG exact solution model >>> for all time scales for SQ-CPMG experiments." >>> @@ -147,6 +164,7 @@ >>> MODEL_YEAR_B14_FULL = 2014 >>> MODEL_EXP_TYPE_B14_FULL = EXP_TYPE_CPMG_SQ >>> MODEL_SITES_B14_FULL = 2 >>> +MODEL_EQ_B14_FULL = EQ_ANALYTIC >>> >>> MODEL_M61 = 'M61' >>> MODEL_DESC_M61 = "The Meiboom (1961) on-resonance 2-site fast exchange >>> model for R1rho-type experiments." >>> @@ -154,6 +172,7 @@ >>> MODEL_YEAR_M61 = 1961 >>> MODEL_EXP_TYPE_M61 = EXP_TYPE_R1RHO >>> MODEL_SITES_M61 = 2 >>> +MODEL_EQ_M61 = EQ_ANALYTIC >>> >>> MODEL_M61B = 'M61 skew' >>> MODEL_DESC_M61B = "The Meiboom (1961) on-resonance 2-site model for >>> R1rho-type experiments, with skewed populations (pA >> pB)." >>> @@ -161,6 +180,7 @@ >>> MODEL_YEAR_M61B = 1961 >>> MODEL_EXP_TYPE_M61B = EXP_TYPE_R1RHO >>> MODEL_SITES_M61B = 2 >>> +MODEL_EQ_M61B = EQ_ANALYTIC >>> >>> MODEL_DPL94 = 'DPL94' >>> """The R1rho 2-site fast exchange model of Davis, Perlman and London >>> (1994).""" >>> @@ -169,6 +189,7 @@ >>> MODEL_YEAR_DPL94 = 1994 >>> MODEL_EXP_TYPE_DPL94 = EXP_TYPE_R1RHO >>> MODEL_SITES_DPL94 = 2 >>> +MODEL_EQ_DPL94 = EQ_ANALYTIC >>> >>> MODEL_DPL94_FIT_R1 = "%s_fit_r1"%MODEL_DPL94 >>> """The R1rho 2-site fast exchange model of Davis, Perlman and London >>> (1994), where R1 is fitted.""" >>> @@ -177,6 +198,7 @@ >>> MODEL_YEAR_DPL94_FIT_R1 = 1994 >>> MODEL_EXP_TYPE_DPL94_FIT_R1 = EXP_TYPE_R1RHO >>> MODEL_SITES_DPL94_FIT_R1 = 2 >>> +MODEL_EQ_DPL94_FIT_R1 = EQ_ANALYTIC >>> >>> MODEL_TP02 = 'TP02' >>> MODEL_DESC_TP02 = "The Trott and Palmer (2002) off-resonance 2-site model >>> for R1rho-type experiments." >>> @@ -184,6 +206,7 @@ >>> MODEL_YEAR_TP02 = 2002 >>> MODEL_EXP_TYPE_TP02 = EXP_TYPE_R1RHO >>> MODEL_SITES_TP02 = 2 >>> +MODEL_EQ_TP02 = EQ_ANALYTIC >>> >>> MODEL_TP02_FIT_R1 = "%s_fit_r1"%MODEL_TP02 >>> MODEL_DESC_TP02_FIT_R1 = "The Trott and Palmer (2002) off-resonance 2-site >>> model for R1rho-type experiments, where R1 is fitted." >>> @@ -191,6 +214,7 @@ >>> MODEL_YEAR_TP02_FIT_R1 = 2002 >>> MODEL_EXP_TYPE_TP02_FIT_R1 = EXP_TYPE_R1RHO >>> MODEL_SITES_TP02_FIT_R1 = 2 >>> +MODEL_EQ_TP02_FIT_R1 = EQ_ANALYTIC >>> >>> MODEL_TAP03 = 'TAP03' >>> MODEL_DESC_TAP03 = "The Trott, Abergel and Palmer (2003) off-resonance >>> 2-site model for R1rho-type experiments." >>> @@ -198,6 +222,7 @@ >>> MODEL_YEAR_TAP03 = 2003 >>> MODEL_EXP_TYPE_TAP03 = EXP_TYPE_R1RHO >>> MODEL_SITES_TAP03 = 2 >>> +MODEL_EQ_TAP03 = EQ_ANALYTIC >>> >>> MODEL_TAP03_FIT_R1 = "%s_fit_r1"%MODEL_TAP03 >>> MODEL_DESC_TAP03_FIT_R1 = "The Trott, Abergel and Palmer (2003) >>> off-resonance 2-site model for R1rho-type experiments, where R1 is fitted." >>> @@ -205,6 +230,7 @@ >>> MODEL_YEAR_TAP03_FIT_R1 = 2003 >>> MODEL_EXP_TYPE_TAP03_FIT_R1 = EXP_TYPE_R1RHO >>> MODEL_SITES_TAP03_FIT_R1 = 2 >>> +MODEL_EQ_TAP03_FIT_R1 = EQ_ANALYTIC >>> >>> MODEL_MP05 = 'MP05' >>> """The R1rho 2-site off-resonance exchange model of Miloushev and Palmer >>> (2005).""" >>> @@ -213,6 +239,7 @@ >>> MODEL_YEAR_MP05 = 2005 >>> MODEL_EXP_TYPE_MP05 = EXP_TYPE_R1RHO >>> MODEL_SITES_MP05 = 2 >>> +MODEL_EQ_MP05 = EQ_ANALYTIC >>> >>> MODEL_MP05_FIT_R1 = "%s_fit_r1"%MODEL_MP05 >>> """The R1rho 2-site off-resonance exchange model of Miloushev and Palmer >>> (2005).""" >>> @@ -221,6 +248,7 @@ >>> MODEL_YEAR_MP05_FIT_R1 = 2005 >>> MODEL_EXP_TYPE_MP05_FIT_R1 = EXP_TYPE_R1RHO >>> MODEL_SITES_MP05_FIT_R1 = 2 >>> +MODEL_EQ_MP05_FIT_R1 = EQ_ANALYTIC >>> >>> >>> # The Numerical model names. >>> @@ -230,6 +258,7 @@ >>> MODEL_YEAR_NS_CPMG_2SITE_3D = 2004 >>> MODEL_EXP_TYPE_NS_CPMG_2SITE_3D = EXP_TYPE_CPMG_SQ >>> MODEL_SITES_NS_CPMG_2SITE_3D = 2 >>> +MODEL_EQ_NS_CPMG_2SITE_3D = EQ_NUMERIC >>> >>> MODEL_NS_CPMG_2SITE_3D_FULL = 'NS CPMG 2-site 3D full' >>> MODEL_DESC_NS_CPMG_2SITE_3D_FULL = "The full numerical solution for the >>> 2-site Bloch-McConnell equations using 3D magnetisation vectors for SQ CPMG >>> experiments." >>> @@ -237,6 +266,7 @@ >>> MODEL_YEAR_NS_CPMG_2SITE_3D_FULL = 2004 >>> MODEL_EXP_TYPE_NS_CPMG_2SITE_3D_FULL = EXP_TYPE_CPMG_SQ >>> MODEL_SITES_NS_CPMG_2SITE_3D_FULL = 2 >>> +MODEL_EQ_NS_CPMG_2SITE_3D_FULL = EQ_NUMERIC >>> >>> MODEL_NS_CPMG_2SITE_STAR = 'NS CPMG 2-site star' >>> MODEL_DESC_NS_CPMG_2SITE_STAR = "The numerical reduced solution for the >>> 2-site Bloch-McConnell equations using complex conjugate matrices for SQ >>> CPMG experiments, whereby the simplification R20A = R20B is assumed." >>> @@ -244,6 +274,7 @@ >>> MODEL_YEAR_NS_CPMG_2SITE_STAR = 2004 >>> MODEL_EXP_TYPE_NS_CPMG_2SITE_STAR = EXP_TYPE_CPMG_SQ >>> MODEL_SITES_NS_CPMG_2SITE_STAR = 2 >>> +MODEL_EQ_NS_CPMG_2SITE_STAR = EQ_NUMERIC >>> >>> MODEL_NS_CPMG_2SITE_STAR_FULL = 'NS CPMG 2-site star full' >>> MODEL_DESC_NS_CPMG_2SITE_STAR_FULL = "The full numerical solution for the >>> 2-site Bloch-McConnell equations using complex conjugate matrices for SQ >>> CPMG experiments." >>> @@ -251,6 +282,7 @@ >>> MODEL_YEAR_NS_CPMG_2SITE_STAR_FULL = 2004 >>> MODEL_EXP_TYPE_NS_CPMG_2SITE_STAR_FULL = EXP_TYPE_CPMG_SQ >>> MODEL_SITES_NS_CPMG_2SITE_STAR_FULL = 2 >>> +MODEL_EQ_NS_CPMG_2SITE_STAR_FULL = EQ_NUMERIC >>> >>> MODEL_NS_CPMG_2SITE_EXPANDED = 'NS CPMG 2-site expanded' >>> MODEL_DESC_NS_CPMG_2SITE_EXPANDED = "The numerical solution for the 2-site >>> Bloch-McConnell equations for SQ CPMG experiments, expanded using Maple by >>> Nikolai Skrynnikov." >>> @@ -258,6 +290,7 @@ >>> MODEL_YEAR_NS_CPMG_2SITE_EXPANDED = 2001 >>> MODEL_EXP_TYPE_NS_CPMG_2SITE_EXPANDED = EXP_TYPE_CPMG_SQ >>> MODEL_SITES_NS_CPMG_2SITE_EXPANDED = 2 >>> +MODEL_EQ_NS_CPMG_2SITE_EXPANDED = EQ_SILICO >>> >>> MODEL_NS_R1RHO_2SITE = 'NS R1rho 2-site' >>> MODEL_DESC_NS_R1RHO_2SITE = "The reduced numerical solution for the 2-site >>> Bloch-McConnell equations using 3D magnetisation vectors for R1rho-type >>> experiments, whereby the simplification R20A = R20B is assumed." >>> @@ -265,6 +298,7 @@ >>> MODEL_YEAR_NS_R1RHO_2SITE = 2005 >>> MODEL_EXP_TYPE_NS_R1RHO_2SITE = EXP_TYPE_R1RHO >>> MODEL_SITES_NS_R1RHO_2SITE = 2 >>> +MODEL_EQ_NS_R1RHO_2SITE = EQ_NUMERIC >>> >>> MODEL_NS_R1RHO_2SITE_FIT_R1 = "%s_fit_r1"%MODEL_NS_R1RHO_2SITE >>> MODEL_DESC_NS_R1RHO_2SITE_FIT_R1 = "The reduced numerical solution for the >>> 2-site Bloch-McConnell equations using 3D magnetisation vectors for >>> R1rho-type experiments, whereby the simplification R20A = R20B is assumed, >>> and where R1 is fitted." >>> @@ -272,6 +306,7 @@ >>> MODEL_YEAR_NS_R1RHO_2SITE_FIT_R1 = 2005 >>> MODEL_EXP_TYPE_NS_R1RHO_2SITE_FIT_R1 = EXP_TYPE_R1RHO >>> MODEL_SITES_NS_R1RHO_2SITE_FIT_R1 = 2 >>> +MODEL_EQ_NS_R1RHO_2SITE_FIT_R1 = EQ_NUMERIC >>> >>> MODEL_NS_R1RHO_3SITE = 'NS R1rho 3-site' >>> MODEL_DESC_NS_R1RHO_3SITE = "The numerical solution for the 3-site >>> Bloch-McConnell equations using 3D magnetisation vectors for R1rho-type >>> experiments, whereby the simplification R20A = R20B = R20C is assumed." >>> @@ -279,6 +314,7 @@ >>> MODEL_YEAR_NS_R1RHO_3SITE = 2005 >>> MODEL_EXP_TYPE_NS_R1RHO_3SITE = EXP_TYPE_R1RHO >>> MODEL_SITES_NS_R1RHO_3SITE = 3 >>> +MODEL_EQ_NS_R1RHO_3SITE = EQ_NUMERIC >>> >>> MODEL_NS_R1RHO_3SITE_LINEAR = 'NS R1rho 3-site linear' >>> MODEL_DESC_NS_R1RHO_3SITE_LINEAR = "The numerical solution for the 3-site >>> Bloch-McConnell equations using 3D magnetisation vectors for R1rho-type >>> experiments, linearised with kAC = kCA = 0 and whereby the simplification >>> R20A = R20B = R20C is assumed." >>> @@ -286,6 +322,7 @@ >>> MODEL_YEAR_NS_R1RHO_3SITE_LINEAR = 2005 >>> MODEL_EXP_TYPE_NS_R1RHO_3SITE_LINEAR = EXP_TYPE_R1RHO >>> MODEL_SITES_NS_R1RHO_3SITE_LINEAR = 3 >>> +MODEL_EQ_NS_R1RHO_3SITE_LINEAR = EQ_NUMERIC >>> >>> # The multi-quantum data model names. >>> MODEL_MMQ_CR72 = 'MMQ CR72' >>> @@ -294,6 +331,7 @@ >>> MODEL_YEAR_MMQ_CR72 = 2004 >>> MODEL_EXP_TYPE_MMQ_CR72 = EXP_TYPE_CPMG_MMQ >>> MODEL_SITES_MMQ_CR72 = 2 >>> +MODEL_EQ_MMQ_CR72 = EQ_ANALYTIC >>> >>> MODEL_NS_MMQ_2SITE = 'NS MMQ 2-site' >>> MODEL_DESC_NS_MMQ_2SITE = "The reduced numerical solution for the 2-site >>> Bloch-McConnell equations for MMQ CPMG experiments, whereby the >>> simplification R20A = R20B is assumed." >>> @@ -301,6 +339,7 @@ >>> MODEL_YEAR_NS_MMQ_2SITE = 2005 >>> MODEL_EXP_TYPE_NS_MMQ_2SITE = EXP_TYPE_CPMG_MMQ >>> MODEL_SITES_NS_MMQ_2SITE = 2 >>> +MODEL_EQ_NS_MMQ_2SITE = EQ_NUMERIC >>> >>> MODEL_NS_MMQ_3SITE = 'NS MMQ 3-site' >>> MODEL_DESC_NS_MMQ_3SITE = "The numerical solution for the 3-site >>> Bloch-McConnell equations for MMQ CPMG experiments, whereby the >>> simplification R20A = R20B = R20C is assumed." >>> @@ -308,6 +347,7 @@ >>> MODEL_YEAR_NS_MMQ_3SITE = 2005 >>> MODEL_EXP_TYPE_NS_MMQ_3SITE = EXP_TYPE_CPMG_MMQ >>> MODEL_SITES_NS_MMQ_3SITE = 3 >>> +MODEL_EQ_NS_MMQ_3SITE = EQ_NUMERIC >>> >>> MODEL_NS_MMQ_3SITE_LINEAR = 'NS MMQ 3-site linear' >>> MODEL_DESC_NS_MMQ_3SITE_LINEAR = "The numerical solution for the 3-site >>> Bloch-McConnell equations for MMQ CPMG experiments, linearised with kAC = >>> kCA = 0 and whereby the simplification R20A = R20B = R20C is assumed." >>> @@ -315,6 +355,7 @@ >>> MODEL_YEAR_NS_MMQ_3SITE_LINEAR = 2005 >>> MODEL_EXP_TYPE_NS_MMQ_3SITE_LINEAR = EXP_TYPE_CPMG_MMQ >>> MODEL_SITES_NS_MMQ_3SITE_LINEAR = 3 >>> +MODEL_EQ_NS_MMQ_3SITE_LINEAR = EQ_NUMERIC >>> >>> # The parameters. >>> PARAMS_R20 = ['r2', 'r2a', 'r2b'] >>> @@ -650,4 +691,43 @@ >>> MODEL_NS_MMQ_2SITE: MODEL_SITES_NS_MMQ_2SITE, >>> MODEL_NS_MMQ_3SITE: MODEL_SITES_NS_MMQ_3SITE, >>> MODEL_NS_MMQ_3SITE_LINEAR: MODEL_SITES_NS_MMQ_3SITE_LINEAR >>> +} >>> + >>> +# Full list of equation type. >>> +MODEL_EQ = { >>> + MODEL_R2EFF: MODEL_EQ_R2EFF, >>> + MODEL_NOREX: MODEL_EQ_NOREX, >>> + MODEL_NOREX_R1RHO: MODEL_EQ_NOREX_R1RHO, >>> + MODEL_NOREX_R1RHO_FIT_R1: MODEL_EQ_NOREX_R1RHO_FIT_R1, >>> + MODEL_LM63: MODEL_EQ_LM63, >>> + MODEL_LM63_3SITE: MODEL_EQ_LM63_3SITE, >>> + MODEL_CR72: MODEL_EQ_CR72, >>> + MODEL_CR72_FULL: MODEL_EQ_CR72_FULL, >>> + MODEL_IT99: MODEL_EQ_IT99, >>> + MODEL_TSMFK01: MODEL_EQ_TSMFK01, >>> + MODEL_B14: MODEL_EQ_B14, >>> + MODEL_B14_FULL: MODEL_EQ_B14_FULL, >>> + MODEL_M61: MODEL_EQ_M61, >>> + MODEL_M61B: MODEL_EQ_M61B, >>> + MODEL_DPL94: MODEL_EQ_DPL94, >>> + MODEL_DPL94_FIT_R1: MODEL_EQ_DPL94_FIT_R1, >>> + MODEL_TP02: MODEL_EQ_TP02, >>> + MODEL_TP02_FIT_R1: MODEL_EQ_TP02_FIT_R1, >>> + MODEL_TAP03: MODEL_EQ_TAP03, >>> + MODEL_TAP03_FIT_R1: MODEL_EQ_TAP03_FIT_R1, >>> + MODEL_MP05: MODEL_EQ_MP05, >>> + MODEL_MP05_FIT_R1: MODEL_EQ_MP05_FIT_R1, >>> + MODEL_NS_CPMG_2SITE_3D: MODEL_EQ_NS_CPMG_2SITE_3D, >>> + MODEL_NS_CPMG_2SITE_3D_FULL: MODEL_EQ_NS_CPMG_2SITE_3D_FULL, >>> + MODEL_NS_CPMG_2SITE_STAR: MODEL_EQ_NS_CPMG_2SITE_STAR, >>> + MODEL_NS_CPMG_2SITE_STAR_FULL: MODEL_EQ_NS_CPMG_2SITE_STAR_FULL, >>> + MODEL_NS_CPMG_2SITE_EXPANDED: MODEL_EQ_NS_CPMG_2SITE_EXPANDED, >>> + MODEL_NS_R1RHO_2SITE: MODEL_EQ_NS_R1RHO_2SITE, >>> + MODEL_NS_R1RHO_2SITE_FIT_R1: MODEL_EQ_NS_R1RHO_2SITE_FIT_R1, >>> + MODEL_NS_R1RHO_3SITE: MODEL_EQ_NS_R1RHO_3SITE, >>> + MODEL_NS_R1RHO_3SITE_LINEAR: MODEL_EQ_NS_R1RHO_3SITE_LINEAR, >>> + MODEL_MMQ_CR72: MODEL_EQ_MMQ_CR72, >>> + MODEL_NS_MMQ_2SITE: MODEL_EQ_NS_MMQ_2SITE, >>> + MODEL_NS_MMQ_3SITE: MODEL_EQ_NS_MMQ_3SITE, >>> + MODEL_NS_MMQ_3SITE_LINEAR: MODEL_EQ_NS_MMQ_3SITE_LINEAR >>> } >>> >>> Modified: >>> branches/R1_fitting/test_suite/unit_tests/_specific_analyses/_relax_disp/test_variables.py >>> URL: >>> http://svn.gna.org/viewcvs/relax/branches/R1_fitting/test_suite/unit_tests/_specific_analyses/_relax_disp/test_variables.py?rev=24983&r1=24982&r2=24983&view=diff >>> ============================================================================== >>> --- >>> branches/R1_fitting/test_suite/unit_tests/_specific_analyses/_relax_disp/test_variables.py >>> (original) >>> +++ >>> branches/R1_fitting/test_suite/unit_tests/_specific_analyses/_relax_disp/test_variables.py >>> Tue Aug 12 10:54:36 2014 >>> @@ -20,8 +20,8 @@ >>> >>> ############################################################################### >>> >>> # relax module imports. >>> -from specific_analyses.relax_disp.variables import MODEL_CR72, >>> MODEL_MMQ_CR72, MODEL_NS_R1RHO_3SITE >>> -from specific_analyses.relax_disp.variables import MODEL_EXP_TYPE, >>> MODEL_PARAMS, MODEL_SITES, MODEL_YEAR >>> +from specific_analyses.relax_disp.variables import MODEL_CR72, >>> MODEL_MMQ_CR72, MODEL_NS_CPMG_2SITE_EXPANDED, MODEL_NS_R1RHO_3SITE >>> +from specific_analyses.relax_disp.variables import MODEL_EXP_TYPE, >>> MODEL_EQ, MODEL_PARAMS, MODEL_SITES, MODEL_YEAR >>> from test_suite.unit_tests.base_classes import UnitTestCase >>> >>> >>> @@ -67,3 +67,13 @@ >>> >>> # Test the return. >>> self.assertEqual(model_sites, 3) >>> + >>> + >>> + def test_MODEL_EQ(self): >>> + """Unit test of the MODEL_EQ dictionary.""" >>> + >>> + # Test model equation type return from model equation dictionary. >>> + model_eq = MODEL_EQ[MODEL_NS_CPMG_2SITE_EXPANDED] >>> + >>> + # Test the return. >>> + self.assertEqual(model_eq, 'silico') >>> >>> >>> _______________________________________________ >>> relax (http://www.nmr-relax.com) >>> >>> This is the relax-commits mailing list >>> relax-comm...@gna.org >>> >>> 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 relax-devel@gna.org 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