Author: bugman
Date: Fri Sep 12 11:22:42 2014
New Revision: 25773
URL: http://svn.gna.org/viewcvs/relax?rev=25773&view=rev
Log:
The model argument in the structure.delete user function is now operational.
In the internal object, it has two functions. When the atom_id argument is
none, then new
ModelList.delete_model() function is being called to remove the entire model
from the list of
structural models. When the atom_id argument is supplied, then only the
corresponding atoms in the
given model will be deleted.
Modified:
trunk/lib/structure/internal/models.py
trunk/lib/structure/internal/object.py
Modified: trunk/lib/structure/internal/models.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/lib/structure/internal/models.py?rev=25773&r1=25772&r2=25773&view=diff
==============================================================================
--- trunk/lib/structure/internal/models.py (original)
+++ trunk/lib/structure/internal/models.py Fri Sep 12 11:22:42 2014
@@ -88,6 +88,23 @@
# Return the model container.
return self[-1]
+
+
+ def delete_model(self, model_num=None):
+ """Delete the given model from the list.
+
+ @keyword model_num: The model to delete.
+ @type model_num: int
+ """
+
+ # Sanity check.
+ if model_num not in self.current_models:
+ raise RelaxError("The model %s does not exist." % model_num)
+
+ # Remove the model from the lists (self and the current models).
+ index = self.current_models.index(model_num)
+ self.pop(index)
+ self.current_models.pop(index)
def is_empty(self):
Modified: trunk/lib/structure/internal/object.py
URL:
http://svn.gna.org/viewcvs/relax/trunk/lib/structure/internal/object.py?rev=25773&r1=25772&r2=25773&view=diff
==============================================================================
--- trunk/lib/structure/internal/object.py (original)
+++ trunk/lib/structure/internal/object.py Fri Sep 12 11:22:42 2014
@@ -1521,7 +1521,7 @@
"""
# All data.
- if atom_id == None:
+ if model == None and atom_id == None:
# Printout.
if verbosity:
print("Deleting the following structural data:\n")
@@ -1532,6 +1532,10 @@
# Initialise the empty model list.
self.structural_data = ModelList()
+
+ # Delete a whole model.
+ elif atom_id == None:
+ self.structural_data.delete_model(model_num=model)
# Atom subset deletion.
else:
@@ -1548,10 +1552,14 @@
# Loop over the models.
del_res_nums = []
- for model in self.model_loop():
+ for model_cont in self.model_loop():
+ # Skip models.
+ if model != None and model_cont.num == model:
+ continue
+
# Loop over the molecules.
- for mol_index in range(len(model.mol)):
- mol = model.mol[mol_index]
+ for mol_index in range(len(model_cont.mol)):
+ mol = model_cont.mol[mol_index]
# Skip non-matching molecules.
if sel_obj and not sel_obj.contains_mol(mol.mol_name):
@@ -1581,6 +1589,8 @@
# Nothing more to do.
if not len(del_res_nums):
+ return
+ if model != None and len(self.structural_data) > 1:
return
# Fix the deleted residue number order.
_______________________________________________
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