Author: bugman
Date: Wed Sep 10 13:57:03 2014
New Revision: 25733
URL: http://svn.gna.org/viewcvs/relax?rev=25733&view=rev
Log:
Modified the frame order auto-analysis axis permutation algorithm to handle
both permutations.
Instead of creating one additional data pipe for the permutations, two are now
created for the
permutations 'A' and 'B'. This allows all 3 solutions for the pseudo-elliptic
models to be
explored and included in the final model selection process.
Modified:
branches/frame_order_cleanup/auto_analyses/frame_order.py
Modified: branches/frame_order_cleanup/auto_analyses/frame_order.py
URL:
http://svn.gna.org/viewcvs/relax/branches/frame_order_cleanup/auto_analyses/frame_order.py?rev=25733&r1=25732&r2=25733&view=diff
==============================================================================
--- branches/frame_order_cleanup/auto_analyses/frame_order.py (original)
+++ branches/frame_order_cleanup/auto_analyses/frame_order.py Wed Sep 10
13:57:03 2014
@@ -171,54 +171,57 @@
@type model: str
"""
- # The title printout.
- title = model[0].upper() + model[1:]
- section(file=sys.stdout, text="Axis permutation of the %s frame order
model"%title, prespace=5)
-
- # A new model name.
- perm_model = "%s permuted" % model
-
- # Copy the data pipe, and add it to the list so it is included in the
model selection.
- self.pipe_name_dict[perm_model] = '%s permuted - %s' % (title,
self.pipe_bundle)
- self.pipe_name_list.append(self.pipe_name_dict[perm_model])
- self.interpreter.pipe.copy(pipe_from=self.pipe_name_dict[model],
pipe_to=self.pipe_name_dict[perm_model])
-
- # The results file already exists, so read its contents instead.
- if self.read_results(model=perm_model,
pipe_name=self.pipe_name_dict[perm_model]):
- # Re-perform model elimination just in case.
+ # Loop over both permutations 'A' and 'B'.
+ for perm in ['A', 'B']:
+ # The title printout.
+ title = model[0].upper() + model[1:]
+ text = "Axis permutation '%s' of the %s frame order model" %
(perm, title)
+ section(file=sys.stdout, text=text, prespace=5)
+
+ # A new model name.
+ perm_model = "%s permutation %s" % (model, perm)
+
+ # Copy the data pipe, and add it to the list so it is included in
the model selection.
+ self.pipe_name_dict[perm_model] = '%s permutation %s - %s' %
(title, perm, self.pipe_bundle)
+ self.pipe_name_list.append(self.pipe_name_dict[perm_model])
+ self.interpreter.pipe.copy(pipe_from=self.pipe_name_dict[model],
pipe_to=self.pipe_name_dict[perm_model])
+
+ # The results file already exists, so read its contents instead.
+ if self.read_results(model=perm_model,
pipe_name=self.pipe_name_dict[perm_model]):
+ # Re-perform model elimination just in case.
+ self.interpreter.eliminate()
+
+ # The PDB representation of the model and visualisation script
(in case this was not completed correctly).
+ self.visualisation(model=perm_model)
+
+ # Exit the function.
+ return
+
+ # Permute the axes.
+ self.interpreter.frame_order.permute_axes(permutation=perm)
+
+ # Minimise (for the full data set).
+ opt = self.opt_full
+ for i in opt.loop_min():
+ # The numerical optimisation settings.
+ num_int_pts = opt.get_min_num_int_pts(i)
+ if num_int_pts != None:
+ self.interpreter.frame_order.num_int_pts(num=num_int_pts)
+
+ # Perform the optimisation.
+
self.interpreter.minimise.execute(min_algor=opt.get_min_algor(i),
func_tol=opt.get_min_func_tol(i), max_iter=opt.get_min_max_iter(i))
+
+ # Results printout.
+ self.print_results()
+
+ # Model elimination.
self.interpreter.eliminate()
- # The PDB representation of the model and visualisation script (in
case this was not completed correctly).
+ # Save the results.
+
self.interpreter.results.write(dir=self.model_directory(perm_model), force=True)
+
+ # The PDB representation of the model and visualisation script.
self.visualisation(model=perm_model)
-
- # Exit the function.
- return
-
- # Permute the axes.
- self.interpreter.frame_order.permute_axes()
-
- # Minimise (for the full data set).
- opt = self.opt_full
- for i in opt.loop_min():
- # The numerical optimisation settings.
- num_int_pts = opt.get_min_num_int_pts(i)
- if num_int_pts != None:
- self.interpreter.frame_order.num_int_pts(num=num_int_pts)
-
- # Perform the optimisation.
- self.interpreter.minimise.execute(min_algor=opt.get_min_algor(i),
func_tol=opt.get_min_func_tol(i), max_iter=opt.get_min_max_iter(i))
-
- # Results printout.
- self.print_results()
-
- # Model elimination.
- self.interpreter.eliminate()
-
- # Save the results.
- self.interpreter.results.write(dir=self.model_directory(perm_model),
force=True)
-
- # The PDB representation of the model and visualisation script.
- self.visualisation(model=perm_model)
def check_vars(self):
@@ -877,7 +880,7 @@
"""
# Sanity check.
- if model != 'final' and model.replace(' permuted', '') != cdp.model:
+ if model != 'final' and model.replace(' permutation A', '').replace('
permutation B', '') != cdp.model:
raise RelaxError("The model '%s' does not match the model '%s' of
the current data pipe." % (model.replace(' permuted', ''), cdp.model))
# The PDB representation of the model.
_______________________________________________
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