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. 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 N ATOM 219 CA ALA A 12 60.782 8.450 -3.609 1.00 23.92 C ATOM 220 C ALA A 12 59.679 8.730 -4.644 1.00 26.53 C ATOM 221 O ALA A 12 59.538 9.863 -5.118 1.00 29.62 O ATOM 222 CB ALA A 12 62.036 7.946 -4.315 1.00 21.80 C ATOM 223 HN ALA A 12 60.890 6.559 -2.506 1.00 24.77 H ATOM 224 HA ALA A 12 61.028 9.391 -3.117 1.00 24.77 H ATOM 225 HB1 ALA A 12 62.333 8.660 -5.083 1.00 24.77 H ATOM 226 HB2 ALA A 12 61.830 6.981 -4.778 1.00 24.77 H ATOM 227 HB3 ALA A 12 62.842 7.836 -3.590 1.00 24.77 H ATOM 228 N ILE A 13 58.905 7.700 -4.992 1.00 24.89 N ATOM 229 CA ILE A 13 57.828 7.828 -5.974 1.00 23.44 C ATOM 230 C ILE A 13 56.720 8.726 -5.440 1.00 24.86 C ATOM 231 O ILE A 13 56.141 9.531 -6.168 1.00 24.35 O ATOM 232 CB ILE A 13 57.215 6.446 -6.312 1.00 24.88 C ATOM 233 CG1 ILE A 13 58.227 5.622 -7.111 1.00 23.45 C ATOM 234 CG2 ILE A 13 55.879 6.617 -7.082 1.00 21.87 C ATOM 235 CD1 ILE A 13 57.826 4.174 -7.293 1.00 21.24 C ATOM 236 HN ILE A 13 59.078 6.747 -4.537 1.00 23.62 H ATOM 237 HA ILE A 13 58.231 8.268 -6.886 1.00 23.62 H ATOM 238 HB ILE A 13 57.008 5.924 -5.378 1.00 23.62 H ATOM 239 1HG1 ILE A 13 58.337 6.075 -8.096 1.00 23.62 H ATOM 240 2HG1 ILE A 13 59.183 5.651 -6.588 1.00 23.62 H ATOM 241 1HG2 ILE A 13 55.463 5.636 -7.311 1.00 23.62 H ATOM 242 2HG2 ILE A 13 56.061 7.160 -8.010 1.00 23.62 H ATOM 243 3HG2 ILE A 13 55.174 7.176 -6.467 1.00 23.62 H ATOM 244 1HD1 ILE A 13 58.592 3.654 -7.869 1.00 23.62 H ATOM 245 2HD1 ILE A 13 56.876 4.124 -7.825 1.00 23.62 H ATOM 246 3HD1 ILE A 13 57.721 3.700 -6.317 1.00 23.62 H ATOM 247 N GLN A 14 56.428 8.569 -4.157 1.00 24.19 N ATOM 248 CA GLN A 14 55.399 9.349 -3.516 1.00 21.91 C ATOM 249 C GLN A 14 55.845 10.746 -3.092 1.00 22.76 C ATOM 250 O GLN A 14 55.075 11.695 -3.224 1.00 28.19 O ATOM 251 CB GLN A 14 54.912 8.622 -2.271 1.00 19.03 C ATOM 252 CG GLN A 14 53.994 7.497 -2.515 1.00 16.99 C ATOM 253 CD GLN A 14 53.287 7.105 -1.245 1.00 24.97 C ATOM 254 OE1 GLN A 14 52.085 7.331 -1.079 1.00 26.96 O ATOM 255 NE2 GLN A 14 54.035 6.523 -0.327 1.00 24.01 N ATOM 256 HN GLN A 14 56.969 7.846 -3.583 1.00 23.22 H ATOM 257 HA GLN A 14 54.562 9.449 -4.207 1.00 23.22 H ATOM 258 HB1 GLN A 14 55.785 8.236 -1.744 1.00 23.22 H ATOM 259 HB2 GLN A 14 54.397 9.345 -1.639 1.00 23.22 H ATOM 260 HG1 GLN A 14 53.255 7.793 -3.260 1.00 23.22 H ATOM 261 HG2 GLN A 14 54.563 6.644 -2.886 1.00 23.22 H ATOM 262 1HE2 GLN A 14 55.076 6.357 -0.511 1.00 23.22 H ATOM 263 2HE2 GLN A 14 53.601 6.217 0.602 1.00 23.22 H ... 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. I also tried replacing all 'HN' by 'H' in the PDB but I get the following error: --------------------------------------------------------------------------- # Create the data pipe.pipe_bundle = "mf (%s)" % asctime(localtime()) name = "origin - " + pipe_bundle pipe.create(name, 'mf', bundle=pipe_bundle) # Load the PDB file. structure.read_pdb('test.pdb') # Set up the 15N and 1H spins. structure.load_spins('@N', ave_pos=True) structure.load_spins('@H', ave_pos=True) spin.isotope('15N', spin_id='@N') spin.isotope('1H', spin_id='@H') # Set up the 15N spins (alternative to the structure-based approach). # sequence.read(file='NOE_800.out', dir=None, mol_name_col=None, res_num_col=2, res_name_col=3, spin_num_col=None, spin_name_col=None) # spin.name('N') # spin.element(element='N', spin_id='@N') # spin.isotope('15N', spin_id='@N') # Generate the 1H spins for the magnetic dipole-dipole relaxation interaction (alternative to the structure-based approach). # sequence.attach_protons() # Load the relaxation data. relax_data.read(ri_id='R1_500', ri_type='R1', frq=499.719*1e6, file='R1_500.out', mol_name_col=None, res_num_col=2, res_name_col=None, spin_num_col=None, spin_name_col=5, data_col=6, error_col=7) relax_data.read(ri_id='R2_500', ri_type='R2', frq=499.719*1e6, file='R2_500.out', mol_name_col=None, res_num_col=2, res_name_col=None, spin_num_col=None, spin_name_col=5, data_col=6, error_col=7) relax_data.read(ri_id='NOE_500', ri_type='NOE', frq=499.719*1e6, file='NOE_500.out', mol_name_col=None, res_num_col=2, res_name_col=None, spin_num_col=None, spin_name_col=5, data_col=6, error_col=7) relax_data.read(ri_id='R1_800', ri_type='R1', frq=799.733*1e6, file='R1_800.out', mol_name_col=None, res_num_col=2, res_name_col=None, spin_num_col=None, spin_name_col=5, data_col=6, error_col=7) relax_data.read(ri_id='R2_800', ri_type='R2', frq=799.733*1e6, file='R1_800.out', mol_name_col=None, res_num_col=2, res_name_col=None, spin_num_col=None, spin_name_col=5, data_col=6, error_col=7) relax_data.read(ri_id='NOE_800', ri_type='NOE', frq=799.733*1e6, file='NOE_800.out', mol_name_col=None, res_num_col=2, res_name_col=None, spin_num_col=None, spin_name_col=5, data_col=6, error_col=7) # Deselect spins to be excluded (including unresolved and specifically excluded spins). deselect.read(file='unresolved', dir=None, spin_id_col=None, mol_name_col=None, res_num_col=1, res_name_col=None, spin_num_col=None, spin_name_col=None, sep=None, spin_id=None, boolean='AND', change_all=False) deselect.read(file='exclude', spin_id_col=1) # Define the magnetic dipole-dipole relaxation interaction. dipole_pair.define(spin_id1='@N', spin_id2='@H', direct_bond=True) dipole_pair.set_dist(spin_id1='@N', spin_id2='@H', ave_dist=1.04 * 1e-10) dipole_pair.unit_vectors() # Define the chemical shift relaxation interaction. value.set(-162 * 1e-6, 'csa', spin_id='@N') # Execution. ############ # Do not change! dAuvergne_protocol(pipe_name=name, pipe_bundle=pipe_bundle, 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) ---------------------------------------------------------------------------------------------------- relax> pipe.create(pipe_name='origin - mf (Mon Sep 24 16:01:51 2012)', pipe_type='mf', bundle='mf (Mon Sep 24 16:01:51 2012)') 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 --------------------------------------------------------------------------- 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? Nick |