mailRe: r28076 - /trunk/lib/sequence.py


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

Header


Content

Posted by Edward d'Auvergne on November 23, 2015 - 11:05:
On 21 November 2015 at 15:08,  <tlinnet@xxxxxxxxxxxxx> wrote:
Author: tlinnet
Date: Sat Nov 21 15:08:17 2015
New Revision: 28076

URL: http://svn.gna.org/viewcvs/relax?rev=28076&view=rev
Log:
Made additional check in sequence reading, that "nan" values are skipped.

Modified:
    trunk/lib/sequence.py

Modified: trunk/lib/sequence.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/lib/sequence.py?rev=28076&r1=28075&r2=28076&view=diff
==============================================================================
--- trunk/lib/sequence.py       (original)
+++ trunk/lib/sequence.py       Sat Nov 21 15:08:17 2015
@@ -24,6 +24,7 @@
 """Module for handling the molecule, residue, and spin sequence data."""

 # Python module imports.
+from math import isnan
 from warnings import warn

 # relax module imports.
@@ -310,6 +311,11 @@
                 else:
                     value = float(line[data_col-1])

+                    # If it a float, test if is nan.
+                    if isnan(value):
+                        warn(RelaxWarning("The value is 'nan', skipping 
the line %s" % line))
+                        continue
+
             # Bad data.
             except ValueError:
                 warn(RelaxWarning("Invalid data, skipping the line %s" % 
line))
@@ -326,6 +332,11 @@
                 # A float.
                 else:
                     error = float(line[error_col-1])
+
+                    # If it a float, test if is nan.
+                    if isnan(error):
+                        warn(RelaxWarning("The error is 'nan', skipping 
the line %s" % line))
+                        continue

             # Bad data.
             except ValueError:

Hi Troels,

For these changes, I would recommend using Gary's lib.float.isNaN()
function.  The math.isnan() function is relatively recent and it
breaks our Python 2.5 compatibility.  I believe that Gary's lib.float
code is also more advanced.  For example even better would be to use
the isFinite() function, as that will simultaneously check for NaN and
+/- Inf.  Or you could isNaN() followed by isInf() if you'd like
different warning messages for each number type.

Cheers,

Edward



Related Messages


Powered by MHonArc, Updated Mon Nov 23 12:40:05 2015