mailr10087 - in /1.3/specific_fns: ./ model_free/


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

Header


Content

Posted by edward on December 14, 2009 - 11:38:
Author: bugman
Date: Mon Dec 14 11:38:04 2009
New Revision: 10087

URL: http://svn.gna.org/viewcvs/relax?rev=10087&view=rev
Log:
Modified all the specific analysis overfit_deselect() methods to warn when 
spins are deselected.


Modified:
    1.3/specific_fns/api_common.py
    1.3/specific_fns/consistency_tests.py
    1.3/specific_fns/frame_order.py
    1.3/specific_fns/hybrid.py
    1.3/specific_fns/jw_mapping.py
    1.3/specific_fns/model_free/main.py
    1.3/specific_fns/n_state_model.py
    1.3/specific_fns/noe.py
    1.3/specific_fns/relax_fit.py

Modified: 1.3/specific_fns/api_common.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/specific_fns/api_common.py?rev=10087&r1=10086&r2=10087&view=diff
==============================================================================
--- 1.3/specific_fns/api_common.py (original)
+++ 1.3/specific_fns/api_common.py Mon Dec 14 11:38:04 2009
@@ -177,6 +177,9 @@
     def _overfit_deselect_dummy(self):
         """Dummy method, normally for deselecting spins with insufficient 
data for minimisation."""
 
+        # Print out.
+        print("\n\nOver-fit spin deselection.\n")
+
 
     def _return_no_conversion_factor(self, param, spin=None, spin_id=None):
         """Method for returning 1.0.

Modified: 1.3/specific_fns/consistency_tests.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/specific_fns/consistency_tests.py?rev=10087&r1=10086&r2=10087&view=diff
==============================================================================
--- 1.3/specific_fns/consistency_tests.py (original)
+++ 1.3/specific_fns/consistency_tests.py Mon Dec 14 11:38:04 2009
@@ -23,6 +23,7 @@
 
 # Python module imports.
 from re import search
+from warnings import warn
 
 # relax module imports.
 from api_base import API_base
@@ -32,6 +33,7 @@
 from maths_fns.consistency_tests import Consistency
 from physical_constants import N15_CSA, NH_BOND_LENGTH, h_bar, mu0, 
return_gyromagnetic_ratio
 from relax_errors import RelaxError, RelaxFuncSetupError, 
RelaxNoSequenceError, RelaxNoValueError, RelaxProtonTypeError, 
RelaxSpinTypeError
+from relax_warnings import RelaxDeselectWarning
 
 
 class Consistency_tests(API_base, API_common):
@@ -349,7 +351,10 @@
 
 
     def overfit_deselect(self):
-        """Function for deselecting spins without sufficient data to support 
calculation"""
+        """Deselect spins which have insufficient data to support 
calculation."""
+
+        # Print out.
+        print("\n\nOver-fit spin deselection.\n")
 
         # Test if the sequence data is loaded.
         if not exists_mol_res_spin_data():
@@ -360,13 +365,13 @@
 
             # Check for sufficient data
             if not hasattr(spin, 'relax_data'):
+                warn(RelaxDeselectWarning(spin_id, 'relaxation data is 
missing'))
                 spin.select = False
-                continue
 
             # Require 3 or more data points
-            if len(spin.relax_data) < 3:
+            elif len(spin.relax_data) < 3:
+                warn(RelaxDeselectWarning(spin_id, 'insufficient relaxation 
data, 3 or more data points are required'))
                 spin.select = False
-                continue
 
 
     return_data_name_doc = """

Modified: 1.3/specific_fns/frame_order.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/specific_fns/frame_order.py?rev=10087&r1=10086&r2=10087&view=diff
==============================================================================
--- 1.3/specific_fns/frame_order.py (original)
+++ 1.3/specific_fns/frame_order.py Mon Dec 14 11:38:04 2009
@@ -45,7 +45,7 @@
 from maths_fns.rotation_matrix import two_vect_to_R
 from relax_errors import RelaxError, RelaxInfError, RelaxNaNError, 
RelaxNoModelError
 from relax_io import open_write_file
-from relax_warnings import RelaxWarning
+from relax_warnings import RelaxWarning, RelaxDeselectWarning
 
 
 class Frame_order(API_base, API_common):

