Author: bugman
Date: Tue Jan 12 09:38:10 2016
New Revision: 28164

URL: http://svn.gna.org/viewcvs/relax?rev=28164&view=rev
Log:
Added the spin_num boolean argument to the structure.load_spins user function.

Setting this flag to False will cause the spin number information to be ignored 
when creating the
spin containers.  This allows for better support of homologous structures but 
with different PDB
atom numbering.  The default flag value is True, preserving the old behaviour.


Modified:
    trunk/pipe_control/structure/main.py
    trunk/user_functions/structure.py

Modified: trunk/pipe_control/structure/main.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/pipe_control/structure/main.py?rev=28164&r1=28163&r2=28164&view=diff
==============================================================================
--- trunk/pipe_control/structure/main.py        (original)
+++ trunk/pipe_control/structure/main.py        Tue Jan 12 09:38:10 2016
@@ -1,6 +1,6 @@
 ###############################################################################
 #                                                                             #
-# Copyright (C) 2003-2015 Edward d'Auvergne                                   #
+# Copyright (C) 2003-2016 Edward d'Auvergne                                   #
 #                                                                             #
 # This file is part of the program relax (http://www.nmr-relax.com).          #
 #                                                                             #
@@ -816,7 +816,7 @@
     write_data(out=sys.stdout, headings=["Spin_ID", "Position"], data=data)
 
 
-def load_spins(spin_id=None, str_id=None, from_mols=None, 
mol_name_target=None, ave_pos=False):
+def load_spins(spin_id=None, str_id=None, from_mols=None, 
mol_name_target=None, ave_pos=False, spin_num=True):
     """Load the spins from the structural object into the relax data store.
 
     @keyword spin_id:           The molecule, residue, and spin identifier 
string.
@@ -829,11 +829,13 @@
     @type mol_name_target:      str or None
     @keyword ave_pos:           A flag specifying if the average atom position 
or the atom position from all loaded structures is loaded into the 
SpinContainer.
     @type ave_pos:              bool
+    @keyword spin_num:          A flag specifying if the spin number should be 
loaded.
+    @type spin_num:             bool
     """
 
     # The multi-molecule case.
     if from_mols != None:
-        load_spins_multi_mol(spin_id=spin_id, str_id=str_id, 
from_mols=from_mols, mol_name_target=mol_name_target, ave_pos=ave_pos)
+        load_spins_multi_mol(spin_id=spin_id, str_id=str_id, 
from_mols=from_mols, mol_name_target=mol_name_target, ave_pos=ave_pos, 
spin_num=spin_num)
         return
 
     # Checks.
@@ -856,6 +858,10 @@
         # Override the molecule name.
         if mol_name_target:
             mol_name = mol_name_target
+
+        # No spin number.
+        if not spin_num:
+            atom_num = None
 
         # Remove the '+' regular expression character from the mol, res, and 
spin names!
         if mol_name and search('\+', mol_name):
@@ -904,7 +910,7 @@
     cdp.N = cdp.structure.num_models()
 
 
-def load_spins_multi_mol(spin_id=None, str_id=None, from_mols=None, 
mol_name_target=None, ave_pos=False):
+def load_spins_multi_mol(spin_id=None, str_id=None, from_mols=None, 
mol_name_target=None, ave_pos=False, spin_num=True):
     """Load the spins from the structural object into the relax data store.
 
     @keyword spin_id:           The molecule, residue, and spin identifier 
string.
@@ -917,6 +923,8 @@
     @type mol_name_target:      str or None
     @keyword ave_pos:           A flag specifying if the average atom position 
or the atom position from all loaded structures is loaded into the 
SpinContainer.
     @type ave_pos:              bool
+    @keyword spin_num:          A flag specifying if the spin number should be 
loaded.
+    @type spin_num:             bool
     """
 
     # Checks.
@@ -966,6 +974,10 @@
                 res_name = res_name.replace('+', '')
             if atom_name and search('\+', atom_name):
                 atom_name = atom_name.replace('+', '')
+
+            # No spin number.
+            if not spin_num:
+                atom_num = None
 
             # Generate a spin ID for the current atom.
             id = generate_spin_id_unique(mol_name=mol_name_target, 
res_num=res_num, res_name=res_name, spin_name=atom_name)

Modified: trunk/user_functions/structure.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/user_functions/structure.py?rev=28164&r1=28163&r2=28164&view=diff
==============================================================================
--- trunk/user_functions/structure.py   (original)
+++ trunk/user_functions/structure.py   Tue Jan 12 09:38:10 2016
@@ -1,6 +1,6 @@
 ###############################################################################
 #                                                                             #
-# Copyright (C) 2003-2015 Edward d'Auvergne                                   #
+# Copyright (C) 2003-2016 Edward d'Auvergne                                   #
 #                                                                             #
 # This file is part of the program relax (http://www.nmr-relax.com).          #
 #                                                                             #
@@ -795,6 +795,13 @@
     py_type = "bool",
     desc_short = "average position flag",
     desc = "A flag specifying if the position of the atom is to be averaged 
across models."
+)
+uf.add_keyarg(
+    name = "spin_num",
+    default = True,
+    py_type = "bool",
+    desc_short = "spin number loading flag",
+    desc = "A flag specifying if the spin number should be loaded."
 )
 # Description.
 uf.desc.append(Desc_container())


_______________________________________________
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

Reply via email to