mailr2458 - in /1.2: generic_fns/ specific_fns/


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

Header


Content

Posted by c . a . macraild on April 07, 2006 - 17:30:
Author: macraild
Date: Fri Apr  7 17:30:12 2006
New Revision: 2458

URL: http://svn.gna.org/viewcvs/relax?rev=2458&view=rev
Log:
Reorganisation of code introduced at r2450 for consistency

Following the suggestion of Edward dAuvergne on relax-devel 
https://mail.gna.org/public/relax-devel/2006-04/msg00005.html
the code introduced at r2450 has been reorganised into specific 
functions for the various run types


Modified:
    1.2/generic_fns/minimise.py
    1.2/specific_fns/jw_mapping.py
    1.2/specific_fns/model_free.py
    1.2/specific_fns/noe.py
    1.2/specific_fns/relax_fit.py
    1.2/specific_fns/specific_setup.py

Modified: 1.2/generic_fns/minimise.py
URL: 
http://svn.gna.org/viewcvs/relax/1.2/generic_fns/minimise.py?rev=2458&r1=2457&r2=2458&view=diff
==============================================================================
--- 1.2/generic_fns/minimise.py (original)
+++ 1.2/generic_fns/minimise.py Fri Apr  7 17:30:12 2006
@@ -45,11 +45,12 @@
         # Function type.
         function_type = 
self.relax.data.run_types[self.relax.data.run_names.index(run)]
 
-        # Deselect residues lacking data:
-        self.overfit_deselect(run, function_type)
-
         # Specific calculate function setup.
         calculate = self.relax.specific_setup.setup('calculate', 
function_type)
+        overfit_deselect = 
self.relax.specific_setup.setup('overfit_deselect', function_type)
+
+        # Deselect residues lacking data:
+        overfit_deselect(run)
 
         # Monte Carlo simulation calculation.
         if hasattr(self.relax.data, 'sim_state') and 
self.relax.data.sim_state.has_key(run) and self.relax.data.sim_state[run] == 
1:
@@ -75,11 +76,12 @@
         # Function type.
         function_type = 
self.relax.data.run_types[self.relax.data.run_names.index(run)]
 
-        # Deselect residues lacking data:
-        self.overfit_deselect(run, function_type)
-
         # Specific grid search function.
         grid_search = self.relax.specific_setup.setup('grid_search', 
function_type)
+        overfit_deselect = 
self.relax.specific_setup.setup('overfit_deselect', function_type)
+
+        # Deselect residues lacking data:
+        overfit_deselect(run)
 
         # Monte Carlo simulation grid search.
         if hasattr(self.relax.data, 'sim_state') and 
self.relax.data.sim_state.has_key(run) and self.relax.data.sim_state[run] == 
1:
@@ -104,11 +106,12 @@
         # Function type.
         function_type = 
self.relax.data.run_types[self.relax.data.run_names.index(run)]
 
-        # Deselect residues lacking data:
-        self.overfit_deselect(run, function_type)
-
         # Specific minimisation function.
         minimise = self.relax.specific_setup.setup('minimise', function_type)
+        overfit_deselect = 
self.relax.specific_setup.setup('overfit_deselect', function_type)
+
+        # Deselect residues lacking data:
+        overfit_deselect(run)
 
         # Single Monte Carlo simulation.
         if sim_index != None:
@@ -134,63 +137,6 @@
         # Standard minimisation.
         else:
             minimise(run=run, min_algor=min_algor, min_options=min_options, 
func_tol=func_tol, grad_tol=grad_tol, max_iterations=max_iterations, 
constraints=constraints, scaling=scaling, print_flag=print_flag)
-
-
-    def overfit_deselect(self, run, run_type):
-        """Function for deselecting residues without sufficient data to 
support minimisation"""
-
-        # Loop over residue data:
-        for residue in self.relax.data.res[run]:
-
-            # Skip unselected data:
-            if not residue.select:
-                continue
-
-            # Check for sufficient data for mf
-            if run_type == 'mf':
-                if not hasattr(residue, 'relax_data'):
-                    residue.select = 0
-                    continue
-
-                # Require 3 or more data points
-                if len(residue.relax_data) < 3:
-                    residue.select = 0
-                    continue 
-    
-                # Require at least as many data points as params to prevent 
under-fitting
-                if hasattr(residue, 'params'):
-                    if len(residue.params) > len(residue.relax_data):
-                        residue.select = 0
-                        continue
-
-                # Test for structural data if required
-                if hasattr(self.relax.data, 'diff') and 
self.relax.data.diff.has_key(run):
-                    if self.relax.data.diff[run].type == 'spheroid' or 
self.relax.data.diff[run].type == 'ellipsoid':
-                        if not hasattr(residue, 'xh_vect'):
-                            residue.select = 0
-                            continue
-
-            # Check for sufficient data for jw
-            if run_type == 'jw':
-                if not hasattr(residue, 'relax_data'):
-                    residue.select = 0
-                    continue
-
-                # Require 3 or more data points
-                if len(residue.relax_data) < 3:
-                    residue.select = 0
-                    continue
-
-            # Check for sufficient data for relax_fit run_type
-            elif run_type == 'relax_fit':
-                if not hasattr(residue, 'intensities'):
-                    residue.select = 0
-                    continue
-
-                # Require 3 or more data points
-                if len(residue.intensities) < 3:
-                    residue.select = 0
-                    continue
 
 
     def reset_min_stats(self, run, index=None):

