mailRe: r26243 - /trunk/pipe_control/opendx.py


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

Header


Content

Posted by Troels Emtekær Linnet on October 10, 2014 - 17:14:
Hi Edward.

I thought about this.

But I possible could not come up with any arguments, which should not make
this file?

It contains much better information, and can be used to extract values for
2 surface plotting.

Best
Troels


2014-10-10 17:06 GMT+02:00 Edward d'Auvergne <edward@xxxxxxxxxxxxx>:

Hi Troels,

Note, you have to make this optional and not the default!

Cheers,

Edward



On 10 October 2014 17:05,  <tlinnet@xxxxxxxxxxxxx> wrote:
Author: tlinnet
Date: Fri Oct 10 17:05:25 2014
New Revision: 26243

URL: http://svn.gna.org/viewcvs/relax?rev=26243&view=rev
Log:
Added the write out of parameters and chi2 values, when creating a
dx_map.

Task #7860(https://gna.org/task/index.php?7860): When dx_map is issued,
create a parameter file which maps parameters to chi2 value.

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=26243&r1=26242&r2=26243&view=diff

==============================================================================
--- trunk/pipe_control/opendx.py        (original)
+++ trunk/pipe_control/opendx.py        Fri Oct 10 17:05:25 2014
@@ -25,12 +25,13 @@


 # Python module imports.
+from copy import deepcopy
 from numpy import float64, array, zeros
 from time import asctime, localtime

 # relax module imports.
 from lib.errors import RelaxError
-from lib.io import open_write_file
+from lib.io import open_write_file, write_data
 from extern.numpy_future import percentile
 from lib.software.opendx.files import write_config, write_general,
write_point, write_program
 from pipe_control import value
@@ -107,6 +108,9 @@
         self.dir = dir
         self.point_file = point_file

+        # Define nested listed, which holds parameter values and chi2
value.
+        self.par_chi2_vals = []
+
         # The specific analysis API object.
         self.api = return_api()

@@ -163,6 +167,9 @@
         # Generate the map.
         self.create_map()

+        ## Generate the file with parameters and associated chi2 value.
+        self.create_par_chi2()
+
         # Default the chi2 surface values, for Innermost, Inner, Middle
and Outer Isosurface.
         if chi_surface == None:
             all_chi2 = array(self.all_chi, float64)
@@ -202,6 +209,56 @@
         map_file.close()


+    def create_par_chi2(self):
+        """Function for creating file with parameters and the chi2
value."""
+
+        # Print out.
+        print("\nCreating the file with parameters and the chi2 value.")
+
+        # Open the file.
+        par_file = open_write_file(file_name=self.file_prefix+'.par',
dir=self.dir, force=True)
+
+        # Copy the nested list to sort it.
+        par_chi2_vals_sort = deepcopy(self.par_chi2_vals)
+
+        # Then sort the value.
+        par_chi2_vals_sort.sort(key=lambda values: values[4])
+
+        # Collect the data structure, which is a list of list of
strings.
+        data = []
+        for i, line in enumerate(self.par_chi2_vals):
+            line_sort = par_chi2_vals_sort[i]
+
+            # Convert values to strings.
+            line_str = ["%3.5f"%j for j in line]
+            line_sort_str = ["%3.5f"%j for j in line_sort]
+
+            # Convert the index from float to index.
+            line_str[0] = "%i" % line[0]
+            line_sort_str[0] = "%i" % line_sort[0]
+
+            # Merge the two lists and append to data.
+            data_list = line_str + line_sort_str
+            data.append(data_list)
+
+        # Make the headings.
+        headings = ['i'] + self.params + ['chi2']
+        headings += headings
+
+        # Add "_sort" to headings.
+        headings[5] = headings[5] + "_sort"
+        headings[6] = headings[6] + "_sort"
+        headings[7] = headings[7] + "_sort"
+        headings[8] = headings[8] + "_sort"
+        headings[9] = headings[9] + "_sort"
+
+        # Write the parameters and chi2 values to file.
+        write_data(out=par_file, headings=headings, data=data)
+
+        # Close the file.
+        par_file.close()
+
+
     def get_date(self):
         """Function for creating a date string."""

@@ -228,6 +285,9 @@

         # Initial value of the first parameter.
         values[0] = self.bounds[0, 0]
+
+        # Define counter
+        counter = 0

         # Loop over the first parameter.
         for i in range((self.inc + 1)):
@@ -268,6 +328,12 @@
                         # Save all values of chi2. To help find
reasonale level for the Innermost, Inner, Middle and Outer Isosurface.
                         all_chi.append(chi2)

+                    # Assign value to nested list.
+                    self.par_chi2_vals.append([counter, values[0],
values[1], values[2], chi2])
+
+                    # Add to counter.
+                    counter += 1
+
                     # Increment the value of the third parameter.
                     values[2] = values[2] + self.step_size[2]



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

This is the relax-commits mailing list
relax-commits@xxxxxxx

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
relax-devel@xxxxxxx

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



Related Messages


Powered by MHonArc, Updated Mon Oct 13 10:00:10 2014