Yeah, go ahead. Also, you closed the bug report so I can't actually attach the file to it. I'll try attaching the full_analysis.py script to this message.. hopefully the mailing list allows that. Tyler Quoting Edward d'Auvergne <edward@xxxxxxxxxxxxx>:
Right, got it and can reproduce the bug. I think I know what the issue is, but would you be able to attach the full_analysis.py script to the bug report so I can confirm it? Well, actually there are probably two issues, the first being a problem with the full analysis script not setting the spin names (hence it can't find the unnamed atoms in the PDB file) and the second is that relax isn't catching this. Also, would it be ok if I added the truncated results.bz2 and PDB_file_truncate_random.pdb files to the relax test suite? This will allow me to fix the second issue (for the first, the full_analysis.py script needs checking). Cheers, Edward On Thu, Oct 23, 2008 at 4:48 PM, Tyler Reddy <TREDDY@xxxxxx> wrote:The aic results file should be attached to the bug report. It looks like it's there when I check it. Quoting Edward d'Auvergne <edward@xxxxxxxxxxxxx>:Hi, I've tried the PDB file and it seems to be fine. There are no strange formatting issues there. Therefore it is caused by the loaded 'local_tm/aic/results.bz2' file which is somehow not matching the loading of the PDB file. Unfortunately I can't work out what is causing the XH bond vectors from the PDB file to not be extracted. This is what the loading of vectors should look like: relax> structure.vectors(attached='H', spin_id=None, struct_index=None, verbosity=1, ave=True, unit=True) Extracting vectors from the single structure. Calculating the unit vectors. The attached atom is a proton. RelaxWarning: No attached atom could be found (atom ID ':1@1&@N'). RelaxWarning: No attached atom could be found (atom ID ':2@11&@N'). Extracted N-H vectors for ':3@28&@N'. Extracted N-H vectors for ':4@51&@N'. Extracted N-H vectors for ':5@59&@N'. Extracted N-H vectors for ':6@71&@N'. Extracted N-H vectors for ':7@91&@N'. Extracted N-H vectors for ':8@104&@N'. RelaxWarning: No attached atom could be found (atom ID ':9@116&@N'). RelaxWarning: No attached atom could be found (atom ID ':10@133&@N'). Extracted N-H vectors for ':11@150&@N'. Extracted N-H vectors for ':12@167&@N'. RelaxWarning: Either the spin number or name must be set for the spin ':13' to identify the corresponding atom in the structure. RelaxWarning: Either the spin number or name must be set for the spin ':14' to identify the corresponding atom in the structure. RelaxWarning: Either the spin number or name must be set for the spin ':15' to identify the corresponding atom in the structure. These are the messages from one of the system tests. Note the "Extracted N-H vectors for" lines which are missing from your printout. By using the following commands in relax: pipe.create(pipe_name='ellipsoid', pipe_type='mf') structure.read_pdb(file='PDB_file_truncate_random.pdb', dir=None, model=None, parser='scientific') structure.load_spins() structure.vectors(attached='H', spin_id=None, struct_index=None, verbosity=1, ave=True, unit=True) I get the following print out from the last user function: relax> structure.vectors(attached='H', spin_id=None, struct_index=None, verbosity=1, ave=True, unit=True) Extracting vectors from the single structure. Calculating the unit vectors. The attached atom is a proton. Extracted N-H vectors for '#A:111@58&@N'. Extracted CA-H vectors for '#A:111@59&@CA'. Extracted C-H vectors for '#A:111@60&@C'. Extracted O-H vectors for '#A:111@61&@O'. Extracted CB-H vectors for '#A:111@62&@CB'. Extracted CG-H vectors for '#A:111@63&@CG'. Extracted CD1-H vectors for '#A:111@64&@CD1'. Extracted CD2-H vectors for '#A:111@65&@CD2'. RelaxWarning: The XH bond vector for residue '#A:111@66&@H' is of zero length. Extracted H-H vectors for '#A:111@66&@H'. Extracted HA-H vectors for '#A:111@67&@HA'. Extracted HB2-H vectors for '#A:111@68&@HB2'. Extracted HB3-H vectors for '#A:111@69&@HB3'. Extracted HG-H vectors for '#A:111@70&@HG'. Extracted HD11-H vectors for '#A:111@71&@HD11'. Extracted HD12-H vectors for '#A:111@72&@HD12'. Extracted HD13-H vectors for '#A:111@73&@HD13'. Extracted HD21-H vectors for '#A:111@74&@HD21'. Extracted HD22-H vectors for '#A:111@75&@HD22'. Extracted HD23-H vectors for '#A:111@76&@HD23'. Obviously some of these vectors are a bit strange, but this test shows that there is no problem extracting them from your PDB file. Therefore I think I'd need the loaded results file (truncated and randomised if you wish) to be able to identify the problem. Regards, Edward On Wed, Oct 22, 2008 at 3:02 PM, Tyler Reddy <TREDDY@xxxxxx> wrote:Okay, I submitted the report. Let me know if there's more information you need or a better way to submit bug reports in general.. haven't done this before. Also, I had to manually copy/paste the output, and while it looks fine, if there is a problem with the same pdb structure getting read twice or something that's probably just my pasting error from the unix terminal to the browser. On that note, how can I fix this command: relax full_analysis.py > STDOUT.txt 2> STDERR.txt tcsh: Ambiguous output redirect. Or better yet, can I merge all the output streams to a single text file and display the output in the terminal at the same time as well (maybe I'm getting too ambitious there..)? Also, I do get the same output for 'ellipsoid' as well, as Seb asked. Yours, Tyler Quoting Edward d'Auvergne <edward@xxxxxxxxxxxxx>:Hi, This issue looks like a problem with the loaded PDB structure. The 'local_tm' and 'sphere' optimisations do not utilise structural information, but the 'oblate' and 'prolate' spheroids, and the 'ellipsoid' all require this info. Normally relax will catch this problem and deselect the spins without XH bond vectors, but this seems to be broken in the 1.3 versions hence you get the original cryptic Python error. As this is a real bug with the relax source code (and not a yet-to-be converted feature or a sample script), would you be able to submit a bug report for this issue? The relax bug tracker is located at https://gna.org/bugs/?group=relax and the link at https://gna.org/bugs/?func=additem&group=relax allows you to create a report. That would be much appreciated. The bug report will be useful for having this error caught by the relax test suite - if I can replicate the bug there then I can play with the bug and fix it. Note the the actual problem occurred earlier starting with the loading of the PDB file at the structure.read_pdb() user function. So if you could include all print out from that user function to the end of the traceback error message, that would be very useful. Cheers, Edward On Wed, Oct 22, 2008 at 3:17 AM, Tyler Reddy <TREDDY@xxxxxx> wrote:Hi Seb, I just tested 'oblate' and it produces the same error output. Tyler Quoting Sébastien Morin <sebastien.morin.1@xxxxxxxxx>:Hi Tyler, Do you get the same error when trying the 'oblate' or 'ellipsoid' diffusion tensors ? Sébastien Tyler Reddy wrote:I'm having an issue with the full_analysis.py script. It seems to work fine when DIFF_MODEL = 'local_tm' or 'sphere' (converges on 4th round) but for 'prolate' I get the following output: Grid search ~~~~~~~~~~~ Searching the grid. Traceback (most recent call last): File "/Applications/relax-1.3.1/relax-1.3/relax", line 408, in <module> Relax() File "/Applications/relax-1.3.1/relax-1.3/relax", line 125, in __init__ self.interpreter.run(self.script_file) File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py", line 270, in run return run_script(intro=self.__intro_string, local=self.local, script_file=script_file, quit=self.__quit_flag, show_script=self.__show_script, raise_relax_error=self.__raise_relax_er File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py", line 531, in run_script return console.interact(intro, local, script_file, quit, show_script=show_script, raise_relax_error=raise_relax_error) File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py", line 427, in interact_script execfile(script_file, local) File "full_analysis.py", line 673, in <module> Main(self.relax) File "full_analysis.py", line 284, in __init__ grid_search(inc=inc) File "/Applications/relax-1.3.1/relax-1.3/prompt/minimisation.py", line 152, in grid_search minimise.grid_search(lower=lower, upper=upper, inc=inc, constraints=constraints, verbosity=verbosity) File "/Applications/relax-1.3.1/relax-1.3/generic_fns/minimise.py", line 185, in grid_search grid_search(lower=lower, upper=upper, inc=inc, constraints=constraints, verbosity=verbosity) File "/Applications/relax-1.3.1/relax-1.3/specific_fns/model_free/mf_minimise.py", line 479, in grid_search self.minimise(min_algor='grid', lower=lower, upper=upper, inc=inc, constraints=constraints, verbosity=verbosity, sim_index=sim_index) File "/Applications/relax-1.3.1/relax-1.3/specific_fns/model_free/mf_minimise.py", line 987, in minimise results = generic_minimise(func=self.mf.func, dfunc=self.mf.dfunc, d2func=self.mf.d2func, args=(), x0=param_vector, min_algor=min_algor, min_options=min_options, func_tol=func_tol, g l, maxiter=max_iterations, A=A, b=b, full_output=1, print_flag=verbosity) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/minfx/generic.py", line 319, in generic_minimise xk, fk, k = grid(func=func, args=args, grid_ops=min_options, A=A, b=b, l=l, u=u, c=c, print_flag=print_flag) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/minfx/grid.py", line 129, in grid f = func(*(params,)+args) File "/Applications/relax-1.3.1/relax-1.3/maths_fns/mf.py", line 506, in func_diff self.diff_data.calc_di(data, self.diff_data) File "/Applications/relax-1.3.1/relax-1.3/maths_fns/direction_cosine.py", line 64, in calc_spheroid_di data.dz = dot(data.xh_unit_vector, diff_data.dpar) TypeError: unsupported operand type(s) for *: 'NoneType' and 'float' Quoting Edward d'Auvergne <edward@xxxxxxxxxxxxx>:Hi, For the bug you mention, I've fixed this and the changes are in the repository. There were a few other issues to do with subsequent LaTeX compilation and these have been fixed too. You can see the new sample script at: http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/ Regards, Edward On Tue, Oct 21, 2008 at 3:44 AM, Tyler Reddy <TREDDY@xxxxxx> wrote:Hello, 1) I changed that line and I'm still having a bit of trouble (see output below). 2) The errors that I'm using are described as 'the standard error for each parameter... [which] is an easy calculation from the covariance matrix.' Paraphrasing from the author there--I'm guessing this isn't the optimal input? 3) I'm not sure it's explicitly stated in the manual, but I'm proceeding on the assumption that you run the multi-model script first and then modsel to decide on the right model for each given residue. A few weeks ago I was experimenting with this and if I didn't leave the global correlation time as fixed the computation seemed to take a VERY long time (unclear if it was ever going to finish). Also, as a side note, since my peptide is actually in a micelle, I'm not sure if there's anything extra I can do for diffusion tensor and correlation time type stuff. I know some programs (i.e. the Mathematica notebooks by Dr. Spyracopoulos) read in PDB files for diffusion tensor calculations, but I suspect it's a bit of a mess when the system is more complicated than the structure in the PDB file would suggest. Output: Latex() ---------------------------------------------------------------------------------------------------- relax> pipe.create(pipe_name='results', pipe_type='mf') relax> results.read(file='results', dir=None) Opening the file 'results' for reading. Traceback (most recent call last): File "/Applications/relax-1.3.1/relax-1.3/relax", line 408, in <module> Relax() File "/Applications/relax-1.3.1/relax-1.3/relax", line 125, in __init__ self.interpreter.run(self.script_file) File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py", line 270, in run return run_script(intro=self.__intro_string, local=self.local, script_file=script_file, quit=self.__quit_flag, show_script=self.__show_script, raise_relax_error=self.__raise_relax_error) File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py", line 531, in run_script return console.interact(intro, local, script_file, quit, show_script=show_script, raise_relax_error=raise_relax_error) File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py", line 427, in interact_script execfile(script_file, local) File "latex_mf_table.py", line 220, in <module> Latex() File "latex_mf_table.py", line 68, in __init__ self.table_body() File "latex_mf_table.py", line 186, in table_body self.file.write("%9.3f & %9.3f & " % (spin.s2, spin.s2_err)) AttributeError: 'SpinContainer' object has no attribute 's2_err' Quoting Edward d'Auvergne <edward@xxxxxxxxxxxxx>:Hi, Using a new system test, I found one more bug in the script. This has been fixed in the 1.3 repository line. If you haven't used subversion to check out (and update) the 1.3 line, then you can see the changes required in my commit at: https://mail.gna.org/public/relax-commits/2008-10/msg00402.html Just change the line starting with '-' to the line starting with '+'. Oh, it may take a few minutes for the link to be generated. Regards, Edward On Mon, Oct 20, 2008 at 10:12 PM, Edward d'Auvergne <edward@xxxxxxxxxxxxx> wrote:Hi, That's a bug in the sample script. Try adding a ':' character to the end of line 171 in your script. I've fixed this in the 1.3 repository line and will try to add a system test to the program to try to catch any bugs before you do ;) Cheers, Edward On Mon, Oct 20, 2008 at 9:27 PM, Tyler Reddy <TREDDY@xxxxxx> wrote:I've been trying to use the latex python script on the aic results file. I get the syntax error below. Not sure if I'm doing something wrong or if there's just a small problem with that line of code: Latex() ---------------------------------------------------------------------------------------------------- Traceback (most recent call last): File "/Applications/relax-1.3.1/relax-1.3/relax", line 408, in <module> Relax() File "/Applications/relax-1.3.1/relax-1.3/relax", line 125, in __init__ self.interpreter.run(self.script_file) File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py", line 270, in run return run_script(intro=self.__intro_string, local=self.local, script_file=script_file, quit=self.__quit_flag, show_script=self.__show_script, raise_relax_error=self.__raise_relax_error) File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py", line 531, in run_script return console.interact(intro, local, script_file, quit, show_script=show_script, raise_relax_error=raise_relax_error) File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py", line 427, in interact_script execfile(script_file, local) File "latex_mf_table.py", line 171 for spin, spin_id in spin_loop(return_id=True) SyntaxError: invalid syntax Quoting Edward d'Auvergne <edward@xxxxxxxxxxxxx>:On Mon, Oct 20, 2008 at 5:12 PM, Tyler Reddy <TREDDY@xxxxxx> wrote:Hello, 1) I have been using the multi model and model selection scripts in relax 1.3.2 but I have trouble displaying the output in a tabulated format. Both scripts seem to produce an xml document with various headers that isn't easy to read. It looks like format='columnar' isn't supported. I wonder what other options I have to look at this data? For some reason, I don't recall having this problem on a Linux machine a few weeks ago (using a Mac OS 10.4 at the moment), but anyways it would be nice to get readable model-free output.The results file is now in XML format and the more readable 'columnar' format has been removed from the 1.3 line. With the change to the new XML results file all the contents of a data pipe, irrespective of what that data is, is packaged. So you can put data into this pipe yourself and it will save that information (for advanced users, complex python objects will need the to_xml() and from_xml() methods to package and unpackage the data). The reason for removing the 'columnar' format was that it was considered too inflexible for the changes occuring in the 1.3 line, it contained duplicate information, had numerical precision issues, and there were alternatives to easily view this data. You can use the value.display() and value.write() user functions to display and save the results for a single parameter. If needed, these user functions could be extended to accept a list of parameters. Then there is the sample_scripts/latex_mf_table.py sample script which will generate a LaTeX table of the model-free results. This file can be copied and modified - this requires learning a bit of python - to format and display the results any way you wish. And finally if anyone really wants to, and has the skills to, they can modify this sample script to recreate a version of the 'columnar' format. This could be added to the relax sample scripts, and if their skills are very advanced, then much code from the 1.2 relax versions can be recycled.2) The error input for the relaxation rate parameters is currently my non-linear curve fitting standard deviation. I'm not sure if that means subsequent analysis will be completely incorrect? I guess it depends on the comparison of magnitude between these errors and the type of error that is propagated by relax during its own curve-fitting (which I am unable to do at the moment).I'm guessing this is the sum of squared error value (SSE) from the fit. Or is it a regression coefficient or a chi-squared value? Did the fitting use a technique such as bootstrapping or jackknife simulations to estimate the parameter errors via propagation? Or did it use the covariance matrix? If it is the SSE, chi-squared, or regression coefficient then that value cannot be used. This will be wildly wrong and cause massive failure in model selection. It will cause big problems in optimisation, and if you are unlucky and have spaces with long, curved valleys or flat curved spaces leading to the minimum (that's model-free models m5 to m8 in most cases and not so uncommon in model m4) then the minimum can be squeezed and appear in another completely different region in the space. It will likely also cause model failure issues, which although removed by the eliminate() user function, might discount the best solution. I would guess that all of this will have a measurable affect on the final diffusion tensor as well and, if so, this will cause the appearance of artificial motions (my 2007 JBNMR paper at http://dx.doi.org/10.1039/b702202f explains these problems in detail). If one is not careful with the errors and they are significantly off, then the result is that the results may not be real. So I would only use the error if it comes from an established error propagation technique (i.e. from data to parameter error propagation). Regards, Edward_______________________________________________ relax (http://nmr-relax.com) This is the relax-users mailing list relax-users@xxxxxxx 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-users_______________________________________________ relax (http://nmr-relax.com) This is the relax-users mailing list relax-users@xxxxxxx 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-users_______________________________________________ relax (http://nmr-relax.com) This is the relax-users mailing list relax-users@xxxxxxx 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-users_______________________________________________ relax (http://nmr-relax.com) This is the relax-users mailing list relax-users@xxxxxxx 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-users_______________________________________________ relax (http://nmr-relax.com) This is the relax-users mailing list relax-users@xxxxxxx 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-users_______________________________________________ relax (http://nmr-relax.com) This is the relax-users mailing list relax-users@xxxxxxx 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-users
Attachment:
full_analysis.py
Description: application/python