Re: Troubleshooting model-free analysis

2016-08-08 Thread Edward d'Auvergne
On 8 August 2016 at 21:04, Mahdi, Sam  wrote:
> Hi, I had some general questions regarding model-free analysis that came up
> as I was running it. About 2 months ago, I ran model-free on a 126 residue
> protein. The pdb file I used for the protein had an extra 7 residue
> modifier at one of the terminals, which made it 133 residues; thus, my data
> did not match the pdf file. That run took a little over a week, with the
> sphere model running about 2 models, along with every other model being
> about 2. The data for this run I obtained was unusable (values as small as
> 5x10^-30 for S^2). I attributed this to the fact that my pdf files sequence
> did not align with my data.

Do you mean that the residue numbers were out by 7?  I have considered
this, but relax currently has no way of renumbering the residues in a
3D structure or renumbering the residues of the input data.  So
unfortunately you'll either have to use a molecular view to change
your PDF file, or a script or spreadsheet to renumber your input data.

> I adjusted my relax data (simply added 7 residues with no values), and ran
> it again (all settings the same as before, everything automatic).

I don't think that your data will match up to the correct residues.
The residue numbers in the PDB file and the input relaxation data must
be exact matches.

> This time
> it has taken almost a month, with the sphere model on its 20th run. I saw
> in a previous email that the max is 30 iterations. Is it normal to hit the
> max? Does this mean my data is bad if it requires the max 30 iterations?
> Also, why is it running up to 20 now? The 7 residues I added didn't have
> data, so it doesn't run models for them. I assumed there would be a
> difference in time since the data is now attributed to different spins, but
> not this much of a difference.

If the 3D info and input data do not match, then the results for
non-isotropic (ellipsoidal and spheroidal diffusion) will make no
sense.  In relax you should never need to add relaxation data for
these 7 residues, as relax will handle this situation automatically.
What does your input relaxation data look like?



relax (

This is the relax-users mailing list

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at

Re: Troubleshooting model-free analysis

2016-08-08 Thread Edward d'Auvergne
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  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:

Or you can do this afterwards, either using the deselect.spin or
spin.delete user functions:

> 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

> 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

> 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/", line 163, in _apply
> self.exec_status = self.on_execute()
>   File "/usr/local/Relax/relax-2.2.5/gui/", line 867, in
> on_execute
> return_status = self.execute(, **kargs)
>   File "/usr/local/Relax/relax-2.2.5/gui/", line 797, in
> execute
> return_status = interpreter.apply(uf, *args, **kwds)
>   File "/usr/local/Relax/relax-2.2.5/gui/", line 112, in apply
> apply(fn, args, kwds)
>   File "/usr/local/Relax/relax-2.2.5/generic_fns/", 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/", 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