mailr19302 - /trunk/specific_analyses/model_free/main.py


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

Header


Content

Posted by edward on April 02, 2013 - 12:34:
Author: bugman
Date: Tue Apr  2 12:34:05 2013
New Revision: 19302

URL: http://svn.gna.org/viewcvs/relax?rev=19302&view=rev
Log:
Fix for bug #20683 (https://gna.org/bugs/?20683) - the infinite and NaN data 
in Bruker DC files.

This was reported by Mengjun Xue <mengjun dott xue att mailbox dott tu-berlin 
dot de>.

The model-free specific overfit_deselect() method now checks for infinite 
relaxation data and
deselects the spin if such data is encountered.


Modified:
    trunk/specific_analyses/model_free/main.py

Modified: trunk/specific_analyses/model_free/main.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/model_free/main.py?rev=19302&r1=19301&r2=19302&view=diff
==============================================================================
--- trunk/specific_analyses/model_free/main.py (original)
+++ trunk/specific_analyses/model_free/main.py Tue Apr  2 12:34:05 2013
@@ -32,11 +32,12 @@
 
 # relax module imports.
 import lib.arg_check
+from lib.float import isInf
+from lib.errors import RelaxError, RelaxFault, RelaxFuncSetupError, 
RelaxNoModelError, RelaxNoSequenceError, RelaxNoTensorError, RelaxTensorError
+from lib.warnings import RelaxDeselectWarning, RelaxWarning
 from pipe_control import diffusion_tensor, interatomic, pipes, sequence
 from pipe_control.mol_res_spin import count_spins, exists_mol_res_spin_data, 
find_index, return_spin, return_spin_from_index, return_spin_indices, 
spin_loop
 import specific_analyses
-from lib.errors import RelaxError, RelaxFault, RelaxFuncSetupError, 
RelaxNoModelError, RelaxNoSequenceError, RelaxNoTensorError, RelaxTensorError
-from lib.warnings import RelaxDeselectWarning, RelaxWarning
 from user_functions.data import Uf_tables; uf_tables = Uf_tables()
 from user_functions.objects import Desc_container
 
@@ -2030,12 +2031,24 @@
 
             # Data checks.
             if data_check:
-                # The number of relaxation data points.
+                # The number of relaxation data points (and for infinite 
data).
                 data_points = 0
+                inf_data = False
                 if hasattr(cdp, 'ri_ids') and hasattr(spin, 'ri_data'):
                     for id in cdp.ri_ids:
                         if id in spin.ri_data and spin.ri_data[id] != None:
                             data_points += 1
+
+                            # Infinite data!
+                            if isInf(spin.ri_data[id]):
+                                inf_data = True
+
+                # Infinite data.
+                if inf_data:
+                    warn(RelaxDeselectWarning(spin_id, 'infinite relaxation 
data'))
+                    spin.select = False
+                    deselect_flag = True
+                    continue
 
                 # Relaxation data must exist!
                 if not hasattr(spin, 'ri_data'):




Related Messages


Powered by MHonArc, Updated Tue Apr 02 12:40:10 2013