Hi Edward.

I will know, that this will cause some problems.

The button should be part of the GUI, so it can be seen.

There should maybe be a "helper" function, or the error message show
what is wrong, AND give a suggestion.

For example:
  "The error analysis is not set up".
  "Based on your data, you could try:
     spectrum.error_analysis(subset=[''])
     spectrum.error_analysis(subset=[''])
     spectrum.error_analysis(subset=[''])

Best
Troels

2014-08-28 10:06 GMT+02:00 Edward d'Auvergne <[email protected]>:
> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]>:
>>>> 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,  <[email protected]> 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
>>>>> [email protected]
>>>>>
>>>>> 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
>>>> [email protected]
>>>>
>>>> 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
[email protected]

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