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.