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@gna.org 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