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