mailRe: [task #7415] Implement support for inversion-recovery R1 curve fitting


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on November 30, 2014 - 11:01:
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/



Related Messages


Powered by MHonArc, Updated Sun Nov 30 21:20:18 2014