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/