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