Hi Troels,

What is your opinion on forcing the user to perform the error analysis
themselves prior to starting the auto-analysis?  I have made the
change, though not committed it.  This will require the
spectrum.error_analysis user function to be added to 16 system tests
to allow them to pass again.

Cheers,

Edward



On 28 August 2014 09:56, Edward d'Auvergne <edw...@nmr-relax.com> wrote:
> Hi,
>
> I've just looked at the auto-analysis error_analysis() method and can
> see how bad this code is!  It must be a remnant from very early on in
> the implementation of the dispersion analysis.  I'll look at removing
> this broken logic.  As for the backend function, if it's only for your
> own purposes that's ok.
>
> Cheers,
>
> Edward
>
>
>
> On 28 August 2014 09:48, Troels Emtekær Linnet <tlin...@nmr-relax.com> wrote:
>> Dear Edward.
>>
>> This method is a copy of the one implemented in the auto analysis protocol.
>>
>> It was not intended to implement a new functionality.
>>
>> Since this is a back-end function, and "hard" to reach, I will prefer
>> to let it stay there.
>> But let me know if I should remove it.
>>
>> Best
>> Troels
>>
>> 2014-08-28 9:02 GMT+02:00 Edward d'Auvergne <edw...@nmr-relax.com>:
>>> Hi Troels,
>>>
>>> This should really be performed by the user and not automatically by
>>> relax.  The current spectrum sub-setting you perform is no good.
>>> Sometimes a user will have different settings for the same
>>> spectrometer but for different offsets, for example they may change
>>> the spectral width.  A good example is of HEHAHA experiments where you
>>> only look at a spectrum with a single peak (you isolate each peak).
>>> There is actually no sub-setting assumptions you can make
>>> automatically here for the user that will be correct.  There are far
>>> too many error analysis combinations that a user could come up with.
>>> The best behaviour is to raise a RelaxError to tell the user that they
>>> forgot to do something.  I would strongly prefer that this automatic
>>> behaviour is not used, it's far to risky and will cause users to
>>> perform something incorrectly without them ever knowing!
>>>
>>> Cheers,
>>>
>>> Edward
>>>
>>>
>>>
>>>
>>>
>>> On 27 August 2014 20:06,  <tlin...@nmr-relax.com> wrote:
>>>> Author: tlinnet
>>>> Date: Wed Aug 27 20:06:24 2014
>>>> New Revision: 25348
>>>>
>>>> URL: http://svn.gna.org/viewcvs/relax?rev=25348&view=rev
>>>> Log:
>>>> Added method to automatically perform error analysis on peak heights.
>>>>
>>>> task #7822(https://gna.org/task/index.php?7822): Implement user function 
>>>> to estimate R2eff and associated errors for exponential curve fitting.
>>>>
>>>> Modified:
>>>>     trunk/specific_analyses/relax_disp/data.py
>>>>
>>>> Modified: trunk/specific_analyses/relax_disp/data.py
>>>> URL: 
>>>> http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/relax_disp/data.py?rev=25348&r1=25347&r2=25348&view=diff
>>>> ==============================================================================
>>>> --- trunk/specific_analyses/relax_disp/data.py  (original)
>>>> +++ trunk/specific_analyses/relax_disp/data.py  Wed Aug 27 20:06:24 2014
>>>> @@ -68,13 +68,14 @@
>>>>  from lib.physical_constants import g1H, return_gyromagnetic_ratio
>>>>  from lib.sequence import read_spin_data, write_spin_data
>>>>  from lib.software.grace import write_xy_data, write_xy_header, 
>>>> script_grace2images
>>>> +from lib.text.sectioning import section
>>>>  from lib.warnings import RelaxWarning, RelaxNoSpinWarning
>>>>  from pipe_control import pipes
>>>>  from pipe_control.mol_res_spin import check_mol_res_spin_data, 
>>>> exists_mol_res_spin_data, generate_spin_id_unique, generate_spin_string, 
>>>> return_spin, spin_loop
>>>>  from pipe_control.result_files import add_result_file
>>>>  from pipe_control.selection import desel_spin
>>>>  from pipe_control.sequence import return_attached_protons
>>>> -from pipe_control.spectrum import add_spectrum_id
>>>> +from pipe_control.spectrum import add_spectrum_id, error_analysis
>>>>  from pipe_control.spectrometer import check_frequency, get_frequency
>>>>  from pipe_control import value
>>>>  import specific_analyses
>>>> @@ -247,6 +248,50 @@
>>>>
>>>>      # Return the dic and list of keys
>>>>      return [theta_spin_dic, Domega_spin_dic, w_eff_spin_dic, dic_key_list]
>>>> +
>>>> +
>>>> +def check_intensity_errors(spin_id=None):
>>>> +    """Check if intensity errors have already been calculated by the user.
>>>> +
>>>> +    @keyword spin_id:           The spin identification string.
>>>> +    @type spin_id:              str
>>>> +    """
>>>> +
>>>> +    # Check if intensity errors have already been calculated by the user.
>>>> +    precalc = True
>>>> +    for cur_spin, mol_name, resi, resn, cur_spin_id in 
>>>> spin_loop(selection=spin_id, full_info=True, return_id=True, 
>>>> skip_desel=True):
>>>> +        # No structure.
>>>> +        if not hasattr(cur_spin, 'peak_intensity_err'):
>>>> +            precalc = False
>>>> +            break
>>>> +
>>>> +        # Determine if a spectrum ID is missing from the list.
>>>> +        for id in cdp.spectrum_ids:
>>>> +            if id not in cur_spin.peak_intensity_err:
>>>> +                precalc = False
>>>> +                break
>>>> +
>>>> +    # If no error analysis of peak heights exists.
>>>> +    if not precalc:
>>>> +        # Printout.
>>>> +        section(file=sys.stdout, text="Error analysis", prespace=2)
>>>> +
>>>> +        # Loop over the spectrometer frequencies.
>>>> +        for frq in loop_frq():
>>>> +            # Generate a list of spectrum IDs matching the frequency.
>>>> +            ids = []
>>>> +            for id in cdp.spectrum_ids:
>>>> +                # Check that the spectrometer frequency matches.
>>>> +                match_frq = True
>>>> +                if frq != None and cdp.spectrometer_frq[id] != frq:
>>>> +                    match_frq = False
>>>> +
>>>> +                # Add the ID.
>>>> +                if match_frq:
>>>> +                    ids.append(id)
>>>> +
>>>> +            # Run the error analysis on the subset.
>>>> +            error_analysis(subset=ids)
>>>>
>>>>
>>>>  def count_exp():
>>>>
>>>>
>>>> _______________________________________________
>>>> relax (http://www.nmr-relax.com)
>>>>
>>>> This is the relax-commits mailing list
>>>> relax-comm...@gna.org
>>>>
>>>> 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-commits
>>>
>>> _______________________________________________
>>> relax (http://www.nmr-relax.com)
>>>
>>> This is the relax-devel mailing list
>>> relax-devel@gna.org
>>>
>>> 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

_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
relax-devel@gna.org

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

Reply via email to