Hi Edward. I will at the moment refrain to into 3d and 4d spectra list.
I see it as an interesting case, but I don't have any need for it at the moment. Best Troels 2013/12/12 Edward d'Auvergne <[email protected]> > Hi Troels, > > What do you think about the 3D and 4D lists, especially the code such > as "res_nums=[res_num1, res_num2, res_num1, res_num1]"? This seems to > be a little counter to the algorithm you have implemented. Maybe you > need to nest this so that if you get an residue number for the second > dimension, then you should try to get the residue number for the 3rd > and 4th dimensions, if 'dim' is set to that. It is probably safe to > assume two formats. One where the residue name and number is only > located in the first part, and the other where the residue name and > number is found in each part for each dimension. But I don't have > enough experience with 3D and 4D sparky peak lists to tell. Actually, > according to the Sparky manual you can have 'C30CA-Q31N-H': > > http://www.cgl.ucsf.edu/home/sparky/manual/images/assignlist.gif > > That really complicates things! That format is repeated here: > > http://www.nmr2.buffalo.edu/nesg.wiki/Sparky#Figure_5:_Sparky_peak_list > > From these, maybe the res_num and res_name should be set to the 2nd > dimension for the 3rd and 4th dimensions. Here is an example where > the 3rd dimension matches the 1st: > > http://pine.nmrfam.wisc.edu/ADAPT-NMR/sparky_peak_list.htm > > That has a peak list which could be copied (duplicated below). But > this has the residue number and name in the 3rd dimension to show > this. So if the information is missing in the Nth dimension, it > should probably match the dimension N-1. What do you think? > > Regards, > > Edward > > > P. S. For reference, here are the peak lists from > http://pine.nmrfam.wisc.edu/ADAPT-NMR/sparky_peak_list.htm, just in > case that link disappears: > > > a) Non-assigned peak list > > Assignment w1 w2 w3 > ?-?-? 7.826 32.039 116.080 > ?-?-? 9.324 29.130 116.029 > ?-?-? 8.868 36.809 127.984 > ?-?-? 8.372 58.423 118.945 > ?-?-? 8.111 28.686 120.113 > ?-?-? 8.136 32.232 119.999 > ?-?-? 9.072 52.226 118.013 > ?-?-? 6.581 40.419 111.959 > ?-?-? 7.826 59.383 116.080 > > b) Assigned peak list > > Assignment w1 w2 w3 > C16H-K15CB-C16N 7.826 32.039 116.080 > N10H-E9CB-N10N 9.324 29.130 116.029 > V7H-K6CB-V7N 8.868 36.809 127.984 > C24H-Q23CA-C24N 8.372 58.423 118.945 > K44H-E43CB-K44N 8.111 28.686 120.113 > L30H-K29CB-L30N 8.136 32.232 119.999 > E43H-D42CA-E43N 9.072 52.226 118.013 > K32H-D31CB-K32N 6.581 40.419 111.959 > C16H-K15CA-C16N 7.826 59.383 116.080 > > > > On 12 December 2013 11:02, <[email protected]> wrote: > > Author: tlinnet > > Date: Thu Dec 12 11:02:00 2013 > > New Revision: 21949 > > > > URL: http://svn.gna.org/viewcvs/relax?rev=21949&view=rev > > Log: > > Implemented to read spins from a SPARKY list, when no intensity column > is present. > > > > Addition to Support Request #3044, ( > https://gna.org/support/index.php?3044) - Load spins from SPARKY list. > > > > Modified: > > trunk/lib/spectrum/sparky.py > > trunk/test_suite/system_tests/peak_lists.py > > > > Modified: trunk/lib/spectrum/sparky.py > > URL: > http://svn.gna.org/viewcvs/relax/trunk/lib/spectrum/sparky.py?rev=21949&r1=21948&r2=21949&view=diff > > > ============================================================================== > > --- trunk/lib/spectrum/sparky.py (original) > > +++ trunk/lib/spectrum/sparky.py Thu Dec 12 11:02:00 2013 > > @@ -204,15 +204,29 @@ > > except ValueError: > > raise RelaxError("The peak intensity value from the > line %s is invalid." % line) > > > > - # Add the assignment to the peak list object. > > - if dim == 1: > > - peak_list.add(res_nums=[res_num1], res_names=[res_name1], > spin_names=[name1], shifts=[w1], intensity=intensity) > > - elif dim == 2: > > - peak_list.add(res_nums=[res_num1, res_num2], > res_names=[res_name1, res_name2], spin_names=[name1, name2], shifts=[w1, > w2], intensity=intensity) > > - elif dim == 3: > > - peak_list.add(res_nums=[res_num1, res_num2, res_num1], > res_names=[res_name1, res_name2, res_name1], spin_names=[name1, name2, > name3], shifts=[w1, w2, w3], intensity=intensity) > > - elif dim == 4: > > - peak_list.add(res_nums=[res_num1, res_num2, res_num1, > res_num1], res_names=[res_name1, res_name2, res_name1, res_name1], > spin_names=[name1, name2, name3, name4], shifts=[w1, w2, w3, w4], > intensity=intensity) > > + # Add the assignment to the peak list object. > > + if dim == 1: > > + peak_list.add(res_nums=[res_num1], > res_names=[res_name1], spin_names=[name1], shifts=[w1], intensity=intensity) > > + elif dim == 2: > > + peak_list.add(res_nums=[res_num1, res_num2], > res_names=[res_name1, res_name2], spin_names=[name1, name2], shifts=[w1, > w2], intensity=intensity) > > + elif dim == 3: > > + peak_list.add(res_nums=[res_num1, res_num2, res_num1], > res_names=[res_name1, res_name2, res_name1], spin_names=[name1, name2, > name3], shifts=[w1, w2, w3], intensity=intensity) > > + elif dim == 4: > > + peak_list.add(res_nums=[res_num1, res_num2, res_num1, > res_num1], res_names=[res_name1, res_name2, res_name1, res_name1], > spin_names=[name1, name2, name3, name4], shifts=[w1, w2, w3, w4], > intensity=intensity) > > + > > + # If no intensity column, for example when reading spins from a > spectrum list. > > + elif int_col == None: > > + warn(RelaxWarning(("The peak intensity value from the line > %s is invalid. The return value will be without intensity." % line))) > > + > > + # Add the assignment to the peak list object. > > + if dim == 1: > > + peak_list.add(res_nums=[res_num1], > res_names=[res_name1], spin_names=[name1], shifts=[w1]) > > + elif dim == 2: > > + peak_list.add(res_nums=[res_num1, res_num2], > res_names=[res_name1, res_name2], spin_names=[name1, name2], shifts=[w1, > w2]) > > + elif dim == 3: > > + peak_list.add(res_nums=[res_num1, res_num2, res_num1], > res_names=[res_name1, res_name2, res_name1], spin_names=[name1, name2, > name3], shifts=[w1, w2, w3]) > > + elif dim == 4: > > + peak_list.add(res_nums=[res_num1, res_num2, res_num1, > res_num1], res_names=[res_name1, res_name2, res_name1, res_name1], > spin_names=[name1, name2, name3, name4], shifts=[w1, w2, w3, w4]) > > > > > > def write_list(file_prefix=None, dir=None, res_names=None, > res_nums=None, atom1_names=None, atom2_names=None, w1=None, w2=None, > data_height=None, force=True): > > > > Modified: trunk/test_suite/system_tests/peak_lists.py > > URL: > http://svn.gna.org/viewcvs/relax/trunk/test_suite/system_tests/peak_lists.py?rev=21949&r1=21948&r2=21949&view=diff > > > ============================================================================== > > --- trunk/test_suite/system_tests/peak_lists.py (original) > > +++ trunk/test_suite/system_tests/peak_lists.py Thu Dec 12 11:02:00 2013 > > @@ -456,6 +456,76 @@ > > # Read the spins from peak list. > > self.interpreter.spectrum.read_spins(file="sparky2dim.list", > dir=status.install_path + > sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', dim=1) > > self.interpreter.spectrum.read_spins(file="sparky2dim.list", > dir=status.install_path + > sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', dim=2) > > + > > + # Test some of the sequence. > > + self.assertEqual(len(cdp.mol), 1) > > + self.assertEqual(cdp.mol[0].name, None) > > + self.assertEqual(len(cdp.mol[0].res), 7) > > + > > + # 1st residue. > > + self.assertEqual(cdp.mol[0].res[0].num, 62) > > + self.assertEqual(cdp.mol[0].res[0].name, 'W') > > + self.assertEqual(len(cdp.mol[0].res[0].spin), 2) > > + self.assertEqual(cdp.mol[0].res[0].spin[0].num, None) > > + self.assertEqual(cdp.mol[0].res[0].spin[0].name, 'NE1') > > + self.assertEqual(cdp.mol[0].res[0].spin[1].num, None) > > + self.assertEqual(cdp.mol[0].res[0].spin[1].name, 'HE1') > > + > > + # 2nd residue. > > + self.assertEqual(cdp.mol[0].res[1].num, 10) > > + self.assertEqual(cdp.mol[0].res[1].name, 'L') > > + self.assertEqual(len(cdp.mol[0].res[1].spin), 2) > > + self.assertEqual(cdp.mol[0].res[1].spin[0].num, None) > > + self.assertEqual(cdp.mol[0].res[1].spin[0].name, 'N') > > + self.assertEqual(cdp.mol[0].res[1].spin[1].num, None) > > + self.assertEqual(cdp.mol[0].res[1].spin[1].name, 'HN') > > + > > + # 3rd residue. > > + self.assertEqual(cdp.mol[0].res[2].num, 6) > > + self.assertEqual(cdp.mol[0].res[2].name, 'V') > > + self.assertEqual(len(cdp.mol[0].res[2].spin), 2) > > + self.assertEqual(cdp.mol[0].res[2].spin[0].num, None) > > + self.assertEqual(cdp.mol[0].res[2].spin[0].name, 'N') > > + self.assertEqual(cdp.mol[0].res[2].spin[1].num, None) > > + self.assertEqual(cdp.mol[0].res[2].spin[1].name, 'HN') > > + > > + # 4th residue. > > + self.assertEqual(cdp.mol[0].res[3].num, 2) > > + self.assertEqual(cdp.mol[0].res[3].name, 'T') > > + self.assertEqual(len(cdp.mol[0].res[3].spin), 2) > > + self.assertEqual(cdp.mol[0].res[3].spin[0].num, None) > > + self.assertEqual(cdp.mol[0].res[3].spin[0].name, 'N') > > + self.assertEqual(cdp.mol[0].res[3].spin[1].num, None) > > + self.assertEqual(cdp.mol[0].res[3].spin[1].name, 'HN') > > + > > + # 5th residue. > > + self.assertEqual(cdp.mol[0].res[4].num, 3) > > + self.assertEqual(cdp.mol[0].res[4].name, 'K') > > + self.assertEqual(len(cdp.mol[0].res[4].spin), 1) > > + self.assertEqual(cdp.mol[0].res[4].spin[0].num, None) > > + self.assertEqual(cdp.mol[0].res[4].spin[0].name, 'N') > > + > > + # 6th residue. > > + self.assertEqual(cdp.mol[0].res[5].num, 4) > > + self.assertEqual(cdp.mol[0].res[5].name, 'A') > > + self.assertEqual(len(cdp.mol[0].res[5].spin), 1) > > + self.assertEqual(cdp.mol[0].res[5].spin[0].num, None) > > + self.assertEqual(cdp.mol[0].res[5].spin[0].name, 'N') > > + > > + # 7th residue. > > + self.assertEqual(cdp.mol[0].res[6].num, 5) > > + self.assertEqual(cdp.mol[0].res[6].name, 'V') > > + self.assertEqual(len(cdp.mol[0].res[6].spin), 1) > > + self.assertEqual(cdp.mol[0].res[6].spin[0].num, None) > > + self.assertEqual(cdp.mol[0].res[6].spin[0].name, 'N') > > + > > + > > + def test_read_spins_peak_list_sparky_with_no_int_col(self): > > + """Test the reading of spins from a Sparky peak list with no > intensity column.""" > > + > > + # Read the spins from peak list. > > + self.interpreter.spectrum.read_spins(file="sparky_wo_int.list", > dir=status.install_path + > sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', dim=1) > > + self.interpreter.spectrum.read_spins(file="sparky_wo_int.list", > dir=status.install_path + > sep+'test_suite'+sep+'shared_data'+sep+'peak_lists', dim=2) > > > > # Test some of the sequence. > > self.assertEqual(len(cdp.mol), 1) > > > > > > _______________________________________________ > > relax (http://www.nmr-relax.com) > > > > This is the relax-commits mailing list > > [email protected] > > > > 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-commits > > _______________________________________________ > relax (http://www.nmr-relax.com) > > This is the relax-devel mailing list > [email protected] > > 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-devel >
_______________________________________________ relax (http://www.nmr-relax.com) This is the relax-devel mailing list [email protected] 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-devel

