Hi Edward, Any luck with my reported bugs? Cheers, TiagoP -----Original Message----- From: edward.dauvergne@xxxxxxxxx [mailto:edward.dauvergne@xxxxxxxxx] On Behalf Of Edward d'Auvergne Sent: sábado, 28 de Novembro de 2009 20:34 To: Tiago Pais Cc: relax-users@xxxxxxx Subject: Re: MF_Multimodel 2009/11/28 Tiago Pais <tpais@xxxxxxxxxxx>:
Well, I am getting a bit frustrated with all this.
Hi, I'm sorry to hear this. I'll try to help you below.
I am trying to run the mf_multimodel script just to make the model
selection
and the determination of S2 values. I want the diffusion tensor parameters to be fixed since I have calculated them before using another program - I am using a rhombic model and 15N relaxation data at one field only. My idea is to compare the results obtained with Relax and this other program that I have used before (Tensor2).
First note that both I and in Art Palmer's works, we recommend multiple iterations of optimising the model-free models, model selection, and then optimising the diffusion tensor. The reason is because the initial estimate is usually not exactly what is happening in the NMR tube. This is quite important. Another problem is that there are so many different ways of specifying the tensor, and most programs that can calculate a tensor don't give you enough information for fully defining the thing. E.g. Blackledge's Tensor program and Art Palmer's Modelfree program use different definitions for the spherical angles for the spheroids and Euler angles for the ellipsoids (good luck finding these). Therefore with the iterative procedure, you can watch the tensor rotate to the correct position. Unless you know the Euler angle convention, exactly how the geometric parameters are defined (Da, Dr, R, etc.), what the spherical angle convention is (i.e. on which axis is the azimuthal angle zero), if the polar angle is defined between -pi/2 -> pi/2 or 0 -> pi, etc., you cannot take a tensor from one program and use it in another. This approach will fail. The mf_multimodel.py script is only a short, old script used to build something more complex with iterative optimisation. It should be combined with model-free model selection (like in modsel.py), and then diffusion tensor optimisation. Finally this should be repeated until the diffusion tensor stops moving.
Problems: 1s- Program does not recognize atoms HZ and HH in the pdb. Found out that probably should be using HT when looking at the internal.py - Solved
Here you have the choice of 2 PDB readers - the one that comes with Scientific python and a very basic internal one I wrote myself (as Scientific python is horrible for small organic molecules). If the internal one doesn't work, Scientific might. PDB readers are complex beasts though, as the PDB format is highly abused. I've now added 'HZ' and 'HH' to the internal reader (http://svn.gna.org/viewcvs/relax/1.3/generic_fns/structure/internal.py?rev= 10010&view=log), but this is only used to determine that they are protons. These lists are far from complete. Note that the element symbol should be in the PDB file at positions 77-78 of the line. If not, then the PDB reader has to start guessing what the element is - therein lies the problem! Note that you can specify what the isotope is using the value.set() user function. The exact element is, from memory, only used when calculating the centre of mass, so I don't think this is very important for what you are calculating. It really depends what you are doing here. HH appears only to be the hydroxyl proton in Tyr and the terminal NH2 protons in Arg. HZ is attached to CZ in Phe, the terminal NH3 protons in Lys, and protons attached to carbons in Trp. Are you measuring NH2 and NH3 relaxation? If so, which theories would you like to use to interpret the data?
2nd-Program has some issue with the CONECT lines of the pdb file. Although
I
have checked in internal.py file that the format is the one described
there
-Ended up removing all lines with CONECT in the pdb (I know it is bad but
I
was just trying to put the thing running)
The Scientific python reader, like Molmol, thinks that you don't know what you are talking about when you supply it with a molecule with CONECT records, that you must be wrong, and then tries to go and invent its own atomic connections!!! The internal reader accepts these CONECT records perfectly. An easy test is to read in the PDB file with CONECT records with the internal reader and then write it out again. They should be preserved. If not, this is a bug which can be reported at https://gna.org/bugs/?func=additem&group=relax which I can then repair.
3rd- mf_multimodel complains about seting the "fixed" parameter of the tensor settings to "True" so I changed it to False to let the tensor to be optimized - the script now runs until the end
Can you make a bug report for this? This should be allowed - and if not it is a bug.
4th- The result files are empty, that is, they don't have any information other than the one I have provided for the tensor (although I can't see
the
Euler angle values). The S2 fields are all showing "none".
This could be related to point 3 above. Did you see any optimisation when running the script? Were there any RelaxWarning messages anyway through the analysis? My guess is that you will have a warning because something was not exactly right with the script.
Any idea what the problem is? Is there another way to visualize the XML result files other than the almost raw tree format? This is not at all practical, global visualization is impossible and I cant import the
results
to an excel file. I have tried Michaels' script, final_data_extraction,
but
got stuck with an error about "spin_id".
There are a series of *.display() user functions that can be used to see individual values. E.g. value.display() and diffusion_tensor.display(). The XML version is for data storage, and not designed for being a compact representation of the data. It is human readable though, just not the most efficient way to see the data using human eyes. You can also use value.write() if you would like the individual data dumped into a file. More powerful methods exist if you know a bit of scripting - using the relax supplied spin_loop() construct but this is not necessary (if you are interested, have a look at the latex_mf_table.py script for inspiration).
Sorry for the long text, but I am really close to solve some analysis
issues
and I am getting stuck with this little annoying things! If anyone could help I would be most greatfull.
I hope my answers have helped a little. Please don't hesitate to ask if anything was unclear or if other issues arise. Cheers, Edward