Author: bugman
Date: Fri Feb 6 14:58:01 2015
New Revision: 27597
URL: http://svn.gna.org/viewcvs/relax?rev=27597&view=rev
Log:
Shifted the pipe_control.grace.write() function.
This is now the format independent pipe_control.plotting.write_xy() function.
The format argument
has been added and this defaults to 'grace'. The grace.write user function has
been updated to use
the new backend.
Modified:
trunk/pipe_control/grace.py
trunk/pipe_control/plotting.py
trunk/user_functions/grace.py
Modified: trunk/pipe_control/grace.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/pipe_control/grace.py?rev=27597&r1=27596&r2=27597&view=diff
==============================================================================
--- trunk/pipe_control/grace.py (original)
+++ trunk/pipe_control/grace.py Fri Feb 6 14:58:01 2015
@@ -34,7 +34,6 @@
from pipe_control.mol_res_spin import count_molecules, count_residues,
count_spins, exists_mol_res_spin_data
from pipe_control import pipes
from pipe_control.pipes import check_pipe
-from pipe_control.result_files import add_result_file
from pipe_control.plotting import assemble_data
from specific_analyses.api import return_api
from status import Status; status = Status()
@@ -203,81 +202,3 @@
# Run Grace.
system(grace_exe + " \"" + file_path + "\" &")
-
-
-def write(x_data_type='res_num', y_data_type=None, spin_id=None,
plot_data='value', norm_type='first', file=None, dir=None, force=False,
norm=True):
- """Writing data to a file.
-
- @keyword x_data_type: The category of the X-axis data.
- @type x_data_type: str
- @keyword y_data_type: The category of the Y-axis data.
- @type y_data_type: str
- @keyword spin_id: The spin identification string.
- @type spin_id: str
- @keyword plot_data: The type of the plotted data, one of 'value',
'error', or 'sim'.
- @type plot_data: str
- @keyword norm_type: The point to normalise to 1. This can be 'first'
or 'last'.
- @type norm_type: str
- @keyword file: The name of the Grace file to create.
- @type file: str
- @keyword dir: The optional directory to place the file into.
- @type dir: str
- @param force: Boolean argument which if True causes the file to
be overwritten if it already exists.
- @type force: bool
- @keyword norm: The normalisation flag which if set to True will
cause all graphs to be normalised to a starting value of 1.
- @type norm: bool
- """
-
- # Test if the current pipe exists.
- check_pipe()
-
- # Test if the sequence data is loaded.
- if not exists_mol_res_spin_data():
- raise RelaxNoSequenceError
-
- # Test if the plot_data argument is one of 'value', 'error', or 'sim'.
- if plot_data not in ['value', 'error', 'sim']:
- raise RelaxError("The plot data argument " + repr(plot_data) + " must
be set to either 'value', 'error', 'sim'.")
-
- # Test if the simulations exist.
- if plot_data == 'sim' and not hasattr(cdp, 'sim_number'):
- raise RelaxNoSimError
-
- # Open the file for writing.
- file_path = get_file_path(file, dir)
- file = open_write_file(file, dir, force)
-
- # Get the data.
- data, set_names, graph_type = assemble_data(spin_id,
x_data_name=x_data_type, y_data_name=y_data_type, plot_data=plot_data)
-
- # Convert the graph type.
- if graph_type == 'X,Y':
- graph_type = 'xy'
- elif graph_type == 'X,Y,dX':
- graph_type = 'xydx'
- elif graph_type == 'X,Y,dY':
- graph_type = 'xydy'
- elif graph_type == 'X,Y,dX,dY':
- graph_type = 'xydxdy'
-
- # No data, so close the empty file and exit.
- if not len(data) or not len(data[0]) or not len(data[0][0]):
- warn(RelaxWarning("No data could be found, creating an empty file."))
- file.close()
- return
-
- # Get the axis information.
- data_type = [x_data_type, y_data_type]
- seq_type, axis_labels = axis_setup(data_type=data_type, norm=norm)
-
- # Write the header.
- write_xy_header(format='grace', file=file, data_type=data_type,
seq_type=seq_type, sets=[len(data[0])], set_names=[set_names],
axis_labels=[axis_labels], norm=[norm])
-
- # Write the data.
- write_xy_data(format='grace', data=data, file=file, graph_type=graph_type,
norm_type=norm_type, norm=[norm])
-
- # Close the file.
- file.close()
-
- # Add the file to the results file list.
- add_result_file(type='grace', label='Grace', file=file_path)
Modified: trunk/pipe_control/plotting.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/pipe_control/plotting.py?rev=27597&r1=27596&r2=27597&view=diff
==============================================================================
--- trunk/pipe_control/plotting.py (original)
+++ trunk/pipe_control/plotting.py Fri Feb 6 14:58:01 2015
@@ -1,6 +1,6 @@
###############################################################################
# #
-# Copyright (C) 2013-2014 Edward d'Auvergne #
+# Copyright (C) 2013-2015 Edward d'Auvergne #
# #
# This file is part of the program relax (http://www.nmr-relax.com). #
# #
@@ -29,6 +29,7 @@
# relax module imports.
from lib.errors import RelaxError
from pipe_control.mol_res_spin import spin_loop
+from pipe_control.result_files import add_result_file
from specific_analyses.api import return_api
@@ -635,3 +636,86 @@
# Analysis specific value returning functions.
api = return_api()
return api.data_type(data_name)
+
+
+def write_xy(format='grace', x_data_type='res_num', y_data_type=None,
spin_id=None, plot_data='value', norm_type='first', file=None, dir=None,
force=False, norm=True):
+ """Writing data to a file.
+
+ @keyword format: The specific backend to use. The currently
support backends are 'grace'.
+ @type format: str
+ @keyword x_data_type: The category of the X-axis data.
+ @type x_data_type: str
+ @keyword y_data_type: The category of the Y-axis data.
+ @type y_data_type: str
+ @keyword spin_id: The spin identification string.
+ @type spin_id: str
+ @keyword plot_data: The type of the plotted data, one of 'value',
'error', or 'sim'.
+ @type plot_data: str
+ @keyword norm_type: The point to normalise to 1. This can be 'first'
or 'last'.
+ @type norm_type: str
+ @keyword file: The name of the Grace file to create.
+ @type file: str
+ @keyword dir: The optional directory to place the file into.
+ @type dir: str
+ @param force: Boolean argument which if True causes the file to
be overwritten if it already exists.
+ @type force: bool
+ @keyword norm: The normalisation flag which if set to True will
cause all graphs to be normalised to a starting value of 1.
+ @type norm: bool
+ """
+
+ # Test if the current pipe exists.
+ check_pipe()
+
+ # Test if the sequence data is loaded.
+ if not exists_mol_res_spin_data():
+ raise RelaxNoSequenceError
+
+ # Test if the plot_data argument is one of 'value', 'error', or 'sim'.
+ if plot_data not in ['value', 'error', 'sim']:
+ raise RelaxError("The plot data argument " + repr(plot_data) + " must
be set to either 'value', 'error', 'sim'.")
+
+ # Test if the simulations exist.
+ if plot_data == 'sim' and not hasattr(cdp, 'sim_number'):
+ raise RelaxNoSimError
+
+ # Open the file for writing.
+ file_path = get_file_path(file, dir)
+ file = open_write_file(file, dir, force)
+
+ # Get the data.
+ data, set_names, graph_type = assemble_data(spin_id,
x_data_name=x_data_type, y_data_name=y_data_type, plot_data=plot_data)
+
+ # Convert the graph type.
+ if graph_type == 'X,Y':
+ graph_type = 'xy'
+ elif graph_type == 'X,Y,dX':
+ graph_type = 'xydx'
+ elif graph_type == 'X,Y,dY':
+ graph_type = 'xydy'
+ elif graph_type == 'X,Y,dX,dY':
+ graph_type = 'xydxdy'
+
+ # No data, so close the empty file and exit.
+ if not len(data) or not len(data[0]) or not len(data[0][0]):
+ warn(RelaxWarning("No data could be found, creating an empty file."))
+ file.close()
+ return
+
+ # Get the axis information.
+ data_type = [x_data_type, y_data_type]
+ seq_type, axis_labels = axis_setup(data_type=data_type, norm=norm)
+
+ # Write the header.
+ write_xy_header(format=format, file=file, data_type=data_type,
seq_type=seq_type, sets=[len(data[0])], set_names=[set_names],
axis_labels=[axis_labels], norm=[norm])
+
+ # Write the data.
+ write_xy_data(format=format, data=data, file=file, graph_type=graph_type,
norm_type=norm_type, norm=[norm])
+
+ # Close the file.
+ file.close()
+
+ # Add the file to the results file list.
+ label = None
+ if format == 'grace':
+ label = 'Grace'
+ add_result_file(type=format, label='Grace', file=file_path)
Modified: trunk/user_functions/grace.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/user_functions/grace.py?rev=27597&r1=27596&r2=27597&view=diff
==============================================================================
--- trunk/user_functions/grace.py (original)
+++ trunk/user_functions/grace.py Fri Feb 6 14:58:01 2015
@@ -1,6 +1,6 @@
###############################################################################
# #
-# Copyright (C) 2004-2014 Edward d'Auvergne #
+# Copyright (C) 2004-2015 Edward d'Auvergne #
# #
# This file is part of the program relax (http://www.nmr-relax.com). #
# #
@@ -33,6 +33,7 @@
# relax module imports.
from graphics import WIZARD_IMAGE_PATH
from pipe_control import grace
+from pipe_control.plotting import write_xy
from specific_analyses.consistency_tests.parameter_object import
Consistency_tests_params; consistency_test_params = Consistency_tests_params()
from specific_analyses.jw_mapping.parameter_object import Jw_mapping_params;
jw_mapping_params = Jw_mapping_params()
from specific_analyses.model_free.parameter_object import Model_free_params;
model_free_params = Model_free_params()
@@ -229,7 +230,7 @@
uf.desc[-1].add_prompt("relax> grace.write(x_data_type='rex',
y_data_type='te', spin_id=':123', plot_data='sims', file='s2_te.agr')")
uf.desc[-1].add_paragraph("By plotting the peak intensities, the integrity of
exponential relaxation curves can be checked and anomalies searched for prior
to model-free analysis or reduced spectral density mapping. For example the
normalised average peak intensities can be plotted verses the relaxation time
periods for the relaxation curves of all residues of a protein. The
normalisation, whereby the initial peak intensity of each residue I(0) is set
to 1, emphasises any problems. To produce this Grace file, type:")
uf.desc[-1].add_prompt("relax> grace.write(x_data_type='relax_times',
y_data_type='ave_int', file='intensities_norm.agr', force=True, norm=True)")
-uf.backend = grace.write
+uf.backend = write_xy
uf.menu_text = "&write"
uf.gui_icon = "oxygen.actions.document-save"
uf.wizard_size = (1000, 700)
_______________________________________________
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