For future reference, this issue is being simultaneously discussed in
the thread for r24984 at
http://thread.gmane.org/gmane.science.nmr.relax.scm/22734.  Troels,
could you continue the discussions all in this thread?

Cheers,

Edward

On 18 August 2014 17:10, Edward d'Auvergne <edw...@nmr-relax.com> wrote:
> Ah, this logic makes more sense :)  We should then use a combination
> of model speed and accuracy as the decider for both nesting and order!
>  Note that the entire point of the nesting is for speed - by avoiding
> the grid search for very slow, i.e. numeric, models.  The year the
> model was published is not very useful for this.
>
> In the CPMG data case, B14 is better than CR72 for slow exchange.  But
> CR72 is far better than IT99 or TSMFK01 as these are special case
> models which do not arise often (which should be identified by the
> user before the analysis).  B14 and CR72 are probably not so great for
> fast exchange situations due to parameter redundancy making the
> optimisation problem hell for these models.  Note that because of
> historical reasons, possibly speed and politics as well, that many
> users will choose CR72 instead of B14 (it unfortunately takes a long
> time for the field to move to better solutions).  For the R1rho
> models, MP05 is better than TP02, DPL94, etc.  So maybe we need a hard
> coded dictionary of lists such as:
>
> MODEL_NESTING = {
>     ...
>     MODEL_CR72:  [],
>     MODEL_B14:  [MODEL_CR72],
>     MODEL_NS_CPMG_2SITE_EXPANDED:  [MODEL_B14, MODEL_CR72],
>     MODEL_NS_CPMG_2SITE_3D:  [MODEL_NS_CPMG_2_SITE_EXPANDED,
> MODEL_B14, MODEL_CR72],
>     ...
>     MODEL_NS_R1RHO_2SITE:  [MODEL_MP05, MODEL_TAP03, MODEL_TP02, MODEL_DPL94],
>     ...
> }
>
> So here the B14 model is used for the 'NS CPMG 2-site expanded' model
> first, and then drops back to CR72 if B14 does not exist.  We will
> have to create a hardcoded list of model nesting in the relax manual
> for this - such a table is essential for the user.  Therefore having a
> hardcoded dictionary in the variables module is not an issue.  We
> could provide a set of functions in the
> specific_analyses.relax_disp.model module to change this dictionary,
> if you wish to have it programatically changed.  Or, better yet,
> MODEL_NESTING would be a special Python dictionary object that has
> methods for changing its defaults.
>
> Anyway, it is very hard to pick which model should be used, as the
> fast vs. slow exchange problem is a dominating factor for the nesting
> for the numeric models and the alpha-value calculation is not
> implemented yet (https://gna.org/task/?7800).  Nevertheless, hardcoded
> good default values based on logic of accuracy and speed would be very
> useful and match a hardcoded table in the manual.  But the fast vs.
> slow question might make users want to change the model nesting, hence
> why I mentioned earlier about accepting a model nesting dictionary as
> an argument for the relax_disp auto-analysis.  And if the user knows
> that the best analytic model for their data is TSMFK01 (or IT99), then
> they would want to use this as the starting point for the numeric
> models and would not use B14 or CR72 which in these conditions would
> be bad approximations (though they might use the models anyway for
> comparison).
>
> Regards,
>
> Edward
>
>
>
>
> On 18 August 2014 16:40, Troels Emtekær Linnet <tlin...@nmr-relax.com> wrote:
>> Hi Edward.
>>
>> The good thing about the code, is that a change for the nesting only
>> needs very little work.
>> Only one or two lines needs to be changed. That is all.
>>
>> It became a realisation for me, that when adding new models to relax,
>> it should not be necessary to
>> hard code every possibility into relax in the auto analysis.
>>
>> There have to be a function helping out with this.
>>
>> I can write up some examples, which illustrate the problem.
>>
>> CPMG:
>> models = ['R2eff', 'No Rex', 'B14', 'NS CPMG 2-site 3D', 'NS CPMG
>> 2-site expanded']
>>
>> This would for the user seem to be a good list of models to test.
>> The user have maybe read, that 'B14' is more precise than 'CR72', and
>> does not wan't "waste" time on CR72.
>>
>> But nothing would be nested, even though that the solutions should be
>> expected to be quite similar.
>> Why not nest from 'B14'? or 'NS CPMG 2-site 3D', if the optimised
>> parameters are there?
>>
>> models = ['R2eff', 'No Rex', 'CR72', 'B14', 'NS CPMG 2-site 3D', 'NS
>> CPMG 2-site expanded']
>> Here the user "knows", that it is essential to nest from CR72.
>> But if 'NS CPMG 2-site expanded' has been analysed (which nested from
>> CR72), should 'NS CPMG 2-site 3D' then
>> nest from CR72 or "the more precise" 'NS CPMG 2-site expanded' ?
>>
>> It quickly arises to a two step problem.
>>
>> In which order should the models be analysed?
>> From which model should model nest from.
>>
>> Best
>> Troels
>>
>>
>>
>> 2014-08-18 16:21 GMT+02:00 Edward d'Auvergne <edw...@nmr-relax.com>:
>>> Hi,
>>>
>>>
>>>> You will soon see my commits about sorting the models.
>>>
>>> I'm still catching up on your huge number of changes :)
>>>
>>>
>>>> And here we would probably have to discuss a little.
>>>
>>> It's best to discuss ideas before implementing them, as it's then far
>>> easier to change to the best course.  It's far more difficult once
>>> code and time has been invested into one solution when a better
>>> solution could have been first implemented.
>>>
>>>
>>>> There is a huge time potential to nest parameters from earlier models.
>>>
>>> This was a major point in our paper
>>> (http://dx.doi.org/10.1093/bioinformatics/btu166, and mentioned in the
>>> abstract) which I can now see has volume and page numbers :)
>>>
>>>
>>>> And so by common sense, it would/could be best to nest from numerical
>>>> solutions, since they are more precise.
>>>> But they are terrible slow.
>>>
>>> This is not a good idea :S  Well, the analytic models are
>>> approximations anyway so there is a bias in the parameter values, and
>>> this destroys any value the higher precision of the numeric models
>>> could give.
>>>
>>>
>>>> Unless they are these special hybrid version.
>>>
>>> Hybrid, I don't understand?
>>>
>>>
>>>> The word "silico", I took from:
>>>> A.J. Baldwin (2014). An exact solution for R2,eff in CPMG experiments
>>>> in the case of two site chemical exchange. J. Magn. Reson., 2014.
>>>> (10.1016/j.jmr.2014.02.023).
>>>>
>>>> I think it is a very good representation.
>>>>
>>>> "Silico" is "fast", and precise.
>>>
>>> Hmmm, maybe Nikolai should be asked about this.  I believe he would
>>> have a strong opinion about this categorisation of his model, and I
>>> don't remember him ever using such terminology.  Andy used the text
>>> "derived in silico" in the introduction which is quite different, as
>>> 'in silico' just means on a computer.  Most modern analytic models
>>> would also be derived using Mathametica, Maxima, etc. on a computer
>>> and could equally be said to be 'in silico' derived.  I bet Andy also
>>> used symbolic computational software for his paper ;)
>>>
>>>
>>>> But "impossible" to read and understand from the code.
>>>>
>>>> I think that "silico" is a good way to represent a "subset" of
>>>> numerical solutions.
>>>>
>>>> I would rather describe a model as being "silico", than to add meta
>>>> data about "how fast" it is.
>>>
>>> Why is this differential catagorisation needed at all?  I know this
>>> would invalidate a lot of work, but would it not be better to have
>>> hard coded nested model defaults?  I.e. a dictionary structure as you
>>> have already used in the variables module, with one entry per model.
>>>
>>> Regards,
>>>
>>> Edward

_______________________________________________
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

Reply via email to