Author: tlinnet
Date: Thu Nov 27 16:43:19 2014
New Revision: 26785
URL: http://svn.gna.org/viewcvs/relax?rev=26785&view=rev
Log:
Added the initial pipe_control and lib.software modules, for the wrapper
functions to nmrglue.
Task #7873 (https://gna.org/task/index.php?7873): Write wrapper function to
nmrglue, to read .ft2 files and process them.
Homepage: http://www.nmrglue.com/
Link to nmrglue discussion:
https://groups.google.com/forum/#!forum/nmrglue-discuss
The code is develop at Github: https://github.com/jjhelmus/nmrglue/
Google code: https://code.google.com/p/nmrglue/
Documentation: http://nmrglue.readthedocs.org/en/latest/index.html
Added:
branches/nmrglue/lib/software/nmrglue.py
- copied, changed from r26781,
branches/nmrglue/pipe_control/__init__.py
branches/nmrglue/pipe_control/nmrglue.py
Modified:
branches/nmrglue/lib/software/__init__.py
branches/nmrglue/pipe_control/__init__.py
Modified: branches/nmrglue/lib/software/__init__.py
URL:
http://svn.gna.org/viewcvs/relax/branches/nmrglue/lib/software/__init__.py?rev=26785&r1=26784&r2=26785&view=diff
==============================================================================
--- branches/nmrglue/lib/software/__init__.py (original)
+++ branches/nmrglue/lib/software/__init__.py Thu Nov 27 16:43:19 2014
@@ -25,6 +25,7 @@
__all__ = [
'bruker_dc',
'grace',
+ 'nmrglue',
'opendx',
'xplor'
]
Copied: branches/nmrglue/lib/software/nmrglue.py (from r26781,
branches/nmrglue/pipe_control/__init__.py)
URL:
http://svn.gna.org/viewcvs/relax/branches/nmrglue/lib/software/nmrglue.py?p2=branches/nmrglue/lib/software/nmrglue.py&p1=branches/nmrglue/pipe_control/__init__.py&r1=26781&r2=26785&rev=26785&view=diff
==============================================================================
--- branches/nmrglue/pipe_control/__init__.py (original)
+++ branches/nmrglue/lib/software/nmrglue.py Thu Nov 27 16:43:19 2014
@@ -1,6 +1,6 @@
###############################################################################
#
#
-# Copyright (C) 2004-2014 Edward d'Auvergne
#
+# Copyright (C) 2014 Troels E. Linnet
#
#
#
# This file is part of the program relax (http://www.nmr-relax.com).
#
#
#
@@ -19,49 +19,42 @@
#
#
###############################################################################
-# Package docstring.
-"""Package of analysis independent code."""
+# Module docstring.
+"""Module for the wrapper functions around the nmrglue module."""
-# The available modules.
-__all__ = [ 'align_tensor',
- 'angles',
- 'bmrb',
- 'bruker',
- 'chemical_shift',
- 'dasha',
- 'diffusion_tensor',
- 'domain',
- 'eliminate',
- 'error_analysis',
- 'exp_info',
- 'fix',
- 'grace',
- 'interatomic',
- 'j_coupling',
- 'minimise',
- 'model_selection',
- 'mol_res_spin',
- 'molmol',
- 'noesy',
- 'opendx',
- 'palmer',
- 'paramag',
- 'pcs',
- 'pipes',
- 'plotting',
- 'pymol_control',
- 'rdc',
- 'relax_data',
- 'reset',
- 'result_files',
- 'results',
- 'script',
- 'selection',
- 'sequence',
- 'spectrometer',
- 'spectrum',
- 'state',
- 'structure',
- 'value',
- 'vmd'
-]
+# Python module imports.
+from re import search, split
+
+# relax module imports.
+from extern import nmrglue
+from lib.errors import RelaxError
+from lib.io import get_file_path
+from lib.spectrum.objects import Nmrglue_data
+
+
+def read_spectrum(file=None, dir=None):
+ """Read the spectrum data.
+
+ @keyword file: The name of the file containing the spectrum.
+ @type file: str
+ @keyword dir: The directory where the file is located.
+ @type dir: str
+ @return: The nmrglue data object containing all
relevant data in the spectrum.
+ @rtype: lib.spectrum.objects.Nmrglue_data instance
+ """
+
+ # File path.
+ file_path = get_file_path(file, dir)
+
+ # Open file
+ dic, data = nmrglue.pipe.read(file_path)
+ udic = nmrglue.pipe.guess_udic(dic, data)
+
+ # Initialise the nmrglue data object.
+ nmrglue_data = Nmrglue_data()
+
+ # Add the data.
+ nmrglue_data.add(file_path=file_path, dic=dic, udic=udic, data=data)
+
+ # Return the nmrglue data object.
+ return nmrglue_data
Modified: branches/nmrglue/pipe_control/__init__.py
URL:
http://svn.gna.org/viewcvs/relax/branches/nmrglue/pipe_control/__init__.py?rev=26785&r1=26784&r2=26785&view=diff
==============================================================================
--- branches/nmrglue/pipe_control/__init__.py (original)
+++ branches/nmrglue/pipe_control/__init__.py Thu Nov 27 16:43:19 2014
@@ -42,6 +42,7 @@
'model_selection',
'mol_res_spin',
'molmol',
+ 'nmrglue',
'noesy',
'opendx',
'palmer',
Added: branches/nmrglue/pipe_control/nmrglue.py
URL:
http://svn.gna.org/viewcvs/relax/branches/nmrglue/pipe_control/nmrglue.py?rev=26785&view=auto
==============================================================================
--- branches/nmrglue/pipe_control/nmrglue.py (added)
+++ branches/nmrglue/pipe_control/nmrglue.py Thu Nov 27 16:43:19 2014
@@ -0,0 +1,74 @@
+###############################################################################
+#
#
+# Copyright (C) 2014 Troels E. Linnet
#
+#
#
+# This file is part of the program relax (http://www.nmr-relax.com).
#
+#
#
+# This program is free software: you can redistribute it and/or modify
#
+# it under the terms of the GNU General Public License as published by
#
+# the Free Software Foundation, either version 3 of the License, or
#
+# (at your option) any later version.
#
+#
#
+# This program is distributed in the hope that it will be useful,
#
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
#
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#
+# GNU General Public License for more details.
#
+#
#
+# You should have received a copy of the GNU General Public License
#
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
+#
#
+###############################################################################
+
+# Module docstring.
+"""Module for the using of nmrglue."""
+
+# relax module imports.
+from lib.errors import RelaxError
+from lib.software.nmrglue import read_spectrum
+from pipe_control.pipes import check_pipe
+from pipe_control.spectrum import add_spectrum_id, check_spectrum_id,
delete
+
+
+def add_nmrglue_data(spectrum_id=None, nmrglue_data=None):
+ """Add the nmrglue_data to the data store.
+
+ @keyword spectrum_id: The spectrum ID string.
+ @type spectrum_id: str
+ @keyword nmrglue_data: The nmrglue data as class instance object.
+ @type nmrglue_data: lib.spectrum.objects.Nmrglue_data instance
+ """
+
+ # Initialise the structure, if needed.
+ if not hasattr(cdp, 'ngdata'):
+ cdp.ngdata = {}
+
+ # Add the data under the spectrum ID.
+ cdp.ngdata[spectrum_id] = nmrglue_data[0]
+
+
+def read(file=None, dir=None, spectrum_id=None):
+ """Read the spectrum file.
+
+ @keyword file: The name of the file(s) containing the
spectrum.
+ @type file: str or list of str
+ @keyword dir: The directory where the file is located.
+ @type dir: str
+ @keyword spectrum_id: The spectrum identification string.
+ @type spectrum_id: str or list of str
+ """
+
+ # Data checks.
+ check_pipe()
+
+ # Check the file name.
+ if file == None:
+ raise RelaxError("The file name must be supplied.")
+
+ # Add spectrum ID.
+ add_spectrum_id(spectrum_id)
+
+ # Read the spectrum, and get it back as a class instance object.
+ nmrglue_data = read_spectrum(file=file, dir=dir)
+
+ # Store the data.
+ add_nmrglue_data(spectrum_id=spectrum_id, nmrglue_data=nmrglue_data)
_______________________________________________
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