Hi Edward,
On 2012-09-24, at 4:39 AM, Edward d'Auvergne <[email protected]> wrote:
> 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_______________________________________________
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