mailRe: [bug #7641] Infinite Chi2 warning


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

Header


Content

Posted by Gary S. Thompson on November 07, 2006 - 09:01:
Alexandar Hansen wrote:


On 11/6/06, *Alexandar Hansen* <viochemist@xxxxxxxxx <mailto:viochemist@xxxxxxxxx>> wrote:


Whoa! I thought I had changed my 'runs' lines to not choose
anything higher than tm3. I tried what you said and reduced them
models to tm0-tm3 and it still failed. Through some process of
elimination, the one that spits out the error is only tm3 (tm, S2,
and Rex). tm2 finishes without any error.




I received another chi-squared = infinity value when running the prolate, oblate, and ellipsoid models. I used only tm0, tm1, and tm2 for the local_tm selection and then I used m0-m5 for the diffusion model selection. The chi-square = infinity error only occured on the second round of the minimization for prolate (ie full_analysis.py finished twice but failed the 3rd time for prolate) and on the first round for oblate and ellipsoid. The sphere model finished without an error.


Dear Alex Ed and Chris

This is the regression which I found via my first regression test. I will try and backport the fix to the 1.2 and 1.3 branches in the next couple of hours. Unfortunatley I can't do it immediately as the machine I use for external ssh access here is not responding ;-) The hotfix is to find the function isInf in float.py and replace it with

def isInf(obj):

   ''' check to see if a python float is an infinity

       the check returns true for either positive or negative infinities

       obj -- float object to check for infinity

       returns -- True if object is an infinity

       throws -- throws a TypeError if obj isn't a python float

   '''

   # bad result for code checking

   result = None

   # check to see if exponent is all ones (excluding sign bit)

   # if exponent is not all ones this can't be a Inf

   if not isExpAllOnes(obj):

       result =  False

   else:

       # get the mantissa as a byte array properly masked

       manBytes = getMantissaBytes(obj)

       for byte in manBytes:

           #check if any of the unmasked mantissa bytes are zero

           # to be a NaN the mantissa must be zero

           if byte > 0:

               result = False

               break

           result = True

   return result


regards gary

--
-------------------------------------------------------------------
Dr Gary Thompson
Astbury Centre for Structural Molecular Biology,
University of Leeds, Astbury Building,
Leeds, LS2 9JT, West-Yorkshire, UK             Tel. +44-113-3433024
email: garyt@xxxxxxxxxxxxxxx                   Fax  +44-113-2331407
-------------------------------------------------------------------





Related Messages


Powered by MHonArc, Updated Tue Nov 07 18:20:24 2006