Modified: 1.2/specific_fns/jw_mapping.py
URL: 
http://svn.gna.org/viewcvs/relax/1.2/specific_fns/jw_mapping.py?rev=2458&r1=2457&r2=2458&view=diff
==============================================================================
--- 1.2/specific_fns/jw_mapping.py (original)
+++ 1.2/specific_fns/jw_mapping.py Fri Apr  7 17:30:12 2006
@@ -237,6 +237,27 @@
         return len(self.relax.data.res[self.run])
 
 
+    def overfit_deselect(self, run):
+        """Function for deselecting residues without sufficient data to 
support calculation"""
+
+        # Test the sequence data exists:
+        if not self.relax.data.res.has_key(run):
+            raise RelaxNoSequenceError, run
+
+        # Loop over residue data:
+        for residue in self.relax.data.res[run]:
+    
+            # Check for sufficient data
+            if not hasattr(residue, 'relax_data'):
+                residue.select = 0
+                continue
+
+            # Require 3 or more data points
+            if len(residue.relax_data) < 3:
+                residue.select = 0
+                continue
+
+
     def return_conversion_factor(self, stat_type):
         """Dummy function for returning 1.0."""
 

Modified: 1.2/specific_fns/model_free.py
URL: 
http://svn.gna.org/viewcvs/relax/1.2/specific_fns/model_free.py?rev=2458&r1=2457&r2=2458&view=diff
==============================================================================
--- 1.2/specific_fns/model_free.py (original)
+++ 1.2/specific_fns/model_free.py Fri Apr  7 17:30:12 2006
@@ -2620,6 +2620,44 @@
         return ["InitAll yes"]
 
 
+    def overfit_deselect(self, run):
+        """Function for deselecting residues without sufficient data to 
support minimisation"""
+        
+        # Test sequence data exists.
+        if not self.relax.data.res.has_key(run):
+            raise RelaxNoSequenceError, run
+
+        # Loop over residue data:
+        for residue in self.relax.data.res[run]:
+
+            # Skip unselected data:
+            if not residue.select:
+                continue
+
+            # Check for data structure.
+            if not hasattr(residue, 'relax_data'):
+                residue.select = 0
+                continue
+
+            # Require 3 or more data points
+            if len(residue.relax_data) < 3:
+                residue.select = 0
+                continue
+
+            # Require at least as many data points as params to prevent 
under-fitting
+            if hasattr(residue, 'params'):
+                if len(residue.params) > len(residue.relax_data):
+                    residue.select = 0
+                    continue
+
+            # Test for structural data if required
+            if hasattr(self.relax.data, 'diff') and 
self.relax.data.diff.has_key(run):
+                if self.relax.data.diff[run].type == 'spheroid' or 
self.relax.data.diff[run].type == 'ellipsoid':
+                    if not hasattr(residue, 'xh_vect'):
+                        residue.select = 0
+                        continue
+
+
     def read_columnar_col_numbers(self, header):
         """Function for sorting the column numbers from the columnar 
formatted results file."""
 

Modified: 1.2/specific_fns/noe.py
URL: 
http://svn.gna.org/viewcvs/relax/1.2/specific_fns/noe.py?rev=2458&r1=2457&r2=2458&view=diff
==============================================================================
--- 1.2/specific_fns/noe.py (original)
+++ 1.2/specific_fns/noe.py Fri Apr  7 17:30:12 2006
@@ -58,10 +58,6 @@
         if not self.run in self.relax.data.run_names:
             raise RelaxNoRunError, self.run
 
-        # Test if sequence data is loaded.
-        if not self.relax.data.res.has_key(self.run):
-            raise RelaxNoSequenceError, self.run
-
         # Loop over the sequence.
         for i in xrange(len(self.relax.data.res[self.run])):
             # Remap the data structure 'self.relax.data.res[self.run][i]'.
@@ -71,15 +67,27 @@
             if not data.select:
                 continue
 
