Hi Sam,
Welcome to the relax mailing lists. Sorry for the late reply, I've
been quite busy for the last two months. Please see below:
On 2 July 2016 at 02:41, Mahdi, Sam <sam.mahdi.846@xxxxxxxxxxx> wrote:
I had 2 questions regarding the relax model-free analysis.
1: When uploading a pdb file for the spin system, is there a certain way to
have some residues spins ignored?
I guess you mean reading the spin system from a PDB file. You can do
this when running the structure.load_spins user function via the
spin_id parameter:
http://www.nmr-relax.com/manual/structure_load_spins.html
Or you can do this afterwards, either using the deselect.spin or
spin.delete user functions:
http://www.nmr-relax.com/manual/deselect_spin.html
http://www.nmr-relax.com/manual/spin_delete.html
i.e. give it a certain range. E.g. The
structural data for the pdb file I want uses an extra linker at the
C-terminus of my protein that is about 7 residues long. The relaxation data
I have however is for the protein without those 7 extra residues (thus
residue 7 for the pdb file is residue 1 for my relaxation data). Is there a
way I can get the relax program to ignore the first 7 residues?
If this is a model-free analysis, the residues without data will be
automatically deselected prior to optimisation (you'll see this in the
logs).
I tried
typing in the range I wanted (residue 8 to residue 133 inputed as [8-133])
in the molecule number to read option, but when I did that, it gave me this
error RelaxError: No PDB file has been loaded. When I removed the range, it
uploaded the file but with all the residues, including the linker I didn't
want.
Ah, I think you might be confusing the loading of a structural file
and the creation of NMR-active spin systems. All atoms of the
structural file will be loaded into relax, but none of these atoms
will be set a spin systems. You then have to use the
structure.load_spins user function to pick our the NH atoms pairs of
interest.
2: The relaxation data I have is for the backbone (NH), thus the values I
have for the backbone are for that bond. The pdb file I uploaded has both
of their spins. The relaxation data I have is one value for each residue
(for the NH bond). So I assumed that value is the same for both the
Nitrogen and Hydrogen spin of that residue. E.g. If residue 3 has a R1
value of 1.03, I assume the nitrogen spin and hydrogen spin both have an R1
value of 1.03.
This is not correct. The proton relaxation values will be very
different. Note that almost no one collects this data as the proton
spin cannot be considered as isolated. Therefore the normal
assumptions for a model-free analysis of an isolated two spin system
do no hold. E.g. spin diffusion is an important effect in protons.
This is also why carbon relaxation and model-free analyses are only
performed at natural abundance, to ensure that the system is isolated.
When I upload the relaxation data with the Nitrogen @N spin
id string it works fine, each residue has the proper value. However, the
value for the hydrogen is 0 for each residue. I tried to create a new data
set, this time with the spin id string for Hydrogen using the same R1 file
I had used for the nitrogen, but when I did this I was given this error:
RelaxWarning: The sequence data in the line ['Residue', 'R1', 'Error'] is
invalid, the residue number data 'Residue' is invalid.
RelaxWarning: The sequence data in the line ['0', '0'] is invalid, the
error data is missing.
RelaxWarning: The sequence data in the line ['0', '0'] is invalid, the
error data is missing.
RelaxWarning: The sequence data in the line ['0', '0'] is invalid, the
error data is missing.
RelaxWarning: The sequence data in the line ['0', '0'] is invalid, the
error data is missing.
RelaxWarning: The sequence data in the line ['0', '0'] is invalid, the
error data is missing.
Traceback (most recent call last):
File "/usr/local/Relax/relax-2.2.5/gui/wizard.py", line 163, in _apply
self.exec_status = self.on_execute()
File "/usr/local/Relax/relax-2.2.5/gui/uf_objects.py", line 867, in
on_execute
return_status = self.execute(self.name, **kargs)
File "/usr/local/Relax/relax-2.2.5/gui/uf_objects.py", line 797, in
execute
return_status = interpreter.apply(uf, *args, **kwds)
File "/usr/local/Relax/relax-2.2.5/gui/interpreter.py", line 112, in apply
apply(fn, args, kwds)
File "/usr/local/Relax/relax-2.2.5/generic_fns/relax_data.py", line 1033,
in read
pack_data(ri_id, ri_type, frq, values, errors, mol_names=mol_names,
res_nums=res_nums, res_names=res_names, spin_nums=spin_nums,
spin_names=spin_names, spin_id=spin_id)
File "/usr/local/Relax/relax-2.2.5/generic_fns/relax_data.py", line 870,
in pack_data
new_id = new_ids[0]
IndexError: list index out of range
You should simply not load any data for the proton. Then the analysis
will deselect those H spins prior to optimisation, if they haven't
already been deselected.
I don't know why it states the sequence data in the ling [0,0] is invalid
with missing error data. It is the same file I used for the nitrogen and
that worked fine. If I do not upload a hydrogen file, naturally when relax
is run, I will recieve an error stating that every single hydrogen spin has
been deselected due to the absence of data, and then it'll stop the
simulations.
That will be the warning, not error, that you should see. All protons
should be deselected.
Extra info:
this is how the script looks when I upload it with the NItrogen Id string
elax> relax_data.display(ri_id='R1_NMRFAM')
# mol_name res_num res_name spin_num spin_name
value error
hRGS7 1 GLY 1
N 0 0
hRGS7 2 SER 8
N 0 0
hRGS7 2 SER 14 H
None None
hRGS7 3 SER 19
N 0 0
hRGS7 3 SER 25 H
None None
hRGS7 4 GLY 30
N 0 0
hRGS7 4 GLY 34 H
None None
hRGS7 5 SER 37
N 1.15 0.03
hRGS7 5 SER 43 H
None None
hRGS7 6 SER 48
N 0.832 0.011
hRGS7 6 SER 54 H
None None
hRGS7 7 GLY 59
N 1.07 0.05
hRGS7 7 GLY 63 H
None None
hRGS7 8 SER 66
N 0.78 0.17
hRGS7 8 SER 72 H
None None
hRGS7 9 GLN 77
N 0 0
hRGS7 9 GLN 86 H
None None
hRGS7 10 GLN 94
N 0 0
hRGS7 10 GLN 103 H
None None
hRGS7 11 ARG 111
N 0 0
hRGS7 11 ARG 122 H
None None
hRGS7 12 VAL 135
N 1.26 0.03
hRGS7 12 VAL 142 H
None None
hRGS7 13 LYS 151
N 0.899 0.023
hRGS7 13 LYS 160 H
None None
hRGS7 14 ARG 173
N 0.854 0.009
hRGS7 14 ARG 184 H
None None
hRGS7 15 TRP 197
N 0.99 0.04
hRGS7 15 TRP 211 H
None None
hRGS7 16 GLY 221
N 0 0
hRGS7 16 GLY 225 H
None None
hRGS7 17 PHE 228
N 0.894 0.016
hRGS7 17 PHE 239 H
None None
hRGS7 18 GLY 248
N 0.874 0.014
hRGS7 18 GLY 252 H
None None
hRGS7 19 MET 255
N 0 0
hRGS7 19 MET 263 H
None None
hRGS7 20 ASP 272
N 0 0
hRGS7 20 ASP 280 H
None None
hRGS7 21 GLU 284
N 0 0
hRGS7 21 GLU 293 H
None None
hRGS7 22 ALA 299
N 0.939 0.022
As you can see, the hydrogen values it states none, while giving the
relaxation value to the nitrogen.
You should simply not set the proton relaxation data, and allow relax
to produce RelaxWarnings when the protons are deselected. You simply
need the proton information to set up the correct relaxation mechanism
for the nitrogen, and to indicate that this is an isolated two spin
system. I hope this helps.
Regards,
Edward