mailRe: Nested exception from sub processor


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

Header


Content

Posted by Edward d'Auvergne on May 24, 2012 - 10:07:
Hi,

I've been trying to work this one out, but I'm really stuck!  Firstly
I cannot find line 80 of math_fns/mf.py which contains or calls the
function calc_spheroid_ci(), though I'm assuming it is the
maths_fns/weights.py file.  Did you modify the relax print out?  This
maths_fns/weights.py code path is being tested very thoroughly by the
test suite, so this indicates that it works fine for a standard
model-free analysis.  I put some code in there to cause this
calc_spheroid_ci() function to throw an error, and I see 45 failures
in the test suite.  This is extensively tested.  Instead of just the
error you reported at
https://mail.gna.org/public/relax-users/2011-10/msg00008.html, could
you run relax with:

$ relax --tee my_log my_scripy.py

and then attach the 'my_log' file to the bug report
(https://gna.org/bugs/?18807)?  The additional details might indicate
what is happening.  If this doesn't indicate what the problem is, then
the best way to do this would be to come up with a minimal test data
set which reproduces the problem.  This could consist of a PDB file
with two lines (or 4) with the N and H data for a single residue.  And
then also include the relaxation data for that single residue.  You
can randomise the coordinates and relaxation data if it is to be kept
secret.  If you then have a single script which, when run using the
truncated PDB file and relaxation data, causes the error to appear,
then this could be attached to the bug report.  I would then add this
data and script to the relax test suite so that such an error is
always caught.  Once in the test suite, I can usually find a solution
within minutes.  So this would help a lot.

Cheers,

Edward


On 11 May 2012 19:56, V.V. <vvostri@xxxxxxxxx> wrote:
Hi Edward,

I have updated relax to revision 16237. The "ave=False" flag is
working fine in the "structure.read()", but when it comes to the
diffusion tensor optimization the error is returned:

File "/home/vvostri/relax/math_fns/mf.py", line 80 in calc_spheroid_ci
data.ci[0] = 0.25 * data.three_dz2_one**2
ValueError: setting an array element with a sequence

Vitaly


On Wed, May 9, 2012 at 2:50 AM, Edward d'Auvergne <edward@xxxxxxxxxxxxx> 
wrote:
Hi Vitaly,

I have just made a change to the relax repository version to improve
remove this error message and replace it with an informative
RelaxError 
(http://www.mail-archive.com/relax-commits@xxxxxxx/msg13833.html).
 I have added a check to the model-free analysis which will hopefully
catch the condition of multiple vectors loaded per spin.  Do you still
have copy of the repository?  If so, could you update it with 'svn up'
and check if this error message is improved?  If the message is clear,
I will then close the bug (https://gna.org/bugs/?18807).

Cheers,

Edward


On 11 October 2011 22:16, Edward d'Auvergne <edward@xxxxxxxxxxxxx> wrote:
Hi,

Thanks for that.  Setting the 'ave' flag to False is used in the other
parts of relax, specifically the N-state model analyses using RDCs,
PCSs, NOEs, etc.  Then each state or structure N has a separate bond
vector.  But for a model-free analysis, this has no use.

For your data, I would use the best of the NMR structures.  You could
compare this to an average, or to one of the other structures.  But
note that the calculation can take between 1 to 2 weeks to complete!
So doing this for 20 structures would be expensive.

Regards,

Edward


On 11 October 2011 21:52, V.V. <vvostri@xxxxxxxxx> wrote:
Thank you, Edward (no problem about the delay). I have submitted the
bug report (#18807). I am just curious: is there any practical use for
the "ave=False" flag then?
As far as my data analysis goes, I can separate the NMR ensemble into
the individual models and run the calculations on each of them. Does
this sound like a reasonable approach?

Vitaly

On Tue, Oct 11, 2011 at 14:39, Edward d'Auvergne <edward@xxxxxxxxxxxxx> 
wrote:
Hi,

Sorry for the delay there.  I've been quite busy lately.  The problem
is that I'm pretty sure that the model-free analysis is not set up to
handle multiple vectors.  This lies within the theory itself.  The
bond vector should be in the centre of the cone or whatever the vector
distribution is.  To be able to use multiple vectors would require
digging into the model-free theory and modifying it.  Therefore the
vectors should be averaged or a single structure used.  I am surprised
that relax allows the calculation to start without a RelaxError being
thrown.  I will modify the code later to give such an error and
prevent the calculation from starting.  Thanks for pointing out this
error.  If you could submit it as a bug to
https://gna.org/bugs/?func=additem&group=relax, that would be very
useful if some else encounters the same problem.

Cheers,

Edward


On 11 October 2011 21:29, V.V. <vvostri@xxxxxxxxx> wrote:
Looks like it is an issue with "ave=False" flag in
"structure.vectors", rather then "deselect.read". The NMR ensemble I
have consists of two structured domains, connected with a flexible
loop, i.e. the overall RMSD is fairly high and the N-H vectors in
different models are likely to be quite different. Can this be the
reason for the previously mentioned exception?

Thank you,
Vitaly


On Fri, Oct 7, 2011 at 15:28, V.V. <vvostri@xxxxxxxxx> wrote:
Hi Edward,

I am running "dauvergne_protocol" script for my protein. The
"local_tm" and "sphere" models calculations proceeded fine, but with
prolate/oblate/ellipsoid diffusion tensors an exception is thrown (the
output is below). I have run the same script successfully before. The
difference is that I have excluded several mobile residues and using
"ave=False" in "structure.vectors" (the pdb file is an NMR ensemble,
20 models). If necessary, I can send the input files separately. Relax
revision is 14809.

Thank you,
Vitaly

Traceback (most recent call last):
 File "/home/vitalyv/relax/multi/uni_processor.py", line 136, in run
   self.callback.init_master(self)
 File "/home/vitalyv/relax/multi/processor.py", line 263, in
default_init_master
   self.master.run()
 File "/home/vitalyv/relax/relax.py", line 174, in run
   self.interpreter.run(self.script_file)
 File "/home/vitalyv/relax/prompt/interpreter.py", line 300, in run
   return run_script(intro=self.__intro_string, local=locals(),
script_file=script_file, quit=self.__quit_flag,
show_script=self.__show_script,
raise_relax_error=self.__raise_relax_error)
 File "/home/vitalyv/relax/prompt/interpreter.py", line 610, in 
run_script
   return console.interact(intro, local, script_file, quit,
show_script=show_script, raise_relax_error=raise_relax_error)
 File "/home/vitalyv/relax/prompt/interpreter.py", line 495, in 
interact_script
   exec_script(script_file, local)
 File "/home/vitalyv/relax/prompt/interpreter.py", line 383, in 
exec_script
   runpy.run_module(module, globals)
 File "/usr/lib/python2.7/runpy.py", line 180, in run_module
   fname, loader, pkg_name)
 File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
   exec code in run_globals
 File "/home/vitalyv/relax/wtpln/dauvergne_protocol.py", line 218, in 
<module>
   dAuvergne_protocol(pipe_name=name, diff_model=DIFF_MODEL,
mf_models=MF_MODELS, local_tm_models=LOCAL_TM_MODELS,
grid_inc=GRID_INC, min_algor=MIN_ALGOR, mc_sim_num=MC_NUM,
conv_loop=CONV_LOOP)
 File "/home/vitalyv/relax/auto_analyses/dauvergne_protocol.py", line
223, in __init__
   self.execute()
 File "/home/vitalyv/relax/auto_analyses/dauvergne_protocol.py", line
596, in execute
   self.interpreter.grid_search(inc=inc)
 File "/home/vitalyv/relax/prompt/minimisation.py", line 106, in 
grid_search
   minimise.grid_search(lower=lower, upper=upper, inc=inc,
constraints=constraints, verbosity=verbosity)
 File "/home/vitalyv/relax/generic_fns/minimise.py", line 146, in 
grid_search
   processor_box.processor.run_queue()
 File "/home/vitalyv/relax/multi/uni_processor.py", line 149, in 
run_queue
   command.run(self, completed)
 File 
"/home/vitalyv/relax/specific_fns/model_free/multi_processor_commands.py",
line 144, in run
   raise Capturing_exception(rank=processor.rank(), 
name=processor.get_name())
Capturing_exception:

------------------------------------------------------------------------------------------------------------------------

 File 
"/home/vitalyv/relax/specific_fns/model_free/multi_processor_commands.py",
line 132, in run
   results = self.optimise()
 File 
"/home/vitalyv/relax/specific_fns/model_free/multi_processor_commands.py",
line 185, in optimise
   results = grid_point_array(func=self.mf.func, args=(),
points=self.opt_params.subdivision,
verbosity=self.opt_params.verbosity)
 File "/usr/lib/python2.7/site-packages/minfx/grid.py", line 282, in
grid_point_array
   f = func(*(points[k],)+args)
 File "/home/vitalyv/relax/maths_fns/mf.py", line 517, in func_diff
   self.diff_data.calc_ci(data, self.diff_data)
 File "/home/vitalyv/relax/maths_fns/weights.py", line 80, in 
calc_spheroid_ci
   data.ci[0] = 0.25 * data.three_dz2_one**2


Nested Exception from sub processor
Exception type: ValueError
Message: setting an array element with a sequence.







Related Messages


Powered by MHonArc, Updated Thu May 24 10:20:09 2012