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

