Hi Paul,

I forgot to mention that the hard part would be to come up with a
system test or two to make sure that the incorporation of your code is
successful and that it will continue to work correctly for the
lifetime of the relax project.  A system test is essentially running
the software on a small data set and making sure the correct
parameters come out.  It could even be converted into a GUI test to
make sure that your code also works correctly in the GUI.

Regards,

Edward





On 30 May 2013 18:15, Edward d'Auvergne <[email protected]> wrote:
> Hi Paul,
>
> If you would like to have this incorporated into relax (or NESSY for
> that matter), you and everyone else who has contributed to the code
> would have to agree (in an email to the relax mailing lists) to
> release the code under the GNU Public Licence 3 or higher.  See the
> COPYING file distributed with relax and NESSY or
> http://en.wikipedia.org/wiki/GNU_General_Public_License#Version_3.
> Even if you don't have time to do it yourself, your code could be
> attached to the task tracker item for relaxation dispersion
> (http://gna.org/task/?6401) with comments.  What could then be done is
> that the Python code for the fitting is placed into the relax function
> library in the relax_disp branch in the lib/dispersion directory (or
> package).  A target function for numerical integration in
> target_functions/relax_disp.py could later be added using your code to
> calculate the R2eff/R1rho values, and a model for numerical
> integration added to the relax_disp.select_model user function.  If
> you have a single function (which can call other functions) that
> returns R2eff values for different input parameter values, then
> integrating this code into relax would be trivial.
>
> Cheers,
>
> Edward
>
>
>
>
> On 30 May 2013 17:47, Paul Schanda <[email protected]> wrote:
>> Hi Edward,
>>
>> We have now the numerical Bloch-McConnell equation included in a python
>> script that does the fitting. It looks like a pretty robust thing, and works
>> rather well. Finally, we did our own little scripts, rather than
>> incorporating everything in relax. I felt that this would be more
>> straightforward for us, rather than understanding the structure of relax.
>> But I guess if it's a python code, then it's really straightforward for you
>> to incorporate it...
>>
>> paul
>>
>>
>>
>>
>> On 30.05.13 17:34, Edward d'Auvergne wrote:
>>>>
>>>> You are very productive! and I am stunned to see the development
>>>> so fast. :-)
>>>
>>> Well, I'm sorting out the code for myself specifically for my own
>>> R1rho analyses.  I'm guessing you are interested in the CPMG side of
>>> things.
>>>
>>>
>>>> I think you are hitting "the nail" with the current development of relax.
>>>
>>> There's not much left to finish with the base infrastructure.  As for
>>> adding new models, that's a different, but relatively easy story.  The
>>> numerical integration of the Block-McConnell equations might take more
>>> effort to add but, as all the infrastructure is in place, it shouldn't
>>> be too hard.  Integrating with the other softwares (input file
>>> creation, execution, and reading of results - for NESSY, CPMGFit,
>>> ShereKhan, Catia, Chemex, etc.) will be a continual work in progress.
>>> It will be advanced when someone needs it, this is currently myself to
>>> fully automate the comparison between all the different dispersion
>>> programs simply for sanity purposes.
>>>
>>>
>>>> At the moment the "hardest/time consuming" part for students in our lab,
>>>> is
>>>> the analysis of the
>>>> results. We have a good workflow from recording and peak assignment.
>>>> But from there, it gets more tricky.
>>>
>>> I know this problem well :)
>>>
>>>
>>>> Most of our analysis part is based on "home made" scripts for Igor
>>>> Pro/Matlab.
>>>
>>> Ah, the code for the dispersion models shouldn't be too difficult to
>>> port into relax if you already have Matlab code in place!
>>>
>>>
>>>> They come a long way for most of our analysis.
>>>> The problem is that for a "beginner" there can be a "high energy barrier"
>>>> to
>>>> start
>>>> using these scripts. Not mentioning "license problems", installation and
>>>> such.
>>>> And if you have to make some peak adjustments, then the whole analysis
>>>> should be performed again.
>>>> For a "trained" this takes some hours, but for un-trained, it can take a
>>>> day
>>>> or two.
>>>
>>> I understand this, and this is one useful advantage of a GUI.  I don't
>>> know how you would avoid having to redo a full analysis if the input
>>> data is changed though, except that maybe you could have a relax save
>>> file for the GUI analysis and slightly tweak the data already within
>>> relax, and the rerun the full analysis.
>>>
>>>
>>>> We have been looking for other software for CPMG.
>>>> At least to "quickly" try to match our scripts values.  (Here Nessy
>>>> seemed
>>>> very interesting, but very buggy)
>>>
>>> I am now the maintainer of NESSY so I can fix some of the trivial
>>> bugs.  I have been doing this for a few annoying bugs, for example
>>> see:
>>>
>>> https://mail.gna.org/public/nessy-commits/2013-05/threads.html
>>>
>>> However finding the big bugs and improving the optimisation will not
>>> be possible for me at the moment.
>>>
>>>
>>>> But concerns about installation, development, and even a "harder"
>>>> interface
>>>> than Igor Pro/Matlab, stopped us.
>>>> We(as in me) are at the moment matching some test results at the
>>>> Sherekhan
>>>> server, after making
>>>> a input converter to Sherekhan. That seems to be very easy, and
>>>> promising.
>>>
>>> relax now has this as well in the relax_disp.sherekhan_input user
>>> function.  You can access this from both the prompt/script mode and
>>> the GUI.  I've noticed though that the ShereKhan numerical integration
>>> of the Block-McConnell equations is currently problematic and the poor
>>> little tiger just runs forever!
>>>
>>>
>>>> I am very impressed with relax. Mostly because the GUI can take care of
>>>> novices, and there exist the possibility to
>>>> script it all up for extensive analysis.
>>>> It's free, and I was able to install it on Windows/Linux without to much
>>>> fuss.
>>>
>>> Cheers!  That is exactly what the relax developers have tried to create:
>>>
>>> - the GUI is really for those who don't have much interest in the
>>> theory and just want quick, idiot-proof results from a blackbox (i.e.
>>> perfect for undergrads),
>>> - the prompt/script mode is for power users with interest in the NMR
>>> theory and analysis,
>>> - the prompt/script mode in combination with the relax library
>>> functions is to be a replacement for Mathematica/Matlab for those who
>>> want to live on the cutting edge.
>>>
>>>
>>>> If I want to try some of our data, is the GUI ready for trying?
>>>
>>> There are a few minor bugs I have to sort out first.  For example with
>>> the error analysis for peak heights.  It should be ready for the
>>> 'R2eff' and 'LM63' models soon though.  Still, right now you can do
>>> everything except for clicking on the 'Execute analysis' button.  I
>>> hope it won't take too long.
>>>
>>> Regards,
>>>
>>> Edward
>>>
>>>
>>>
>>>
>>>> 2013/5/29 Edward d'Auvergne <[email protected]>
>>>>>
>>>>> Hi,
>>>>>
>>>>> Troels, you might be interested in the following comparison.  The
>>>>> reviving Sebastien Morin's relaxation dispersion branch in relax is
>>>>> now complete.  The relax_disp branch can now correctly optimise one of
>>>>> the dispersion models, that of Luz and Meiboom 1963 for 2-site fast
>>>>> exchange for CPMG-type experiments.  This does not implement the
>>>>> gradients or Hessians yet, and parameter constraints are still to be
>>>>> added.  But nevertheless relax can find the correct parameter values.
>>>>> This should be a good test of the dispersion code in relax as the
>>>>> addition of other models - such as that for R1rho data, more
>>>>> complicated models for CPMG-type data, and numerical integration of
>>>>> the Bloch-McConnell equations - should be trivial after that
>>>>> (requiring only 20-50 lines of new code, not counting comments and
>>>>> docstrings).
>>>>>
>>>>> Through relax user functions, I can now generate the input for CPMGFit
>>>>> and NESSY.  These are the relax_disp.cpmgfit_input and
>>>>> relax_disp.nessy_input user functions.  We can now also execute
>>>>> CPMGFit within relax using relax_disp.cpmgfit_execute.  This can be
>>>>> completed later, but the idea is to follow the concept of model-free
>>>>> user functions:
>>>>>
>>>>> dasha.create
>>>>> dasha.execute
>>>>> dasha.extract
>>>>> palmer.create
>>>>> palmer.execute
>>>>> palmer.extract
>>>>>
>>>>> These are for the Dasha and Modelfree4 programs respectively.
>>>>> Implementing the 3 user functions for creating input files, executing
>>>>> the program in-line, and extracting the results from the program's
>>>>> output will allow relax to use external programs as optimisation
>>>>> engines.  This is useful for comparing the results from different
>>>>> programs and really eliminating all bugs from the dispersion field.
>>>>>
>>>>> Back to the comparison, I have used Flemming Hansen's 500 and 800 MHz
>>>>> CPMG data from:
>>>>>
>>>>> Hansen, Vallurupalli & Kay, 2008, JPhysChemB, 112: 5898-5904.
>>>>>
>>>>> which he donated to Seb to be added to relax (located in
>>>>> test_suite/shared_data/dispersion/Hansen/).  Looking at a single
>>>>> randomly chosen residue (number 70), I see different results from the
>>>>> 3 programs:
>>>>>
>>>>> Param       relax       NESSY       CPMGFit
>>>>> R2 (500)        6.806       7.639       6.866
>>>>> R2 (800)        6.679       7.387       6.866
>>>>> phi         1.259e-13       0.259   1.226e-13
>>>>> phi (500)   31464.605   26292.031   30644.496
>>>>> phi (800)   80549.390   67307.598   78449.180
>>>>> kex          4763.249    3906.180      4.683
>>>>> tau         4.199e-05   5.120e-05       0.427
>>>>> chi2          106.393     156.446     106.471
>>>>>
>>>>> tau = 2/kex (I think that CPMGFit works with ms units).
>>>>>
>>>>> Obviously NESSY is not doing so well (likely due to using the horribly
>>>>> buggy scipy optimisation code) and relax and CPMGFit find the same
>>>>> result for this model.  The slight difference between relax and
>>>>> CPMGFit is that it looks like CPMGFit assumes the same R2 value for
>>>>> all static fields - which I think would be a little strange,
>>>>> especially if fast internal motions are also present for that spin
>>>>> system.
>>>>>
>>>>> Therefore I believe that this relax branch is in a state to accept
>>>>> code for the other models.  The backends for the
>>>>> relax_disp.cpmgfit_input and relax_disp.nessy_input could be also
>>>>> modified to handle these new models to allow for rigorous comparisons
>>>>> and debugging.  The dispersion infrastructure should no longer have
>>>>> any large changes, so feel free to start playing.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Edward
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>
>>
>> --
>> Paul Schanda, Ph.D.
>> Biomolecular NMR group
>> Institut de Biologie Structurale Jean-Pierre Ebel (IBS)
>> 41, rue Jules Horowitz
>> F-38027 Grenoble
>> France
>> +33 438 78 95 55
>> [email protected]
>> http://www.ibs.fr/groups/biomolecular-nmr-spectroscopy?lang=en
>>

_______________________________________________
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