Hi again, Please ignore the comment about the constraints algorithm not being implemented ;) The relax_disp branch now uses the log barrier algorithm (http://en.wikipedia.org/wiki/Barrier_function#logarithmic_barrier_function) to constrain the parameters without gradient target functions. This was a very simple and quick fix.
Regards, Edward On 29 May 2013 12:01, Edward d'Auvergne <[email protected]> wrote: > 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

