Author: bugman Date: Fri May 24 17:39:43 2013 New Revision: 19738 URL: http://svn.gna.org/viewcvs/relax?rev=19738&view=rev Log: The relaxation dispersion specific code now uses the changes of the spectrometer.frequency user function. This simplifies the handling of magnetic field strength data. Modified: branches/relax_disp/specific_analyses/relax_disp/__init__.py branches/relax_disp/specific_analyses/relax_disp/cpmgfit.py branches/relax_disp/specific_analyses/relax_disp/disp_data.py Modified: branches/relax_disp/specific_analyses/relax_disp/__init__.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/specific_analyses/relax_disp/__init__.py?rev=19738&r1=19737&r2=19738&view=diff ============================================================================== --- branches/relax_disp/specific_analyses/relax_disp/__init__.py (original) +++ branches/relax_disp/specific_analyses/relax_disp/__init__.py Fri May 24 17:39:43 2013 @@ -120,19 +120,11 @@ # Create a scaling matrix. scaling_matrix = assemble_scaling_matrix(spins=[spin], scaling=False) - # The number of spectrometer field strengths. - field_count = 1 - fields = [] - if hasattr(cdp, 'frq'): - fields = unique_elements(cdp.frq.values()) - fields.sort() - field_count = len(fields) - # Initialise the data structures for the target function. - values, errors, missing = return_r2eff_arrays(spins=[spin], spin_ids=[spin_id], fields=fields, field_count=field_count) + values, errors, missing = return_r2eff_arrays(spins=[spin], spin_ids=[spin_id], fields=cdp.spectrometer_frq_list, field_count=cdp.spectrometer_frq_count) # Initialise the relaxation dispersion fit functions. - model = Dispersion(model=cdp.model, num_params=param_num(spins=[spin]), num_spins=1, num_frq=field_count, num_disp_points=cdp.dispersion_points, values=values, errors=errors, missing=missing, frqs=fields, cpmg_frqs=return_cpmg_frqs(ref_flag=False), spin_lock_nu1=return_spin_lock_nu1(ref_flag=False), scaling_matrix=scaling_matrix) + model = Dispersion(model=cdp.model, num_params=param_num(spins=[spin]), num_spins=1, num_frq=cdp.spectrometer_frq_count, num_disp_points=cdp.dispersion_points, values=values, errors=errors, missing=missing, frqs=cdp.spectrometer_frq_list, cpmg_frqs=return_cpmg_frqs(ref_flag=False), spin_lock_nu1=return_spin_lock_nu1(ref_flag=False), scaling_matrix=scaling_matrix) # Make a single function call. This will cause back calculation and the data will be stored in the class instance. model.func(param_vector) @@ -1014,14 +1006,6 @@ # Exit the method. return - # The number of spectrometer field strengths. - field_count = 1 - fields = [] - if hasattr(cdp, 'frq'): - fields = unique_elements(cdp.frq.values()) - fields.sort() - field_count = len(fields) - # The number of time points for the exponential curves (if present). num_time_pts = 1 if hasattr(cdp, 'num_time_pts'): @@ -1030,7 +1014,7 @@ # Loop over the spin blocks. for spins, spin_ids in self.model_loop(): # The R2eff/R1rho data. - values, errors, missing = return_r2eff_arrays(spins=spins, spin_ids=spin_ids, fields=fields, field_count=field_count) + values, errors, missing = return_r2eff_arrays(spins=spins, spin_ids=spin_ids, fields=cdp.spectrometer_frq_list, field_count=cdp.spectrometer_frq_count) # Create the initial parameter vector. param_vector = assemble_param_vector(spins=spins) @@ -1063,7 +1047,7 @@ print("Unconstrained grid search size: %s (constraints may decrease this size).\n" % grid_size) # Initialise the function to minimise. - model = Dispersion(model=cdp.model, num_params=param_num(spins=spins), num_spins=len(spins), num_frq=field_count, num_disp_points=cdp.dispersion_points, values=values, errors=errors, missing=missing, frqs=fields, cpmg_frqs=return_cpmg_frqs(ref_flag=False), spin_lock_nu1=return_spin_lock_nu1(ref_flag=False), scaling_matrix=scaling_matrix) + model = Dispersion(model=cdp.model, num_params=param_num(spins=spins), num_spins=len(spins), num_frq=cdp.spectrometer_frq_count, num_disp_points=cdp.dispersion_points, values=values, errors=errors, missing=missing, frqs=cdp.spectrometer_frq_list, cpmg_frqs=return_cpmg_frqs(ref_flag=False), spin_lock_nu1=return_spin_lock_nu1(ref_flag=False), scaling_matrix=scaling_matrix) # Grid search. if search('^[Gg]rid', min_algor): Modified: branches/relax_disp/specific_analyses/relax_disp/cpmgfit.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/specific_analyses/relax_disp/cpmgfit.py?rev=19738&r1=19737&r2=19738&view=diff ============================================================================== --- branches/relax_disp/specific_analyses/relax_disp/cpmgfit.py (original) +++ branches/relax_disp/specific_analyses/relax_disp/cpmgfit.py Fri May 24 17:39:43 2013 @@ -190,12 +190,7 @@ file.write("title %s\n" % spin_id) # The proton frequencies. - frq = get_frequencies() - - # Loop over each frequency. - for i in range(len(frq)): - # Convert to Tesla. - frq[i] = frq[i] * 2.0 * pi / g1H + frq = get_frequencies(units='T') # The frequency info. file.write("fields %s" % len(frq)) @@ -234,7 +229,6 @@ continue # Tesla units. - print frq B0 = frq * 2.0 * pi / g1H # Write out the data and error. Modified: branches/relax_disp/specific_analyses/relax_disp/disp_data.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/specific_analyses/relax_disp/disp_data.py?rev=19738&r1=19737&r2=19738&view=diff ============================================================================== --- branches/relax_disp/specific_analyses/relax_disp/disp_data.py (original) +++ branches/relax_disp/specific_analyses/relax_disp/disp_data.py Fri May 24 17:39:43 2013 @@ -157,8 +157,8 @@ for id in cdp.spectrum_ids: # The spectrometer frequency. frq2 = None - if hasattr(cdp, 'frq'): - frq2 = cdp.frq[id] + if hasattr(cdp, 'spectrometer_frq'): + frq2 = cdp.spectrometer_frq[id] if frq2 == frq and disp_data[id] == point and cdp.relax_times[id] == time: ids.append(id) @@ -178,16 +178,8 @@ @rtype: float """ - # The number of spectrometer field strengths. - field_count = 1 - fields = [None] - if hasattr(cdp, 'frq'): - field_count = count_unique_elements(cdp.frq.values()) - fields = unique_elements(cdp.frq.values()) - fields.sort() - # Yield each unique spectrometer field strength. - for field in fields: + for field in cdp.spectrometer_frq_list: yield field @@ -370,17 +362,8 @@ @rtype: int """ - # Initialise. - index = 0 - - # Find the index if the frequency has been set. - if hasattr(cdp, 'frq'): - fields = unique_elements(cdp.frq.values()) - fields.sort() - index = fields.index(value) - # Return the index. - return index + return cdp.spectrometer_frq_list.index(value) def return_index_from_disp_point_key(key): @@ -597,15 +580,11 @@ """ # No data. - if not hasattr(cdp, 'frq'): + if not hasattr(cdp, 'spectrometer_frq'): return None - # The number of spectrometer field strengths. - fields = unique_elements(cdp.frq.values()) - fields.sort() - # Return the field. - return fields[frq_index] + return cdp.spectrometer_frq[frq_index] def spin_lock_field(spectrum_id=None, field=None):