mailRe: r25348 - /trunk/specific_analyses/relax_disp/data.py


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

Header


Content

Posted by Edward d'Auvergne on September 02, 2014 - 16:32:
Hi Troels,

You'll now find that the spectrum.error_analysis user function button
in the spectrum list GUI element is now implemented.  I'm not sure
what I'll do with the other parts yet.

Regards,

Edward


On 28 August 2014 10:38, Edward d'Auvergne <edward@xxxxxxxxxxxxx> wrote:
Hi,

Right, it's missing from the GUI!  I assumed that it was part of the
peak intensity loading wizard, but that is not correct.  I'll have to
think where the best place for this would be.  It would have to be
after the 'Spectra list' GUI element.  Or maybe it could be a button
in that element, after the 'Add' and 'Delete' buttons.  Then I'd need
to check it when the 'Execute' button is clicked on so that the error
window is shown and the auto-analysis blocked.

Cheers,

Edward



On 28 August 2014 10:25, Troels Emtekær Linnet <tlinnet@xxxxxxxxxxxxx> 
wrote:
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 <edward@xxxxxxxxxxxxx>:
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 <edward@xxxxxxxxxxxxx> 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 <tlinnet@xxxxxxxxxxxxx> 
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 <edward@xxxxxxxxxxxxx>:
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,  <tlinnet@xxxxxxxxxxxxx> 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-commits@xxxxxxx

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@xxxxxxx

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



Related Messages


Powered by MHonArc, Updated Tue Sep 02 19:20:11 2014