Modified: 1.3/specific_fns/hybrid.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/specific_fns/hybrid.py?rev=10087&r1=10086&r2=10087&view=diff
==============================================================================
--- 1.3/specific_fns/hybrid.py (original)
+++ 1.3/specific_fns/hybrid.py Mon Dec 14 11:38:04 2009
@@ -19,6 +19,9 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  
 #
 #                                                                            
 #
 
###############################################################################
+
+# Python module imports.
+from warnings import warn
 
 # relax module imports.
 from generic_fns import pipes
@@ -26,6 +29,7 @@
 from generic_fns.sequence import compare_sequence
 from relax_errors import RelaxError, RelaxNoSequenceError, RelaxPipeError, 
RelaxSequenceError
 import setup
+from relax_warnings import RelaxDeselectWarning
 
 
 class Hybrid:

Modified: 1.3/specific_fns/jw_mapping.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/specific_fns/jw_mapping.py?rev=10087&r1=10086&r2=10087&view=diff
==============================================================================
--- 1.3/specific_fns/jw_mapping.py (original)
+++ 1.3/specific_fns/jw_mapping.py Mon Dec 14 11:38:04 2009
@@ -22,6 +22,7 @@
 
 # Python module imports.
 from re import search
+from warnings import warn
 
 # relax module imports.
 from api_base import API_base
@@ -31,6 +32,7 @@
 from maths_fns.jw_mapping import Mapping
 from physical_constants import N15_CSA, NH_BOND_LENGTH, h_bar, mu0, 
return_gyromagnetic_ratio
 from relax_errors import RelaxError, RelaxFuncSetupError, 
RelaxNoSequenceError, RelaxNoValueError, RelaxProtonTypeError, 
RelaxSpinTypeError
+from relax_warnings import RelaxDeselectWarning
 
 
 class Jw_mapping(API_base, API_common):
@@ -326,6 +328,9 @@
     def overfit_deselect(self):
         """Deselect spins which have insufficient data to support 
calculation."""
 
+        # Print out.
+        print("\n\nOver-fit spin deselection.\n")
+
         # Test the sequence data exists.
         if not exists_mol_res_spin_data():
             raise RelaxNoSequenceError
@@ -334,13 +339,13 @@
         for spin in spin_loop():
             # Check if data exists.
             if not hasattr(spin, 'relax_data'):
