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