Hello Nicolas,
Just to let you know as well, for the error analysis, if you have
duplicated spectra, you set them as duplicated, like you have done, but if
they are not, you need to get the RMSD noise value from Sparky (using
command 'rm'), and then put the value into the script as well, see below.
However, I think your problem is coming with the load of the peak lists
or the pdb structure. I've done a couple of things differently, I've used
a sequence file to load the spins (which keeps things really simple - it
means that you can change it to match the residues you're actually looking
at where a pdb file might be missing some) and used 'i' to load spectra,
rather than writing them all out (less likely to make a mistake that way).
Feel free to ask me if you'd like to see my input files, but bear in mind
I use CCPN Analysis to peak pick, so they will look slightly different
(but still work). My python script is straight from the sample scripts
with minimal changes.
Input files:
Peak lists -
Assignment w1 w2 Intensity
W42N-HN 131.717 9.666 2.24E+07
I79N-HN 125.940 7.871 4.57E+07
Sequence file for spins -
Res_num Res_name Spin_name
1 Trp N
2 Trp N
The text files might give you a better idea of the formatting (spaces vs
tabs) so let me know if you would like to look at them.
It's worth getting it to run on Relax, because then doing model-free
calculations is fairly straightforwards (as long as you have data at more
than one field!).
Bonne chance!
Madeleine Strickland
# Script for relaxation curve fitting.
######################################
# Create the 'rx' data pipe.
pipe.create('rx', 'relax_fit')
# Load sequence and spins
sequence.read('sequence.out', spin_name_col=2)
# Spectrum names.
names = [
'T1_0111',
'T1b_0111',
'T1_0333',
'T1b_0333',
'T1_0555',
'T1b_0555',
'T1_111',
'T1b_111',
'T1_1998',
'T1b_1998',
'T1_333',
'T1b_333',
'T1_4995',
'T1b_4995',
'T1_666',
'T1b_666',
'T1b_8325',
'T1_888',
'T1b_999'
]
# Relaxation times (in seconds).
times = [
0.0111,
0.0111,
0.0333,
0.0333,
0.0555,
0.0555,
0.111,
0.111,
0.1998,
0.1998,
0.333,
0.333,
0.4995,
0.4995,
0.666,
0.666,
0.8325,
0.888,
0.999
]
# Loop over the spectra.
for i in xrange(len(names)):
# Load the peak intensities.
spectrum.read_intensities(file=names[i]+'.list', spectrum_id=names[i],
int_method='height')
# Set the relaxation times.
relax_fit.relax_time(time=times[i], spectrum_id=names[i])
# Specify the duplicated spectra.
spectrum.replicated(spectrum_ids=['T1_0111', 'T1b_0111'])
spectrum.replicated(spectrum_ids=['T1_0333', 'T1b_0333'])
spectrum.replicated(spectrum_ids=['T1_0555', 'T1b_0555'])
spectrum.replicated(spectrum_ids=['T1_111', 'T1b_111'])
spectrum.replicated(spectrum_ids=['T1_1998', 'T1b_1998'])
spectrum.replicated(spectrum_ids=['T1_333', 'T1b_333'])
spectrum.replicated(spectrum_ids=['T1_4995', 'T1b_4995'])
spectrum.replicated(spectrum_ids=['T1_666', 'T1b_666'])
# Set the baseplane error
spectrum.baseplane_rmsd(error=383910, spectrum_id='T1b_8325')
spectrum.baseplane_rmsd(error=164550, spectrum_id='T1_888')
spectrum.baseplane_rmsd(error=314800, spectrum_id='T1b_999')
# Peak intensity error analysis.
spectrum.error_analysis()
# Deselect unresolved spins.
deselect.read(file='unresolved')
# Set the relaxation curve type.
relax_fit.select_model('exp')
# Grid search.
grid_search(inc=11)
# Minimise.
minimise('simplex', scaling=False, constraints=False)
# Monte Carlo simulations.
monte_carlo.setup(number=500)
monte_carlo.create_data()
monte_carlo.initial_values()
minimise('simplex', scaling=False, constraints=False)
monte_carlo.error_analysis()
# Save the relaxation rates.
value.write(param='rx', file='rx.out', force=True)
# Save the results.
results.write(file='results', force=True)
# Create Grace plots of the data.
grace.write(y_data_type='rx', file='rx.agr', force=True) # Relaxation
rate.
# Display the Grace plots.
grace.view(file='rx.agr')
# Save the program state.
state.save('rx.save', force=True)
---------------------------- Original Message ----------------------------
Subject: relax-users Digest, Vol 74, Issue 3
From: relax-users-request@xxxxxxx
Date: Mon, September 3, 2012 8:32 pm
To: relax-users@xxxxxxx
--------------------------------------------------------------------------
Send relax-users mailing list submissions to
relax-users@xxxxxxx
To subscribe or unsubscribe via the World Wide Web, visit
https://mail.gna.org/listinfo/relax-users
or, via email, send a message with subject or body 'help' to
relax-users-request@xxxxxxx
You can reach the person managing the list at
relax-users-owner@xxxxxxx
When replying, please edit your Subject line so it is more specific
than "Re: Contents of relax-users digest..."
Today's Topics:
1. Re: R1, R2 and/or NOE Analysis with relax (Edward d'Auvergne)
2. Re: R1, R2 and/or NOE Analysis with relax (Edward d'Auvergne)
----------------------------------------------------------------------
Message: 1
Date: Mon, 3 Sep 2012 21:17:08 +0200
From: "Edward d'Auvergne" <edward@xxxxxxxxxxxxx>
To: Nicolas Doucet <nicolas.doucet@xxxxxxxxxxx>
Cc: relax-users@xxxxxxx
Subject: Re: R1, R2 and/or NOE Analysis with relax
Message-ID:
<CAED9pY_qWDp_t_Stbk=DNK+W6Brb+3b7tXQqLmNR23jPhH9FTQ@xxxxxxxxxxxxxx>
Content-Type: text/plain; charset=UTF-8
Hi Nick,
Have a look in the directory 'test_suite/shared_data/peak_lists'.
There you'll find a number of examples. I would recommend the NOE
analysis files 'ref_ave.list' and 'sat_ave.list', as well as the
'*.list' files in the 'bug_19887' subdirectory. These are all Sparky
peak lists which conform to the PDB nomenclature. The format is
essentially as follows:
- First 3 letters are the standard PDB amino-acid residue codes
(capitalised).
- The next x numbers are the residue numbers. This and the above are
the Sparky 'Group'.
- The next characters are the standard PDB atom names for w1 (capitalised).
- Then there is a dash (-).
- The last characters are the standard PDB atom names for w2 (capitalised).
Unfortunately Sparky does not enforce an assignment naming system,
which then makes it very difficult to properly read Sparky peak lists.
The Sparky 'Group' concept is a bit of a nasty kludge! You should
not remove any header lines or empty lines from the peak list files as
these are essential for relax to determine the file format. That is
why you are seeing "Generic formatted data file" from the
spectrum.read_intensities user function - this is because the headers
were removed. If you have the format above, then it should not be a
problem reading in the Sparky lists. I hope this helps.
Regards
Edward
P. S. Here is one of the example files for reference:
$ cat test_suite/shared_data/peak_lists/bug_19887/T1_304.040.list
Assignment w1 w2 Data Height
GLU24N-HN 123.067 7.811 1095970
LYS28N-HN 116.691 7.960 1466770
GLN29N-HN 119.487 7.990 1411100
$
On 3 September 2012 19:36, Nicolas Doucet <nicolas.doucet@xxxxxxxxxxx>
wrote:
Edward,
Thanks for your response. We're progressing slowly and, as you can see from
our last email, we stumbled upon pretty obvious answers...
That being said, we still run into many error messages. Mainly, we're
struggling with the 'spectrum.read_intensities' section and I believe it's
merely a question of file format, column identification and/or character
recognition.
Anyway, so far we've tried many edits to our lists:
1) We separated residue names into different columns. Example: ARG1N-HN
became ARG 1 N-HN because residue names weren't recognized.
2) We got rid of column titles, which yielded an error.
3) We also got rid of the 'none' qualifier in the lists and replaced
them by
zeros. However, as per your last email, we might just get rid of those
residues altogether.
4) We added columns for the molecule name and the spin id, but those didn't
change anything.
As you will see from the commented lines in our script below, we also tried
working on the spectrum.read_intensities section but we can't figure out
what's wrong. We tried a bunch of combinations and keep getting errors.
We also got an error from the "set relaxation time" section. The following
yielded a "spectrum_id already exists" message:
# Set the relaxation times.
relax_fit.relax_time(time=0.0100, spectrum_id='1')
relax_fit.relax_time(time=0.1000, spectrum_id='2')
relax_fit.relax_time(time=0.1000, spectrum_id='3')
relax_fit.relax_time(time=0.7000, spectrum_id='4')
relax_fit.relax_time(time=1.1000, spectrum_id='5')
relax_fit.relax_time(time=1.4000, spectrum_id='6')
Replacing the spectrum_id number yielded an error message saying it can't
find spectrum_ids... Well, duh!
Anyway, as you can see, those are details beginners don't know how to
handle
in relax. It would be SOOO much easier if we could just compare our own
files with a known "default example" run for R1, R2, NOE and subsequently
ModelFree. For us, it would then just be a matter of comparing our file
edits with known file formats for scripts, lists and pdbs of a "standard"
run.
The manual is very thorough, but sometimes a bit overwhelming. Learning by
comparing our files with those of a real example that we can run flawlessly
is often much easier.
Nick
"""Script for relaxation curve fitting."""
# Create the 'rx' data pipe.
pipe.create('rx', 'relax_fit')
# Load the backbone amide 15N spins from a PDB file.
structure.read_pdb('1QMT.pdb')
structure.load_spins('#1QMT_mol1@N')
# Spectrum names.
names = [
'T1_0.01s_800',
'T1_0.10s_800',
'T1_0.10s-dup_800'
'T1_0.70s_800',
'T1_1.10s_800',
'T1_1.40s_800'
]
# Relaxation times (in seconds).
times = [
0.0100,
0.1000,
0.1000,
0.7000,
1.1000,
1.4000
]
# Loop over the spectra.
for i in xrange(len(names)):
# Load the peak intensities.
# spectrum.read_intensities(file='T1_0.01s_800.list', dir=None,
spectrum_id='1', int_col=6)
# spectrum.read_intensities(file='T1_0.10s_800.list', dir=None,
spectrum_id='2', int_col=6)
# spectrum.read_intensities(file='T1_0.10s-dup_800.list', dir=None,
spectrum_id='3', int_col=6)
# spectrum.read_intensities(file='T1_0.70s_800.list', dir=None,
spectrum_id='4', int_col=6)
# spectrum.read_intensities(file='T1_1.10s_800.list', dir=None,
spectrum_id='5', int_col=6)
# spectrum.read_intensities(file='T1_1.40s_800.list', dir=None,
spectrum_id='6', int_col=6)
# spectrum.read_intensities(file='T1_0.01s_800.list', spectrum_id='1',
int_method='height')
# spectrum.read_intensities(file='T1_0.10s_800.list', spectrum_id='2',
int_method='height')
# spectrum.read_intensities(file='T1_0.10s-dup_800.list',
spectrum_id='3', int_method='height')
# spectrum.read_intensities(file='T1_0.70s_800.list', spectrum_id='4',
int_method='height')
# spectrum.read_intensities(file='T1_1.10s_800.list', spectrum_id='5',
int_method='height')
# spectrum.read_intensities(file='T1_1.40s_800.list', spectrum_id='6',
int_method='height')
# spectrum.read_intensities(file='T1_0.01s_800', spectrum_id='1',
relax_time=0.0100, int_col=6)
# spectrum.read_intensities(file='T1_0.10s_800', spectrum_id='2',
relax_time=0.1000, int_col=6)
# spectrum.read_intensities(file='T1_0.10s-dup_800', spectrum_id='3',
relax_time=0.1000, int_col=6)
# spectrum.read_intensities(file='T1_0.70s_800', spectrum_id='4',
relax_time=0.7000, int_col=6)
# spectrum.read_intensities(file='T1_1.10s_800', spectrum_id='5',
relax_time=1.1000, int_col=6)
# spectrum.read_intensities(file='T1_1.40s_800', spectrum_id='6',
relax_time=1.4000, int_col=6)
spectrum.read_intensities(file='T1_0.01s_800.list', dir=None,
spectrum_id='1', heteronuc='N', proton='HN', int_method='height',
int_col=6,
spin_id_col=None, mol_name_col=None, res_num_col=2, res_name_col=1,
spin_num_col=None, spin_name_col=None, sep=None, spin_id=None, ncproc=None)
spectrum.read_intensities(file='T1_0.10s_800.list', dir=None,
spectrum_id='2', heteronuc='N', proton='HN', int_method='height',
int_col=6,
spin_id_col=None, mol_name_col=None, res_num_col=2, res_name_col=1,
spin_num_col=None, spin_name_col=None, sep=None, spin_id=None, ncproc=None)
spectrum.read_intensities(file='T1_0.10s-dup_800.list', dir=None,
spectrum_id='3', heteronuc='N', proton='HN', int_method='height',
int_col=6,
spin_id_col=None, mol_name_col=None, res_num_col=2, res_name_col=1,
spin_num_col=None, spin_name_col=None, sep=None, spin_id=None, ncproc=None)
spectrum.read_intensities(file='T1_0.70s_800.list', dir=None,
spectrum_id='4', heteronuc='N', proton='HN', int_method='height',
int_col=6,
spin_id_col=None, mol_name_col=None, res_num_col=2, res_name_col=1,
spin_num_col=None, spin_name_col=None, sep=None, spin_id=None, ncproc=None)
spectrum.read_intensities(file='T1_1.10s_800.list', dir=None,
spectrum_id='5', heteronuc='N', proton='HN', int_method='height',
int_col=6,
spin_id_col=None, mol_name_col=None, res_num_col=2, res_name_col=1,
spin_num_col=None, spin_name_col=None, sep=None, spin_id=None, ncproc=None)
spectrum.read_intensities(file='T1_1.40s_800.list', dir=None,
spectrum_id='6', heteronuc='N', proton='HN', int_method='height',
int_col=6,
spin_id_col=None, mol_name_col=None, res_num_col=2, res_name_col=1,
spin_num_col=None, spin_name_col=None, sep=None, spin_id=None, ncproc=None)
# Set the relaxation times.
relax_fit.relax_time(time=0.0100, spectrum_id='11')
relax_fit.relax_time(time=0.1000, spectrum_id='12')
relax_fit.relax_time(time=0.1000, spectrum_id='13')
relax_fit.relax_time(time=0.7000, spectrum_id='14')
relax_fit.relax_time(time=1.1000, spectrum_id='15')
relax_fit.relax_time(time=1.4000, spectrum_id='16')
# Specify the duplicated spectra.
spectrum.replicated(spectrum_ids=['T1_0.10s_800.list',
'T1_0.10s-dup_800.list'])
# Peak intensity error analysis.
spectrum.error_analysis(700)
# Deselect unresolved spins.
deselect.read(file='unresolved', mol_name_col=1, res_num_col=2,
res_name_col=3, spin_num_col=4, spin_name_col=5)
# Set the relaxation curve type.
relax_fit.select_model('exp')
# Grid search.
grid_search(inc=11)
# Minimise.
minimise('simplex', scaling=False, constraints=False)
# Monte Carlo simulations.
monte_carlo.setup(number=500)
monte_carlo.create_data()
monte_carlo.initial_values()
minimise('simplex', scaling=False, constraints=False)
monte_carlo.error_analysis()
# Save the relaxation rates.
value.write(param='rx', file='rx.out', force=True)
# Save the results.
results.write(file='results', force=True)
# Create Grace plots of the data.
grace.write(y_data_type='chi2', file='chi2.agr', force=True) # Minimised
chi-squared value.
grace.write(y_data_type='i0', file='i0.agr', force=True) # Initial peak
intensity.
grace.write(y_data_type='rx', file='rx.agr', force=True) # Relaxation
rate.
grace.write(x_data_type='relax_times', y_data_type='intensities',
file='intensities.agr', force=True) # Average peak intensities.
grace.write(x_data_type='relax_times', y_data_type='intensities',
norm=True,
file='intensities_norm.agr', force=True) # Average peak intensities
(normalised).
# Display the Grace plots.
grace.view(file='chi2.agr')
grace.view(file='i0.agr')
grace.view(file='rx.agr')
grace.view(file='intensities.agr')
grace.view(file='intensities_norm.agr')
# Save the program state.
state.save('rx.save', force=True)
----------------------------------------------------------------------------------------------------
relax> pipe.create(pipe_name='rx', pipe_type='relax_fit', bundle=None)
relax> structure.read_pdb(file='1QMT.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 '1QMT.pdb' for reading.
Adding molecule '1QMT_mol1' to model None (from the original molecule
number
1 of model None)
relax> structure.load_spins(spin_id='#1QMT_mol1@N', ave_pos=True)
Adding the following spins to the relax data store.
# mol_name res_num res_name spin_num spin_name
1QMT_mol1 0 MET 1 N
1QMT_mol1 1 ARG 9 N
1QMT_mol1 2 PRO 20 N
1QMT_mol1 3 PRO 27 N
1QMT_mol1 4 GLN 34 N
1QMT_mol1 5 PHE 43 N
1QMT_mol1 6 THR 54 N
1QMT_mol1 7 ARG 61 N
1QMT_mol1 8 ALA 72 N
1QMT_mol1 9 GLN 77 N
1QMT_mol1 10 TRP 86 N
1QMT_mol1 11 PHE 100 N
1QMT_mol1 12 ALA 111 N
1QMT_mol1 13 ILE 116 N
1QMT_mol1 14 GLN 124 N
1QMT_mol1 15 HIS 133 N
1QMT_mol1 16 ILE 143 N
1QMT_mol1 17 SER 151 N
1QMT_mol1 18 LEU 157 N
1QMT_mol1 19 ASN 165 N
1QMT_mol1 20 PRO 173 N
1QMT_mol1 21 PRO 180 N
1QMT_mol1 22 ARG 187 N
1QMT_mol1 23 CYS 198 N
1QMT_mol1 24 THR 204 N
1QMT_mol1 25 ILE 211 N
1QMT_mol1 26 ALA 219 N
1QMT_mol1 27 MET 224 N
1QMT_mol1 28 ARG 232 N
1QMT_mol1 29 ALA 243 N
1QMT_mol1 30 ILE 248 N
1QMT_mol1 31 ASN 256 N
1QMT_mol1 32 ASN 264 N
1QMT_mol1 33 TYR 272 N
1QMT_mol1 34 ARG 284 N
1QMT_mol1 35 TRP 295 N
1QMT_mol1 36 ARG 309 N
1QMT_mol1 37 CYS 320 N
1QMT_mol1 38 LYS 326 N
1QMT_mol1 39 ASN 335 N
1QMT_mol1 40 GLN 343 N
1QMT_mol1 41 ASN 352 N
1QMT_mol1 42 THR 360 N
1QMT_mol1 43 PHE 367 N
1QMT_mol1 44 LEU 378 N
1QMT_mol1 45 ARG 386 N
1QMT_mol1 46 THR 397 N
1QMT_mol1 47 THR 404 N
1QMT_mol1 48 PHE 411 N
1QMT_mol1 49 ALA 422 N
1QMT_mol1 50 ASN 427 N
1QMT_mol1 51 VAL 435 N
1QMT_mol1 52 VAL 442 N
1QMT_mol1 53 ASN 449 N
1QMT_mol1 54 VAL 457 N
1QMT_mol1 55 CYS 464 N
1QMT_mol1 56 GLY 470 N
1QMT_mol1 57 ASN 474 N
1QMT_mol1 58 GLN 482 N
1QMT_mol1 59 SER 491 N
1QMT_mol1 60 ILE 497 N
1QMT_mol1 61 ARG 505 N
1QMT_mol1 62 CYS 516 N
1QMT_mol1 63 PRO 522 N
1QMT_mol1 64 HIS 529 N
1QMT_mol1 65 ASN 539 N
1QMT_mol1 66 ARG 547 N
1QMT_mol1 67 THR 558 N
1QMT_mol1 68 LEU 565 N
1QMT_mol1 69 ASN 573 N
1QMT_mol1 70 ASN 581 N
1QMT_mol1 71 CYS 589 N
1QMT_mol1 72 HIS 595 N
1QMT_mol1 73 ARG 605 N
1QMT_mol1 74 SER 616 N
1QMT_mol1 75 ARG 622 N
1QMT_mol1 76 PHE 633 N
1QMT_mol1 77 ARG 644 N
1QMT_mol1 78 VAL 655 N
1QMT_mol1 79 PRO 662 N
1QMT_mol1 80 LEU 669 N
1QMT_mol1 81 LEU 677 N
1QMT_mol1 82 HIS 685 N
1QMT_mol1 83 CYS 695 N
1QMT_mol1 84 ASP 701 N
1QMT_mol1 85 LEU 709 N
1QMT_mol1 86 ILE 717 N
1QMT_mol1 87 ASN 725 N
1QMT_mol1 88 PRO 733 N
1QMT_mol1 89 GLY 740 N
1QMT_mol1 90 ALA 744 N
1QMT_mol1 91 GLN 749 N
1QMT_mol1 92 ASN 758 N
1QMT_mol1 93 ILE 766 N
1QMT_mol1 94 SER 774 N
1QMT_mol1 95 ASN 780 N
1QMT_mol1 96 CYS 788 N
1QMT_mol1 97 ARG 794 N
1QMT_mol1 98 TYR 805 N
1QMT_mol1 99 ALA 817 N
1QMT_mol1 100 ASP 822 N
1QMT_mol1 101 ARG 830 N
1QMT_mol1 102 PRO 841 N
1QMT_mol1 103 GLY 848 N
1QMT_mol1 104 ARG 852 N
1QMT_mol1 105 ARG 863 N
1QMT_mol1 106 PHE 874 N
1QMT_mol1 107 TYR 885 N
1QMT_mol1 108 VAL 897 N
1QMT_mol1 109 VAL 904 N
1QMT_mol1 110 ALA 911 N
1QMT_mol1 111 CYS 916 N
1QMT_mol1 112 ASP 922 N
1QMT_mol1 113 ASN 930 N
1QMT_mol1 114 ARG 938 N
1QMT_mol1 115 ASP 949 N
1QMT_mol1 116 PRO 957 N
1QMT_mol1 117 ARG 964 N
1QMT_mol1 118 ASP 975 N
1QMT_mol1 119 SER 983 N
1QMT_mol1 120 PRO 989 N
1QMT_mol1 121 ARG 996 N
1QMT_mol1 122 TYR 1007 N
1QMT_mol1 123 PRO 1019 N
1QMT_mol1 124 VAL 1026 N
1QMT_mol1 125 VAL 1033 N
1QMT_mol1 126 PRO 1040 N
1QMT_mol1 127 VAL 1047 N
1QMT_mol1 128 HIS 1054 N
1QMT_mol1 129 LEU 1064 N
1QMT_mol1 130 ASP 1072 N
1QMT_mol1 131 THR 1080 N
1QMT_mol1 132 THR 1087 N
1QMT_mol1 133 ILE 1094 N
relax> spectrum.read_intensities(file='T1_0.01s_800.list', dir=None,
spectrum_id='1', heteronuc='N', proton='HN', int_method='height',
int_col=6,
spin_id_col=None, mol_name_col=None, res_num_col=2, res_name_col=1,
spin_num_col=None, spin_name_col=None, sep=None, spin_id=None, ncproc=None)
Opening the file 'T1_0.01s_800.list' for reading.
Generic formatted data file.
relax> spectrum.read_intensities(file='T1_0.10s_800.list', dir=None,
spectrum_id='2', heteronuc='N', proton='HN', int_method='height',
int_col=6,
spin_id_col=None, mol_name_col=None, res_num_col=2, res_name_col=1,
spin_num_col=None, spin_name_col=None, sep=None, spin_id=None, ncproc=None)
Opening the file 'T1_0.10s_800.list' for reading.
Generic formatted data file.
relax> spectrum.read_intensities(file='T1_0.10s-dup_800.list', dir=None,
spectrum_id='3', heteronuc='N', proton='HN', int_method='height',
int_col=6,
spin_id_col=None, mol_name_col=None, res_num_col=2, res_name_col=1,
spin_num_col=None, spin_name_col=None, sep=None, spin_id=None, ncproc=None)
Opening the file 'T1_0.10s-dup_800.list' for reading.
Generic formatted data file.
relax> spectrum.read_intensities(file='T1_0.70s_800.list', dir=None,
spectrum_id='4', heteronuc='N', proton='HN', int_method='height',
int_col=6,
spin_id_col=None, mol_name_col=None, res_num_col=2, res_name_col=1,
spin_num_col=None, spin_name_col=None, sep=None, spin_id=None, ncproc=None)
Opening the file 'T1_0.70s_800.list' for reading.
Generic formatted data file.
relax> spectrum.read_intensities(file='T1_1.10s_800.list', dir=None,
spectrum_id='5', heteronuc='N', proton='HN', int_method='height',
int_col=6,
spin_id_col=None, mol_name_col=None, res_num_col=2, res_name_col=1,
spin_num_col=None, spin_name_col=None, sep=None, spin_id=None, ncproc=None)
Opening the file 'T1_1.10s_800.list' for reading.
Generic formatted data file.
relax> spectrum.read_intensities(file='T1_1.40s_800.list', dir=None,
spectrum_id='6', heteronuc='N', proton='HN', int_method='height',
int_col=6,
spin_id_col=None, mol_name_col=None, res_num_col=2, res_name_col=1,
spin_num_col=None, spin_name_col=None, sep=None, spin_id=None, ncproc=None)
Opening the file 'T1_1.40s_800.list' for reading.
Generic formatted data file.
relax> relax_fit.relax_time(time=0.01, spectrum_id='11')
RelaxError: The peak heights corresponding to spectrum id '11' have not
been
loaded.
--
Nicolas Doucet
Assistant Professor
INRS - Institut Armand-Frappier
University of Quebec
Institut Pasteur International Network
531 Boulevard des Prairies
Laval (Quebec) H7V 1B7 CANADA
Phone: (450) 687-5010 #4212
Fax: (450) 686-5501
Email: nicolas.doucet@xxxxxxxxxxx
Web: http://www.profs.inrs.ca/ndoucet/
--
On 2012-08-31, at 12:40 PM, Edward d'Auvergne <edward@xxxxxxxxxxxxx> wrote:
Hi Nick,
I'll answer your questions below:
1) Default lists created by Sparky look like this:
Assignment w1 w2 Data Height
R1N-H 126.139 8.573 108076
Q4N-H 118.070 8.861 50515
F5N-H 119.682 7.577 111977
T6N-H 113.163 8.827 95306
R7N-H 120.731 8.903 108430
A8N-H 126.058 10.299 92981
Q9N-H 118.747 8.300 127858
W10N-H 122.375 9.005 102254
F11N-H 121.361 8.698 114173
A12N-H 122.049 8.175 59426
I13N-H 118.046 7.753 129168
Q14N-H 111.972 7.184 73155
H15N-H 106.081 7.773 119082
I16N-H 122.326 8.294 156604
S17N-H 120.624 7.734 133194
L18N-H 128.309 8.660 163834
N19N-H 115.816 8.450 241597
It depends on how you assigned the peaks. If you use the full
3-letter code, then it'll look like your example below. When I use
Sparky, in the 'at' window I use text such as 'TRP100' for the group.
You can pretty much use what you like, but it's difficult for relax to
then match everything up. It would be good to have proper residue
identification and then conversion of the different residue name
formats, but this is quite complex if you take modified residues, DNA,
RNA, sugars, and organic molecules into account - something which
cannot be ignored.
According to the relax manual, we need to convert lists to the following
format:
Assignment w1 w2 Data Height
ARG1N-HN 126.139 8.573 108076
GLN4N-HN 118.07 8.861 50515
PHE5N-HN 119.682 7.577 111977
THR6N-HN 113.163 8.827 95306
ARG7N-HN 120.731 8.903 108430
ALA8N-HN 126.058 10.299 92981
GLN9N-HN 118.747 8.3 127858
TRP10N-HN 122.375 9.005 102254
PHE11N-HN 121.361 8.698 114173
ALA12N-HN 122.049 8.175 59426
ILE13N-HN 118.046 7.753 129168
GLN14N-HN 111.972 7.184 73155
HIS15N-HN 106.081 7.773 119082
ILE16N-HN 122.326 8.294 156604
SER17N-HN 120.624 7.734 133194
LEU18N-HN 128.309 8.66 163834
ASN19N-HN 115.816 8.45 241597
To match the PDB file later on, this is important. At some point a
conversion will need to be performed. No one has had a need yet, but
anyone could contribute such conversion code. It would require a set
of conversion tables added to 'generic_fns/mol_res_spin.py', and some
new user function arguments for all of the data loading functions to
active the conversion only when asked. This is a perfect small
project for any power users out there ;)
First, do we need to add any unused/unassigned residues like this or is
this
irrelevant:
PRO2N-HN None None None
PRO3N-HN None None None
?
Those shouldn't appear in the 2D peak lists and are not needed. There
are no proline backbone N spin systems with proton attached (I would
hope), so data for such spin systems need not be loaded. relax will
handle all of such issues automatically.
2) Does anyone have a script to automatically convert Sparky lists to the
right format for relax? This is a tedious process to run manually.
I don't have one, but maybe someone else on this list does? Such a
script, if written in Python, could be absorbed into
'generic_fns/mol_res_spin.py' and then be part of the core of relax
(as I described above).
3) After modifying the sample script to run a simple R1 analysis with our
own modified Sparky lists and PDB, the 'python relax_fit.py' command
yielded
the following error:
File "relax_fit.py", line 26, in <module>
pipe.create('rx', 'relax_fit')
NameError: name 'pipe' is not defined
Any idea what's going on? Are we using the command correctly?
From the 'Scripting' section of the introductory chapter of the relax
manual, it says:
What ever is done within the prompt is also accessible through
scripting (Figure 1.2). Just type your commands into a text ?le ending
in ?*.py? and then at the terminal type
$ relax your script.py
The user functions in the script are specific to relax and will not be
available from the Python interpreter.
I hope this helps.
Regards,
Edward
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-users mailing list
relax-users@xxxxxxx
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
------------------------------
Message: 2
Date: Mon, 3 Sep 2012 21:32:09 +0200
From: "Edward d'Auvergne" <edward@xxxxxxxxxxxxx>
To: Nicolas Doucet <nicolas.doucet@xxxxxxxxxxx>
Cc: relax-users@xxxxxxx
Subject: Re: R1, R2 and/or NOE Analysis with relax
Message-ID:
<CAED9pY_q6+=BD8qBB5waFAq0n6ccKHBtB4zJ9LVZiqhr+31Fdg@xxxxxxxxxxxxxx>
Content-Type: text/plain; charset=ISO-8859-1
Hi,
A few more small things:
1) We separated residue names into different columns. Example: ARG1N-HN
became ARG 1 N-HN because residue names weren't recognized.
Although not very nice - I would not recommend going this way - this
format should work as the 'generic' format. You would have to remove
all header lines so that relax doesn't mistake this for a Sparky peak
list. You would then specify res_num_col=2 (the residue name is
redundant, so doesn't need to be specified). For your Trp indole NH
data, you would need to load those spins:
relax> structure.load_spins(spin_id='@NE1', ave_pos=True)
and also remove the hyphen from between the two atom names. Then also
specify the spin name column with spin_name_col=3 (the spin number is
not needed).
2) We got rid of column titles, which yielded an error.
This will confuse relax, it will think that it is the generic
formatted peak list with whitespace between all elements.
3) We also got rid of the 'none' qualifier in the lists and replaced
them by
zeros. However, as per your last email, we might just get rid of those
residues altogether.
Why is there 'none' in your Sparky peak lists? Sparky, as far as I
know, does not create peak lists with 'none' elements.
4) We added columns for the molecule name and the spin id, but those didn't
change anything.
These are all alternatives. To give the user the most flexibility
possible, relax does not enforce any format (just that it should match
the PDB, if you are using the PDB file for info). There's no need for
the molecule name, unless you're working with some form of complex.
The spin ID is useful only in some scripting instances. All of the
column arguments apply only for the generic formatted peak list and
will be ignored when a Sparky peak list is detected.
Regards,
Edward
------------------------------
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-users mailing list
relax-users@xxxxxxx
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
End of relax-users Digest, Vol 74, Issue 3
******************************************
Madeleine Strickland
MCJC Group
N317, School of Chemistry, Bristol University
_______________________________________________
relax (http://www.nmr-relax.com)
This is the relax-users mailing list
relax-users@xxxxxxx
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