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