Hi Andras, No problems. Due to the infrastructure changes since Sébastien started the inversion-recovery branch, the new implementation took less than a day. It is not ideal from a programming perspective though, as the code in the target_functions/relax_fit_wrapper.py should really shift into the relax_fit.c module, as the C module can and should provide all of this functionality. But this is the part where Séb got stuck - how to dynamically select between target functions in the C code. So it is really a short cut to finally get this code running. As for choosing your curve type, you can select the standard 2 parameter exponential (does this have a unique name, I don't remember?), in which the peak starts positive at I0 and decays to zero with: relax_fit.select_model('exp') Or the inversion recovery experiment whereby the peak is initially negative at -I0 and decays to a positive Iinf value: relax_fit.select_model('inv') Or the saturation recovery experiment whereby the peak starts at 0 and decays to a positive Iinf value: relax_fit.select_model('sat') Note that I have changed I0 to Iinf in the saturation recovery experiment equation. This is for internal parameter consistency in relax, to match the other two models. The saturation recovery equation I(t) = Iinf*(1 - exp(-Rt)) was also not present in the inversion-recovery branch, but that was easy to implement by copying the target_functions/exponential.c file to exponential_sat.c and changing all the value, gradient and Hessian functions for the different equation. Are there any other categories of exponential relaxation experiment out there that do not fit into these three? Regards, Edward On 30 November 2014 at 03:59, Boeszoermenyi, Andras <Andras_Boeszoermenyi@xxxxxxxxxxxxxxx> wrote:
Hi Edward, thanks a ton. I have been testing the inversion recovery with real data and it does really well, but I would have one more question. How would I call the saturation recovery experiment in relax_fit.select_model? Best, Andras ________________________________________ From: Edward d Auvergne [NO-REPLY.INVALID-ADDRESS@xxxxxxx] Sent: Saturday, November 29, 2014 7:33 PM To: Edward d Auvergne; Boeszoermenyi, Andras; Sébastien Morin; sebastien@xxxxxxxxxxxxx; Troels E. Linnet; relax-devel@xxxxxxx Subject: [task #7415] Implement support for inversion-recovery R1 curve fitting Update of task #7415 (project relax): Status: Postponed => Completed Percent Complete: 50% => 100% Open/Closed: Open => Closed _______________________________________________________ Follow-up Comment #9: This is now fully implemented in the relax trunk. The system test Relax_fit.test_inversion_recovery, based on the original inversion-recovery branch and the relax_fit_exp_3param_inv_neg.py system test script, now passes. This demonstrates that the inversion recovery R1 curve-fitting is fully functional. The C code from the original branch was not used, as it was simpler to duplicate the target_functions/exponential.c file to exponential_inv.c and update function, gradient, and Hessian functions for the different curve type. The original code did not have gradient or Hessians implemented, as this is relatively new for the curve-fitting analysis. In addition, the saturation recovery model type has also been fully implemented and a system test based on the attached files passes. _______________________________________________________ Reply to this item at: <http://gna.org/task/?7415> _______________________________________________ Message sent via/by Gna! http://gna.org/