mailr20995 - /branches/relax_disp/specific_analyses/relax_disp/catia.py


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

Header


Content

Posted by edward on September 12, 2013 - 21:44:
Author: bugman
Date: Thu Sep 12 21:44:00 2013
New Revision: 20995

URL: http://svn.gna.org/viewcvs/relax?rev=20995&view=rev
Log:
Improvements to the relax_disp.catia_input user function.

On top of general improvements, the global parameter and parameter set files 
are now created.


Modified:
    branches/relax_disp/specific_analyses/relax_disp/catia.py

Modified: branches/relax_disp/specific_analyses/relax_disp/catia.py
URL: 
http://svn.gna.org/viewcvs/relax/branches/relax_disp/specific_analyses/relax_disp/catia.py?rev=20995&r1=20994&r2=20995&view=diff
==============================================================================
--- branches/relax_disp/specific_analyses/relax_disp/catia.py (original)
+++ branches/relax_disp/specific_analyses/relax_disp/catia.py Thu Sep 12 
21:44:00 2013
@@ -61,7 +61,10 @@
         mkdir_nofail(dir, verbosity=0)
 
     # Create the R2eff files.
-    write_r2eff_files(base_dir=dir, force=force)
+    write_r2eff_files(input_dir='input_r2eff', base_dir=dir, force=force)
+
+    # Create the parameter files.
+    write_param_files(global_file="ParamGlobal.inp", 
set_file="ParamSet1.inp", dir=dir, force=force)
 
     # Create the main execution file.
     write_main_file(file=file, dir=dir, force=force)
@@ -74,7 +77,7 @@
     @type file:         str
     @keyword dir:       The directory to place the files into.
     @type dir:          str or None
-    @keyword r1:        A flag which if True will cause the R1 data to be 
used for off-resonance effets.
+    @keyword r1:        A flag which if True will cause the R1 data to be 
used for off-resonance effects.
     @type r1:           bool
     @keyword force:     A flag which if True will cause a pre-existing file 
to be overwritten.
     @type force:        bool
@@ -128,8 +131,86 @@
     # Exit the program.
     catia_in.write("exit(0)\n")
 
-
-def write_r2eff_files(input_dir='input_r2eff', base_dir=None, force=False):
+    # Close the file.
+    catia_in.close()
+
+
+def write_param_files(global_file=None, kex=1500.0, pA=0.95, set_file=None, 
dir=None, r1=False, force=False):
+    """Create the CATIA parameter files.
+
+    @keyword global_file:   The name of the global parameter file.
+    @type global_file:      str
+    @keyword set_file:      The name of the parameter set file.
+    @type set_file:         str
+    @keyword dir:           The base directory to place the files into.
+    @type dir:              str
+    @keyword r1:            A flag which if True will cause the R1 data to 
be used for off-resonance effects.
+    @type r1:               bool
+    @keyword force:         A flag which if True will cause a pre-existing 
file to be overwritten.
+    @type force:            bool
+    """
+
+    # Open the global parameter file.
+    param_file = open_write_file(file_name=global_file, dir=dir, force=force)
+
+    # Set the starting values.
+    param_file.write("kex = %s\n" % kex)
+    param_file.write("pb = %s\n" % (1.0-pA))
+
+    # Close the file.
+    param_file.close()
+
+    # Open the 1st parameter set file.
+    set_file = open_write_file(file_name=set_file, dir=dir, force=force)
+
+    # The parameter format.
+    params = ['Delta0']
+    values = [0.5]
+    if r1:
+        for frq in loop_frq():
+            params.append("R1iph_%s" % frq_label(frq))
+            values.append(1.5)
+    for frq in loop_frq():
+        params.append("R0iph_%s" % frq_label(frq))
+        values.append(5.0)
+    if r1:
+        params.append("Omega")
+        values.append(0.0)
+
+    # Write out the format.
+    set_file.write("format = (")
+    for i in range(len(params)):
+        if i != 0:
+            set_file.write(';')
+        set_file.write(params[i])
+    set_file.write(")\n")
+
+    # Um?!?  The average values maybe?
+    set_file.write("* = (")
+    for i in range(len(values)):
+        if i != 0:
+            set_file.write(';')
+        set_file.write("%s" % values[i])
+    set_file.write(")\n")
+
+    # Close the file.
+    set_file.close()
+
+
+def frq_label(frq):
+    """Convert the frequency in Hz to a label in MHz.
+
+    @param frq: The frequency to convert.
+    @type frq:  float
+    @return:    The frequency in MHz as a label.
+    @rtype:     str
+    """
+
+    # Convert and return.
+    return str(int(frq*1e-6))
+
+
+def write_r2eff_files(input_dir=None, base_dir=None, force=False):
     """Create the CATIA R2eff input files.
 
     @keyword input_dir: The special directory for the R2eff input files.
@@ -193,10 +274,10 @@
         for spin, mol_name, res_num, res_name, spin_id in 
spin_loop(full_info=True, return_id=True, skip_desel=True):
             # The file.
             file_name = "spin%s_%i.cpmg" % (spin_id.replace('#', 
'_').replace(':', '_').replace('@', '_'), frq_string)
-            file = open_write_file(file_name=file_name, dir=dir, force=force)
+            spin_file = open_write_file(file_name=file_name, dir=dir, 
force=force)
 
             # Write the header.
-            file.write("# %18s %20s %20s\n" % ("nu_cpmg(Hz)", "R2(1/s)", 
"Esd(R2)"))
+            spin_file.write("# %18s %20s %20s\n" % ("nu_cpmg(Hz)", 
"R2(1/s)", "Esd(R2)"))
 
             # Loop over the dispersion points.
             for point in loop_point(exp_type='CPMG'):
@@ -208,10 +289,10 @@
                     continue
 
                 # Write out the data.
-                file.write("%20.15f %20.15f %20.15f\n" % (point, 
spin.r2eff[key], spin.r2eff_err[key]))
+                spin_file.write("%20.15f %20.15f %20.15f\n" % (point, 
spin.r2eff[key], spin.r2eff_err[key]))
 
             # Close the file.
-            file.close()
+            spin_file.close()
 
             # Add the file name to the set.
             catia_spin_id = "%i%s" % (res_num, spin.name)




Related Messages


Powered by MHonArc, Updated Fri Sep 13 11:40:02 2013