Hi Nick, I'll respond below:
>> Do you know why only 2 iterations for each diffusion tensor was completed? > > > I was kind of hoping you could suggest a few possibilities for such an > issue. I'm having a hard time figuring out why. This may or may not be a problem. It could be that the structure is so well defined (well the NH backbone vector orientations at least) and the combined dynamic parameter and model spaces are simple enought that the algorithm converges incredibly quickly. relax is designed to produce an huge quantity of messages for the sole purpose of being able to understand what is happening. Instead of being a blackbox like the other model-free programs, you can carefully go through the relax logs and see exactly what has happened at each step - relax hides nothing from you. To understand, It is good to know the protocol that is being used. My 2007 and 2008b papers, PhD thesis on Amazon or a free PDF at http://www.nmr-relax.com/refs.html#dAuvergne06, and/or the model-free chapter of the relax user manual (specifically the current figure 8.3) are all useful for understanding what is happening. Then after carefully checking the logs can you be certain of your result. You can also look at the results from each of the diffusion models. The final results for each are preserved at the end of the model-free analysis. You just have to use the data pipe editor window to switch to the different data pipes for each diffusion model and then use the 'User function' menu system to visualise and output the results. Another validation would be to run your data through the consistency testing analysis added to relax by Sebastien Morin. See that chapter of the user manual for more details (http://www.nmr-relax.com/manual/Consistency_testing.html). This will tell you if you have inconsistencies in your R2 data. > To rule out a possible PDB problem, I wanted to try the same calculations > with another PDB. The first PDB we used is an NMR structure of the protein, > which includes the HN protons (all labeled H). It got loaded appropriately > by relax. However, whenever I try a crystal structure PDB to which protons > are added (e.g. with PyMOL or DSVisualizer), relax spits out errors. > > Example: > > I added protons to a crystal structure PDB and the file looks something like > this: > > ... > ATOM 218 N ALA A 12 60.379 7.496 -2.579 1.00 21.96 [snip] > ATOM 223 HN ALA A 12 60.890 6.559 -2.506 1.00 24.77 [snip] > ... > > Evidently, relax doesn't recognize 'HN' as the proton spin. I tried changing > the spin_id='@HN' in the dauvergne script but it doesn't work. In relax, nothing is assumed! You can call your proton spins 'Puff_the_magic_dragon' and relax will accept that (whitespace and the characters '#', '@', and ':" are the only problems). Then again, the PDB format itself might constrain you a bit so if you are using a PDB file, you will have to shorten it to 'PUFF' or 'PTMD'. In reality, relax has no special atom naming translation tables (maybe in the future this could be added if it doesn't break things for the RNA/DNA, sugar, and organic molecule people). So when using a PDB file, you are constrained by the convention used in that file. You do have one option though, you can load all the 'HN' spins and then rename them with the commands: structure.load_spins('@HN') spin.name(name='Puff_the_magic_dragon', spin_id='@HN', force=True) Then you should be able to subsequently set up your 'Puff_the_magic_dragon' protons as the source of your dipole-dipole relaxation. > I also tried > replacing all 'HN' by 'H' in the PDB but I get the following error: [snip] > relax> structure.read_pdb(file='test.pdb', dir=None, read_mol=None, > set_mol_name=None, read_model=None, set_model_num=None, parser='internal') > > Internal relax PDB parser. > Opening the file 'test.pdb' for reading. > Traceback (most recent call last): > File "/usr/local/relax-2.1.0/multi/processor.py", line 479, in run > self.callback.init_master(self) > File "/usr/local/relax-2.1.0/multi/__init__.py", line 318, in > default_init_master > self.master.run() > File "/usr/local/relax-2.1.0/relax.py", line 182, in run > self.interpreter.run(self.script_file) > File "/usr/local/relax-2.1.0/prompt/interpreter.py", line 279, 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 "/usr/local/relax-2.1.0/prompt/interpreter.py", line 569, in > run_script > return console.interact(intro, local, script_file, quit, > show_script=show_script, raise_relax_error=raise_relax_error) > File "/usr/local/relax-2.1.0/prompt/interpreter.py", line 454, in > interact_script > exec_script(script_file, local) > File "/usr/local/relax-2.1.0/prompt/interpreter.py", line 328, 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/dgagne/nmrdata5/DG12-116_15SEP2012_ModelFree_Analysis_of_ECP_Free_Form/dauvergne_protocol/dauvergne_protocol.py", > line 184, in <module> > structure.read_pdb('test.pdb') > File "/usr/local/relax-2.1.0/prompt/uf_objects.py", line 219, in __call__ > self._backend(*new_args, **uf_kargs) > File "/usr/local/relax-2.1.0/generic_fns/structure/main.py", line 505, in > read_pdb > cdp.structure.load_pdb(file_path, read_mol=read_mol, > set_mol_name=set_mol_name, read_model=read_model, > set_model_num=set_model_num, verbosity=verbosity) > File "/usr/local/relax-2.1.0/generic_fns/structure/internal.py", line > 1090, in load_pdb > mol.fill_object_from_pdb(mol_records) > File "/usr/local/relax-2.1.0/generic_fns/structure/internal.py", line > 2096, in fill_object_from_pdb > record = self._parse_pdb_record(record) > File "/usr/local/relax-2.1.0/generic_fns/structure/internal.py", line > 1932, in _parse_pdb_record > fields[11] = float(fields[11]) > ValueError: invalid literal for float(): 1.00 5 > --------------------------------------------------------------------------- This it the classic message from the relax internal PDB reader for a corrupted PDB file. I should one day modify the parser to catch character shifts in the PDB file, as this is a commonly encountered problem. The issue is that in the PDB, the columns are defined by absolute character position (http://www.nmr-relax.com/api/generic_fns.structure.internal.MolContainer-class.html#_parse_pdb_record). You would need to replace 'HN' with ' N' rather than 'N'. Note the single space in front of the 'N' here, this is needed to preserve the rigid position based column definitions. > I tried several different PDBs of the protein and I always run into similar > 'PDB parser' errors. How do you typically prepare your PDBs to make sure > they are properly loaded by relax? For this you can use the PDB validation server at http://deposit.rcsb.org/validate/. If it passes there, then relax will be able to handle it. The more difficult part will be then to match your PDB spins to that in your other data files loaded into relax, but for protons which are only used in the definition of the magnetic dipole-dipole interaction, this should be no issue. Regards, Edward _______________________________________________ relax (http://www.nmr-relax.com) This is the relax-users 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-users

