mailr18087 - in /trunk/user_functions: __init__.py interatomic.py


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

Header


Content

Posted by edward on December 10, 2012 - 15:11:
Author: bugman
Date: Mon Dec 10 15:11:12 2012
New Revision: 18087

URL: http://svn.gna.org/viewcvs/relax?rev=18087&view=rev
Log:
Created the interatomic.copy and interatomic.create user functions.

This is simply new front ends for the user for the functions of 
generic_fns.interatomic.


Added:
    trunk/user_functions/interatomic.py
Modified:
    trunk/user_functions/__init__.py

Modified: trunk/user_functions/__init__.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/user_functions/__init__.py?rev=18087&r1=18086&r2=18087&view=diff
==============================================================================
--- trunk/user_functions/__init__.py (original)
+++ trunk/user_functions/__init__.py Mon Dec 10 15:11:12 2012
@@ -48,6 +48,7 @@
     'frame_order',
     'frq',
     'grace',
+    'interatomic',
     'jw_mapping',
     'minimisation',
     'model_free',
@@ -97,6 +98,7 @@
 import user_functions.frame_order
 import user_functions.frq
 import user_functions.grace
+import user_functions.interatomic
 import user_functions.jw_mapping
 import user_functions.minimisation
 import user_functions.model_free

Added: trunk/user_functions/interatomic.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/user_functions/interatomic.py?rev=18087&view=auto
==============================================================================
--- trunk/user_functions/interatomic.py (added)
+++ trunk/user_functions/interatomic.py Mon Dec 10 15:11:12 2012
@@ -1,0 +1,147 @@
+###############################################################################
+#                                                                            
 #
+# Copyright (C) 2012 Edward d'Auvergne                                       
 #
+#                                                                            
 #
+# 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.
+"""The interatomic user function definitions."""
+
+# Python module imports.
+from os import sep
+
+# relax module imports.
+from generic_fns.mol_res_spin import get_spin_ids
+from generic_fns import pipes
+from generic_fns.interatomic import copy, create_interatom
+from graphics import WIZARD_IMAGE_PATH
+from user_functions.data import Uf_info; uf_info = Uf_info()
+from user_functions.objects import Desc_container
+
+
+# The user function class.
+uf_class = uf_info.add_class('interatomic')
+uf_class.title = "Class for manipulating the interatomic data."
+uf_class.menu_text = "&interatomic"
+uf_class.gui_icon = "relax.dipole_pair"
+
+
+# The interatomic.copy user function.
+uf = uf_info.add_uf('interatomic.copy')
+uf.title = "Copy all data associated with a interatomic data container."
+uf.title_short = "Spin copying."
+uf.display = True
+uf.add_keyarg(
+    name = "pipe_from",
+    py_type = "str",
+    desc_short = "source data pipe",
+    desc = "The data pipe containing the interatomic data container from 
which the data will be copied.  This defaults to the current data pipe.",
+    wiz_element_type = 'combo',
+    wiz_combo_iter = pipes.pipe_names,
+    wiz_read_only = True,
+    can_be_none = True
+)
+uf.add_keyarg(
+    name = "pipe_to",
+    py_type = "str",
+    desc_short = "destination data pipe",
+    desc = "The data pipe to copy the interatomic data container to.  This 
defaults to the current data pipe.",
+    wiz_element_type = 'combo',
+    wiz_combo_iter = pipes.pipe_names,
+    wiz_read_only = True,
+    can_be_none = True
+)
+uf.add_keyarg(
+    name = "spin_id1",
+    py_type = "str",
+    arg_type = "spin ID",
+    desc_short = "first spin ID",
+    desc = "The spin ID of the first spin.",
+    wiz_combo_iter = get_spin_ids,
+    can_be_none = True
+)
+uf.add_keyarg(
+    name = "spin_id2",
+    py_type = "str",
+    arg_type = "spin ID",
+    desc_short = "second spin ID",
+    desc = "The spin ID of the first spin.",
+    wiz_combo_iter = get_spin_ids,
+    can_be_none = True
+)
+# Description.
+uf.desc.append(Desc_container())
+uf.desc[-1].add_paragraph("This will copy all the data associated with the 
identified interatomic data container to a different data pipe.  The new 
interatomic data container must not already exist.")
+# Prompt examples.
+uf.desc.append(Desc_container("Prompt examples"))
+uf.desc[-1].add_paragraph("To copy the interatomic data container between 
':2@C' and ':2@H', from the 'orig' data pipe to the current data pipe, type 
one of:")
+uf.desc[-1].add_prompt("relax> interatomic.copy('orig', spin_id1=':2@C', 
spin_id2=':2@H')")
+uf.desc[-1].add_prompt("relax> interatomic.copy(pipe_from='orig', 
spin_id1=':2@C', spin_id2=':2@H')")
+uf.backend = copy
+uf.menu_text = "&copy"
+uf.gui_icon = "oxygen.actions.list-add"
+uf.wizard_size = (700, 600)
+uf.wizard_image = WIZARD_IMAGE_PATH + 'dipole_pair' + sep + 
'NH_dipole_pair.png'
+
+
+# The interatomic.create user function.
+uf = uf_info.add_uf('interatomic.create')
+uf.title = "Create a new spin."
+uf.title_short = "Spin creation."
+uf.display = True
+uf.add_keyarg(
+    name = "spin_id1",
+    py_type = "str",
+    arg_type = "spin ID",
+    desc_short = "first spin ID",
+    desc = "The spin ID of the first spin.",
+    wiz_combo_iter = get_spin_ids,
+    can_be_none = True
+)
+uf.add_keyarg(
+    name = "spin_id2",
+    py_type = "str",
+    arg_type = "spin ID",
+    desc_short = "second spin ID",
+    desc = "The spin ID of the first spin.",
+    wiz_combo_iter = get_spin_ids,
+    can_be_none = True
+)
+uf.add_keyarg(
+    name = "pipe",
+    py_type = "str",
+    desc_short = "alternative data pipe",
+    desc = "The data pipe to create the interatomic data container for.  
This defaults to the current data pipe if not supplied.",
+    wiz_element_type = 'combo',
+    wiz_combo_iter = pipes.pipe_names,
+    wiz_read_only = True,
+    can_be_none = True
+)
+# Description.
+uf.desc.append(Desc_container())
+uf.desc[-1].add_paragraph("This will add a new interatomic data container 
connecting two existing spins to the relax data storage object.")
+# Prompt examples.
+uf.desc.append(Desc_container("Prompt examples"))
+uf.desc[-1].add_paragraph("To connect the spins ':1@N' to ':1@H', type one 
of:")
+uf.desc[-1].add_prompt("relax> interatomic.create(':1@N', ':1@H')")
+uf.desc[-1].add_prompt("relax> interatomic.create(spin_id1=':1@N', 
spin_id2=':1@H')")
+uf.backend = create_interatom
+uf.menu_text = "c&reate"
+uf.gui_icon = "oxygen.actions.list-add-relax-blue"
+uf.wizard_size = (700, 500)
+uf.wizard_image = WIZARD_IMAGE_PATH + 'dipole_pair' + sep + 
'NH_dipole_pair.png'




Related Messages


Powered by MHonArc, Updated Mon Dec 10 15:20:02 2012