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