-            # Skip residues which have no intensity values or errors.
-            if not (hasattr(data, 'ref') and hasattr(data, 'sat') and 
hasattr(data, 'ref_err') and hasattr(data, 'sat_err')):
-                continue
-
             # Calculate the NOE.
             data.noe = data.sat / data.ref
 
             # Calculate the error.
             data.noe_err = sqrt((data.sat_err * data.ref)**2 + (data.ref_err 
* data.sat)**2) / data.ref**2
+
+
+    def overfit_deselect(self, run):
+        """Function for deselecting residues without sufficient data to 
support calculation"""
+
+        # Test the sequence data exists:
+        if not self.relax.data.res.has_key(run):
+            raise RelaxNoSequenceError, run
+
+        # Loop over residue data:
+        for residue in self.relax.data.res[run]:
+
+            # Check for sufficient data.
+            if not (hasattr(residue, 'ref') and hasattr(residue, 'sat') and 
hasattr(residue, 'ref_err') and hasattr(residue, 'sat_err')):
+                residue.select = 0
+                continue
 
 
     def read(self, run=None, file=None, dir=None, spectrum_type=None, 
format=None, heteronuc=None, proton=None, int_col=None):

Modified: 1.2/specific_fns/relax_fit.py
URL: 
http://svn.gna.org/viewcvs/relax/1.2/specific_fns/relax_fit.py?rev=2458&r1=2457&r2=2458&view=diff
==============================================================================
--- 1.2/specific_fns/relax_fit.py (original)
+++ 1.2/specific_fns/relax_fit.py Fri Apr  7 17:30:12 2006
@@ -825,6 +825,27 @@
         return len(self.relax.data.res[self.run])
 
 
+    def overfit_deselect(self, run):
+        """Function for deselecting residues without sufficient data to 
support minimisation"""
+
+        # Test the sequence data exists:
+        if not self.relax.data.res.has_key(run):
+            raise RelaxNoSequenceError, run
+
+        # Loop over residue data:
+        for residue in self.relax.data.res[run]:
+
+            # Check for sufficient data
+            if not hasattr(residue, 'intensities'):
+                residue.select = 0
+                continue
+
+            # Require 3 or more data points
+            if len(residue.intensities) < 3:
+                residue.select = 0
+                continue
+
+
     def read(self, run=None, file=None, dir=None, relax_time=0.0, 
format=None, heteronuc=None, proton=None, int_col=None):
         """Function for reading peak intensity data."""
 

Modified: 1.2/specific_fns/specific_setup.py
URL: 
http://svn.gna.org/viewcvs/relax/1.2/specific_fns/specific_setup.py?rev=2458&r1=2457&r2=2458&view=diff
==============================================================================
--- 1.2/specific_fns/specific_setup.py (original)
+++ 1.2/specific_fns/specific_setup.py Fri Apr  7 17:30:12 2006
@@ -146,6 +146,10 @@
         if self.eqi == 'num_instances':
             return self.relax.specific.jw_mapping.num_instances
 
+        # Overfit deselect.
+        if self.eqi == 'overfit_deselect':
+            return self.relax.specific.jw_mapping.overfit_deselect
+
         # Pack Monte Carlo simulation data function.
         if self.eqi == 'pack_sim_data':
             return self.relax.specific.jw_mapping.sim_pack_data
@@ -254,6 +258,10 @@
         if self.eqi == 'num_instances':
             return self.relax.specific.model_free.num_instances
 
+        # Overfit deselect.
+        if self.eqi == 'overfit_deselect':
+            return self.relax.specific.model_free.overfit_deselect
+
         # Pack Monte Carlo simulation data function.
         if self.eqi == 'pack_sim_data':
             return self.relax.specific.model_free.sim_pack_data
@@ -350,6 +358,10 @@
         if self.eqi == 'calculate':
             return self.relax.specific.noe.calculate
 
+        # Overfit deselect.
+        if self.eqi == 'overfit_deselect':
+            return self.relax.specific.noe.overfit_deselect
+
         # Read results file function (Columnar format).
         if self.eqi == 'read_columnar_results':
             return self.relax.specific.noe.read_columnar_results
@@ -397,6 +409,10 @@
         # Number of instances.
         if self.eqi == 'num_instances':
             return self.relax.specific.relax_fit.num_instances
+
+        # Overfit deselect.
+        if self.eqi == 'overfit_deselect':
+            return self.relax.specific.relax_fit.overfit_deselect
 
         # Pack Monte Carlo simulation data function.
         if self.eqi == 'pack_sim_data':




Related Messages


Powered by MHonArc, Updated Mon Apr 10 06:20:05 2006