+                warn(RelaxDeselectWarning(spin_id, 'relaxation data is 
missing'))
                 spin.select = False
-                continue
 
             # Require 3 or more data points.
-            if len(spin.relax_data) < 3:
+            elif len(spin.relax_data) < 3:
+                warn(RelaxDeselectWarning(spin_id, 'insufficient relaxation 
data, 3 or more data points are required'))
                 spin.select = False
-                continue
 
 
     return_data_name_doc = """

Modified: 1.3/specific_fns/model_free/main.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/specific_fns/model_free/main.py?rev=10087&r1=10086&r2=10087&view=diff
==============================================================================
--- 1.3/specific_fns/model_free/main.py (original)
+++ 1.3/specific_fns/model_free/main.py Mon Dec 14 11:38:04 2009
@@ -37,8 +37,9 @@
 from maths_fns.mf import Mf
 from minfx.generic import generic_minimise
 from physical_constants import N15_CSA, NH_BOND_LENGTH
+import specific_fns
 from relax_errors import RelaxError, RelaxFuncSetupError, RelaxInfError, 
RelaxInvalidDataError, RelaxLenError, RelaxNaNError, RelaxNoModelError, 
RelaxNoPdbError, RelaxNoResError, RelaxNoSequenceError, RelaxNoSpinSpecError, 
RelaxNoTensorError, RelaxNoValueError, RelaxNoVectorsError, 
RelaxNucleusError, RelaxTensorError
-import specific_fns
+from relax_warnings import RelaxDeselectWarning
 
 
 
@@ -2010,6 +2011,9 @@
     def overfit_deselect(self):
         """Deselect spins which have insufficient data to support 
minimisation."""
 
+        # Print out.
+        print("\n\nOver-fit spin deselection.\n")
+
         # Test if sequence data exists.
         if not exists_mol_res_spin_data():
             raise RelaxNoSequenceError
@@ -2020,23 +2024,28 @@
             need_vect = True
 
         # Loop over the sequence.
-        for spin in spin_loop():
+        for spin, spin_id in spin_loop(return_id=True):
             # Relaxation data must exist!
             if not hasattr(spin, 'relax_data'):
+                warn(RelaxDeselectWarning(spin_id, 'relaxation data is 
missing'))
                 spin.select = False
 
             # Require 3 or more relaxation data points.
             elif len(spin.relax_data) < 3:
+                warn(RelaxDeselectWarning(spin_id, 'insufficient relaxation 
data, 3 or more data points are required'))
                 spin.select = False
 
             # Require at least as many data points as params to prevent 
over-fitting.
             elif hasattr(spin, 'params') and spin.params and 
len(spin.params) > len(spin.relax_data):
+                warn(RelaxDeselectWarning(spin_id, 'over-fitting - more 
parameters than data points'))
                 spin.select = False
 
             # Test for structural data if required.
             elif need_vect and not hasattr(spin, 'xh_vect'):
+                warn(RelaxDeselectWarning(spin_id, 'structural data 
missing'))
                 spin.select = False
             elif need_vect and spin.xh_vect == None:
+                warn(RelaxDeselectWarning(spin_id, 'structural data 
missing'))
                 spin.select = False
 
 

Modified: 1.3/specific_fns/n_state_model.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/specific_fns/n_state_model.py?rev=10087&r1=10086&r2=10087&view=diff
==============================================================================
--- 1.3/specific_fns/n_state_model.py (original)
+++ 1.3/specific_fns/n_state_model.py Mon Dec 14 11:38:04 2009
@@ -49,7 +49,7 @@
 from physical_constants import dipolar_constant, g1H, pcs_constant, 
return_gyromagnetic_ratio
 from relax_errors import RelaxError, RelaxInfError, RelaxModelError, 
RelaxNaNError, RelaxNoModelError, RelaxNoTensorError
 from relax_io import open_write_file
-from relax_warnings import RelaxWarning
+from relax_warnings import RelaxWarning, RelaxDeselectWarning
 
 
 class N_state_model(API_base, API_common):

Modified: 1.3/specific_fns/noe.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/specific_fns/noe.py?rev=10087&r1=10086&r2=10087&view=diff
==============================================================================
--- 1.3/specific_fns/noe.py (original)
+++ 1.3/specific_fns/noe.py Mon Dec 14 11:38:04 2009
@@ -154,7 +154,10 @@
 
 
     def overfit_deselect(self):
-        """Deselect spins which have insufficient data to support 
calculation"""
+        """Deselect spins which have insufficient data to support 
calculation."""
+
+        # Print out.
+        print("\n\nOver-fit spin deselection.\n")
 
         # Test the sequence data exists.
         if not exists_mol_res_spin_data():

Modified: 1.3/specific_fns/relax_fit.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/specific_fns/relax_fit.py?rev=10087&r1=10086&r2=10087&view=diff
==============================================================================
--- 1.3/specific_fns/relax_fit.py (original)
+++ 1.3/specific_fns/relax_fit.py Mon Dec 14 11:38:04 2009
@@ -29,6 +29,7 @@
 from numpy import array, average, dot, float64, identity, zeros
 from numpy.linalg import inv
 from re import match, search
+from warnings import warn
 
 # relax module imports.
 from api_base import API_base
@@ -37,6 +38,7 @@
 from generic_fns import pipes
 from generic_fns.mol_res_spin import exists_mol_res_spin_data, 
generate_spin_id, return_spin, spin_loop
 from relax_errors import RelaxError, RelaxFuncSetupError, RelaxLenError, 
RelaxNoModelError, RelaxNoSequenceError
+from relax_warnings import RelaxDeselectWarning
 
 # C modules.
 if C_module_exp_fn:
@@ -839,6 +841,9 @@
     def overfit_deselect(self):
         """Deselect spins which have insufficient data to support 
minimisation."""
 
+        # Print out.
+        print("\n\nOver-fit spin deselection.\n")
+
         # Test the sequence data exists.
         if not exists_mol_res_spin_data():
             raise RelaxNoSequenceError
@@ -847,13 +852,13 @@
         for spin in spin_loop():
             # Check if data exists.
             if not hasattr(spin, 'intensities'):
+                warn(RelaxDeselectWarning(spin_id, 'intensity data is 
missing'))
                 spin.select = False
-                continue
 
             # Require 3 or more data points.
-            if len(spin.intensities) < 3:
+            elif len(spin.intensities) < 3:
+                warn(RelaxDeselectWarning(spin_id, 'insufficient data, 3 or 
more data points are required'))
                 spin.select = False
-                continue
 
 
     def return_data(self, spin):




Related Messages


Powered by MHonArc, Updated Mon Dec 14 11:40:03 2009