Hi Ed, Thanks for the info. I just wanted to sync the file to catch most new developments that were already in specific_fns/jw_mapping.py instead of starting from scratch... Cheers Séb Edward d'Auvergne wrote: Oh, note that these jw_mapping.py files have only partially been migrated to the new design. They still need a lot of work to be fully functional again. For example with the new molecule-residue-spin structure, the reference to 'relax_data_store.res' will raise an error. Also for things like looping over residues, this is now implemented in the generic_fns.selection.spin_loop() function which should be imported. It will be very useful to implement unit tests to create a comprehensive net to catch all these problems. And I am also in the process of considering whether to split the generic_fns.selection module into a few different modules, in which case unit tests will again be very helpful for quickly resolving any problems with this code refactorisation. Regards, Edward On Dec 18, 2007 10:18 PM, <sebastien.morin.1@xxxxxxxxx> wrote:Author: semor Date: Tue Dec 18 22:18:29 2007 New Revision: 4214 URL: http://svn.gna.org/viewcvs/relax?rev=4214&view=rev Log: Synced the file specific_fns/consistency_tests.py from the file specific_fns/jw_mapping.py. This file was first created as a copy of the file specific_fns/jw_mapping.py but was never updated. Now, the two files are identical. It will thus be easier to modify this new version which incorporates many aspects of the 1.3 line redesign. Modified: branches/consistency_tests_1.3/specific_fns/consistency_tests.py Modified: branches/consistency_tests_1.3/specific_fns/consistency_tests.py URL: http://svn.gna.org/viewcvs/relax/branches/consistency_tests_1.3/specific_fns/consistency_tests.py?rev=4214&r1=4213&r2=4214&view=diff ============================================================================== --- branches/consistency_tests_1.3/specific_fns/consistency_tests.py (original) +++ branches/consistency_tests_1.3/specific_fns/consistency_tests.py Tue Dec 18 22:18:29 2007 @@ -28,17 +28,13 @@ from data import Data as relax_data_store from base_class import Common_functions from maths_fns.jw_mapping import Mapping -from relax_errors import RelaxError, RelaxFuncSetupError, RelaxNoRunError, RelaxNoSequenceError, RelaxNoValueError, RelaxNucleusError - - -# The relax data storage object. +from relax_errors import RelaxError, RelaxFuncSetupError, RelaxNoPipeError, RelaxNoSequenceError, RelaxNoValueError, RelaxNucleusError +from physical_constants import N15_CSA, NH_BOND_LENGTH class Jw_mapping(Common_functions): - def __init__(self, relax): + def __init__(self): """Class containing functions specific to reduced spectral density mapping.""" - - self.relax = relax def calculate(self, run=None, print_flag=1, sim_index=None): @@ -208,6 +204,7 @@ """ Reduced spectral density mapping default values ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + These default values are found in the file 'physical_constants.py'. _______________________________________________________________________________________ | | | | @@ -216,18 +213,18 @@ | | | | | Bond length | 'r' | 1.02 * 1e-10 | | | | | - | CSA | 'csa' | -170 * 1e-6 | + | CSA | 'csa' | -172 * 1e-6 | |_______________________________________|______________|______________________________| """ # Bond length. if param == 'r': - return 1.02 * 1e-10 + return NH_BOND_LENGTH # CSA. if param == 'CSA': - return -170 * 1e-6 + return N15_CSA def num_instances(self, run=None): @@ -253,7 +250,7 @@ # Loop over residue data: for residue in relax_data_store.res[run]: - + # Check for sufficient data if not hasattr(residue, 'relax_data'): residue.select = 0 @@ -395,7 +392,7 @@ value.append(self.default_value('r')) # Initilise data. - if not hasattr(relax_data_store.res[self.run][index], 'csa') or not hasattr(relax_data_store.res[self.run][index], 'csa'): + if not hasattr(relax_data_store.res[self.run][index], 'csa') or not hasattr(relax_data_store.res[self.run][index], 'r'): self.data_init(relax_data_store.res[self.run][index]) # CSA and Bond length. @@ -436,7 +433,7 @@ # Test if the run exists. if not self.run in relax_data_store.run_names: - raise RelaxNoRunError, self.run + raise RelaxNoPipeError, self.run # Test if the run type is set to 'jw'. function_type = relax_data_store.run_types[relax_data_store.run_names.index(self.run)] @@ -585,7 +582,7 @@ # Test if the run exists. if not self.run in relax_data_store.run_names: - raise RelaxNoRunError, self.run + raise RelaxNoPipeError, self.run # Test if sequence data is loaded. if not relax_data_store.res.has_key(self.run): @@ -663,16 +660,18 @@ ri_error = [] if hasattr(relax_data_store, 'num_ri'): for i in xrange(relax_data_store.num_ri[self.run]): - # Find the residue specific data corresponding to i. - index = None - for j in xrange(data.num_ri): - if data.ri_labels[j] == relax_data_store.ri_labels[self.run][i] and data.frq_labels[data.remap_table[j]] == relax_data_store.frq_labels[self.run][relax_data_store.remap_table[self.run][i]]: - index = j - - # Data exists for this data type. try: + # Find the residue specific data corresponding to i. + index = None + for j in xrange(data.num_ri): + if data.ri_labels[j] == relax_data_store.ri_labels[self.run][i] and data.frq_labels[data.remap_table[j]] == relax_data_store.frq_labels[self.run][relax_data_store.remap_table[self.run][i]]: + index = j + + # Data exists for this data type. ri.append(`data.relax_data[index]`) ri_error.append(`data.relax_error[index]`) + + # No data exists for this data type. except: ri.append(None) ri_error.append(None) @@ -769,20 +768,23 @@ # Relaxation data and errors. ri = [] ri_error = [] - for k in xrange(relax_data_store.num_ri[self.run]): - # Find the residue specific data corresponding to k. - index = None - for l in xrange(data.num_ri): - if data.ri_labels[l] == relax_data_store.ri_labels[self.run][k] and data.frq_labels[data.remap_table[l]] == relax_data_store.frq_labels[self.run][relax_data_store.remap_table[self.run][k]]: - index = l - - # Data exists for this data type. - try: - ri.append(`data.relax_sim_data[i][index]`) - ri_error.append(`data.relax_error[index]`) - except: - ri.append(None) - ri_error.append(None) + if hasattr(self.relax.data, 'num_ri'): + for k in xrange(relax_data_store.num_ri[self.run]): + try: + # Find the residue specific data corresponding to k. + index = None + for l in xrange(data.num_ri): + if data.ri_labels[l] == relax_data_store.ri_labels[self.run][k] and data.frq_labels[data.remap_table[l]] == relax_data_store.frq_labels[self.run][relax_data_store.remap_table[self.run][k]]: + index = l + + # Data exists for this data type. + ri.append(`data.relax_sim_data[i][index]`) + ri_error.append(`data.relax_error[index]`) + + # No data exists for this data type. + except: + ri.append(None) + ri_error.append(None) # Write the line. self.write_columnar_line(file=file, num=data.num, name=data.name, select=data.select, data_set='sim_'+`i`, nucleus=nucleus, wH=`wH`, j0=`j0`, jwx=`jwx`, jwh=`jwh`, r=`r`, csa=`csa`, ri_labels=ri_labels, remap_table=remap_table, frq_labels=frq_labels, frq=frq, ri=ri, ri_error=ri_error) _______________________________________________ relax (http://nmr-relax.com) This is the relax-commits mailing list relax-commits@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-commits -- Sebastien Morin Etudiant au PhD en biochimie Laboratoire de resonance magnetique nucleaire Dr Stephane Gagne CREFSIP (Universite Laval, Quebec, CANADA) 1-418-656-2131 #4530 |