Hm.

License...

2014-05-09 18:56 GMT+02:00 Edward d'Auvergne <[email protected]>:
> Hmmm, that would have been useful.  Numpy 1.6.2 has the percentile
> function too, oh well.  Maybe the best would be to add a new function
> to lib.statistics?  Something like the scipy function:
>
> http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.scoreatpercentile.html#scipy.stats.scoreatpercentile
>
> or:
>
> http://code.activestate.com/recipes/511478-finding-the-percentile-of-the-values/
>
> Licencing prevents us copying such code.  Or maybe a simple algorithm
> could be created:
>
> - Create a sorted list of chi2.
> - The 90% value would be the value at the index int(0.9 * N).
> - The 50% value would be the value at the index int(0.5 * N).
> - The 20% value would be the value at the index int(0.2 * N).
> - The 10% value would be the value at the index int(0.1 * N).
>
> There are not really percentiles, but for this OpenDX map it might be
> good enough.
>
> Regards,
>
> Edward
>
> On 9 May 2014 18:35, Troels Emtekær Linnet <[email protected]> wrote:
>> Hm.
>>
>> You need numpy 1.9
>> http://docs.scipy.org/doc/numpy-dev/release.html
>>
>> I have 1.4
>>
>> 2014-05-09 18:21 GMT+02:00 Edward d'Auvergne <[email protected]>:
>>> Here is a demo:
>>>
>>> """
>>> from numpy import array, float64, percentile
>>>
>>> a = array(range(100001), float64)
>>> print(percentile(a, 90))
>>> print(percentile(a, 50))
>>> print(percentile(a, 20))
>>> print(percentile(a, 10))
>>> """
>>>
>>> Regards,
>>>
>>> Edward
>>>
>>>
>>>
>>> On 9 May 2014 18:14, Edward d'Auvergne <[email protected]> wrote:
>>>> You may also want to try this logic:
>>>>
>>>> """
>>>> from numpy import percentile
>>>>
>>>> all_chi2 = array(all_chi2, float64)
>>>> self.contour_levels = []
>>>> self.contour_levels.append(percentile(all_chi2, 90))
>>>> self.contour_levels.append(percentile(all_chi2, 50))
>>>> self.contour_levels.append(percentile(all_chi2, 20))
>>>> self.contour_levels.append(percentile(all_chi2, 10))
>>>> """
>>>>
>>>> This might work better with OpenDX.
>>>>
>>>> Regards,
>>>>
>>>> Edward
>>>>
>>>>
>>>>
>>>>
>>>> On 9 May 2014 18:08, Edward d'Auvergne <[email protected]> wrote:
>>>>> Hi Troels,
>>>>>
>>>>> A better way to handle this would be to pass in an array of 4 values
>>>>> for the isosurface levels into write_program().  Then you can change
>>>>> these values as needed in pipe_control.opendx and not have to worry
>>>>> about what happens in lib.software.opendx ever again.  It would
>>>>> decouple the logic and be much more flexible.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Edward
>>>>>
>>>>> On 9 May 2014 17:33,  <[email protected]> wrote:
>>>>>> Author: tlinnet
>>>>>> Date: Fri May  9 17:33:05 2014
>>>>>> New Revision: 23132
>>>>>>
>>>>>> URL: http://svn.gna.org/viewcvs/relax?rev=23132&view=rev
>>>>>> Log:
>>>>>> Made collecting of min, max and median value of chi2, when creating the 
>>>>>> chi2 map.
>>>>>>
>>>>>> task #7792: (https://gna.org/task/?7792) Make the dx.map write suggest 
>>>>>> chi surface values.
>>>>>>
>>>>>> Modified:
>>>>>>     trunk/pipe_control/opendx.py
>>>>>>
>>>>>> Modified: trunk/pipe_control/opendx.py
>>>>>> URL: 
>>>>>> http://svn.gna.org/viewcvs/relax/trunk/pipe_control/opendx.py?rev=23132&r1=23131&r2=23132&view=diff
>>>>>> ==============================================================================
>>>>>> --- trunk/pipe_control/opendx.py        (original)
>>>>>> +++ trunk/pipe_control/opendx.py        Fri May  9 17:33:05 2014
>>>>>> @@ -24,7 +24,7 @@
>>>>>>
>>>>>>
>>>>>>  # Python module imports.
>>>>>> -from numpy import float64, array, zeros
>>>>>> +from numpy import float64, array, median, zeros
>>>>>>  from time import asctime, localtime
>>>>>>
>>>>>>  # relax module imports.
>>>>>> @@ -164,8 +164,11 @@
>>>>>>          # Create the strings associated with the map axes.
>>>>>>          self.map_axes()
>>>>>>
>>>>>> +        # Generate the map.
>>>>>> +        self.create_map()
>>>>>> +
>>>>>>          # Create the OpenDX .net program file.
>>>>>> -        write_program(file_prefix=self.file_prefix, 
>>>>>> point_file=self.point_file, dir=self.dir, inc=self.inc, N=self.n, 
>>>>>> num_points=self.num_points, labels=self.labels, 
>>>>>> tick_locations=self.tick_locations, tick_values=self.tick_values, 
>>>>>> date=self.date)
>>>>>> +        write_program(file_prefix=self.file_prefix, 
>>>>>> point_file=self.point_file, dir=self.dir, inc=self.inc, N=self.n, 
>>>>>> num_points=self.num_points, labels=self.labels, 
>>>>>> tick_locations=self.tick_locations, tick_values=self.tick_values, 
>>>>>> date=self.date, min_chi2=self.min_chi2, max_chi2=self.max_chi2, 
>>>>>> median_chi2=self.median_chi2)
>>>>>>
>>>>>>          # Create the OpenDX .cfg program configuration file.
>>>>>>          write_config(file_prefix=self.file_prefix, dir=self.dir, 
>>>>>> date=self.date)
>>>>>> @@ -176,9 +179,6 @@
>>>>>>          # Create the OpenDX .general and data files for the given point.
>>>>>>          if self.num_points > 1:
>>>>>>              write_point(file_prefix=self.point_file, dir=self.dir, 
>>>>>> inc=self.inc, point=self.point, num_points=self.num_points, 
>>>>>> bounds=self.bounds, N=self.n)
>>>>>> -
>>>>>> -        # Generate the map.
>>>>>> -        self.create_map()
>>>>>>
>>>>>>
>>>>>>      def create_map(self):
>>>>>> @@ -211,6 +211,11 @@
>>>>>>          percent = 0.0
>>>>>>          percent_inc = 100.0 / (self.inc + 1.0)**(self.n - 1.0)
>>>>>>          print("%-10s%8.3f%-1s" % ("Progress:", percent, "%"))
>>>>>> +
>>>>>> +        # Define min/max chi2 values.
>>>>>> +        min_chi2 = 1e20
>>>>>> +        max_chi2 = 1.
>>>>>> +        all_chi = []
>>>>>>
>>>>>>          # Fix the diffusion tensor.
>>>>>>          unfix = False
>>>>>> @@ -257,6 +262,14 @@
>>>>>>                      else:
>>>>>>                          map_file.write("%30f\n" % chi2)
>>>>>>
>>>>>> +                        # Save min and max values of chi2.
>>>>>> +                        all_chi.append(chi2)
>>>>>> +                        if chi2 < min_chi2:
>>>>>> +                            min_chi2 = chi2
>>>>>> +
>>>>>> +                        if chi2 > max_chi2:
>>>>>> +                            max_chi2 = chi2
>>>>>> +
>>>>>>                      # Increment the value of the third parameter.
>>>>>>                      values[2] = values[2] + self.step_size[2]
>>>>>>
>>>>>> @@ -274,6 +287,11 @@
>>>>>>          if unfix:
>>>>>>              cdp.diff_tensor.fixed = False
>>>>>>
>>>>>> +        # Save the min/max chi2 values.
>>>>>> +        self.min_chi2 = min_chi2
>>>>>> +        self.max_chi2 = max_chi2
>>>>>> +        # Save the median chi2 value.
>>>>>> +        self.median_chi2 = median(array(all_chi))
>>>>>>
>>>>>>      def map_axes(self):
>>>>>>          """Function for creating labels, tick locations, and tick 
>>>>>> values for an OpenDX map."""
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> relax (http://www.nmr-relax.com)
>>>>>>
>>>>>> This is the relax-commits mailing list
>>>>>> [email protected]
>>>>>>
>>>>>> To unsubscribe from this list, get a password
>>>>>> reminder, or change your subscription options,
>>>>>> visit the list information page at
>>>>>> https://mail.gna.org/listinfo/relax-commits
>>>
>>> _______________________________________________
>>> relax (http://www.nmr-relax.com)
>>>
>>> This is the relax-devel mailing list
>>> [email protected]
>>>
>>> To unsubscribe from this list, get a password
>>> reminder, or change your subscription options,
>>> visit the list information page at
>>> https://mail.gna.org/listinfo/relax-devel

_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
[email protected]

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel

Reply via email to