Author: bugman Date: Fri May 3 15:45:38 2013 New Revision: 19636 URL: http://svn.gna.org/viewcvs/relax?rev=19636&view=rev Log: Created a script for running a full relaxation dispersion analysis on Flemming Hansen's data. This is located in the shared data directories and is not part of the test suite as a full analysis will take far too long. Added: branches/relax_disp/test_suite/shared_data/dispersion/Hansen/relax_disp.py Added: branches/relax_disp/test_suite/shared_data/dispersion/Hansen/relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/test_suite/shared_data/dispersion/Hansen/relax_disp.py?rev=19636&view=auto ============================================================================== --- branches/relax_disp/test_suite/shared_data/dispersion/Hansen/relax_disp.py (added) +++ branches/relax_disp/test_suite/shared_data/dispersion/Hansen/relax_disp.py Fri May 3 15:45:38 2013 @@ -1,0 +1,128 @@ +# Script for CPMG relaxation dispersion curve fitting using Dr. Flemming Hansen's data from http://dx.doi.org/10.1021/jp074793o. + +# Python module imports. +from os import sep + +# relax module imports. +from auto_analyses.relax_disp import Relax_disp +from data_store import Relax_data_store; ds = Relax_data_store() +from status import Status; status = Status() + + +# Analysis variables. +##################### + +# The dispersion models. +MODELS = ['R2eff', 'fast 2-site'] + +# The grid search size (the number of increments per dimension). +GRID_INC = 5 + +# The number of Monte Carlo simulations to be used for error analysis at the end of the analysis. +MC_NUM = 3 + +# The results directory. +RESULTS_DIR = 'temp' + + +# Set up the data pipe. +####################### + +# Create the data pipe. +pipe_name = 'base pipe' +pipe_bundle = 'relax_disp' +pipe.create(pipe_name=pipe_name, bundle=pipe_bundle, pipe_type='relax_disp') + +# The path to the data files. +data_path = status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'dispersion'+sep+'Hansen' + +# Load the sequence. +sequence.read('fake_sequence.in', dir=status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'dispersion'+sep+'Hansen', res_num_col=1, res_name_col=2) + +# Name the spins so they can be matched to the assignments. +spin.name(name='N') + +# Set the relaxation dispersion experiment type. +relax_disp.exp_type('cpmg fixed') + +# The spectral data - spectrum ID, peak list file name, CPMG frequency (Hz), spectrometer frequency in Hertz. +data = [ + ['500_reference.in', '500_MHz'+sep+'reference.in_sparky', None, 500e6], + ['500_66.667.in', '500_MHz'+sep+'66.667.in_sparky', 66.6666, 500e6], + ['500_133.33.in', '500_MHz'+sep+'133.33.in_sparky', 133.3333, 500e6], + ['500_133.33.in.bis', '500_MHz'+sep+'133.33.in.bis_sparky', 133.3333, 500e6], + ['500_200.in', '500_MHz'+sep+'200.in_sparky', 200.0000, 500e6], + ['500_266.67.in', '500_MHz'+sep+'266.67.in_sparky', 266.6666, 500e6], + ['500_333.33.in', '500_MHz'+sep+'333.33.in_sparky', 333.3333, 500e6], + ['500_400.in', '500_MHz'+sep+'400.in_sparky', 400.0000, 500e6], + ['500_466.67.in', '500_MHz'+sep+'466.67.in_sparky', 466.6666, 500e6], + ['500_533.33.in', '500_MHz'+sep+'533.33.in_sparky', 533.3333, 500e6], + ['500_533.33.in.bis', '500_MHz'+sep+'533.33.in.bis_sparky', 533.3333, 500e6], + ['500_600.in', '500_MHz'+sep+'600.in_sparky', 600.0000, 500e6], + ['500_666.67.in', '500_MHz'+sep+'666.67.in_sparky', 666.6666, 500e6], + ['500_733.33.in', '500_MHz'+sep+'733.33.in_sparky', 733.3333, 500e6], + ['500_800.in', '500_MHz'+sep+'800.in_sparky', 800.0000, 500e6], + ['500_866.67.in', '500_MHz'+sep+'866.67.in_sparky', 866.6666, 500e6], + ['500_933.33.in', '500_MHz'+sep+'933.33.in_sparky', 933.3333, 500e6], + ['500_933.33.in.bis', '500_MHz'+sep+'933.33.in.bis_sparky', 933.3333, 500e6], + ['500_1000.in', '500_MHz'+sep+'1000.in_sparky', 1000.0000, 500e6], + ['800_reference.in', '800_MHz'+sep+'reference.in_sparky', None, 800e6], + ['800_66.667.in', '800_MHz'+sep+'66.667.in_sparky', 66.6666, 800e6], + ['800_133.33.in', '800_MHz'+sep+'133.33.in_sparky', 133.3333, 800e6], + ['800_133.33.in.bis', '800_MHz'+sep+'133.33.in.bis_sparky', 133.3333, 800e6], + ['800_200.in', '800_MHz'+sep+'200.in_sparky', 200.0000, 800e6], + ['800_266.67.in', '800_MHz'+sep+'266.67.in_sparky', 266.6666, 800e6], + ['800_333.33.in', '800_MHz'+sep+'333.33.in_sparky', 333.3333, 800e6], + ['800_400.in', '800_MHz'+sep+'400.in_sparky', 400.0000, 800e6], + ['800_466.67.in', '800_MHz'+sep+'466.67.in_sparky', 466.6666, 800e6], + ['800_533.33.in', '800_MHz'+sep+'533.33.in_sparky', 533.3333, 800e6], + ['800_533.33.in.bis', '800_MHz'+sep+'533.33.in.bis_sparky', 533.3333, 800e6], + ['800_600.in', '800_MHz'+sep+'600.in_sparky', 600.0000, 800e6], + ['800_666.67.in', '800_MHz'+sep+'666.67.in_sparky', 666.6666, 800e6], + ['800_733.33.in', '800_MHz'+sep+'733.33.in_sparky', 733.3333, 800e6], + ['800_800.in', '800_MHz'+sep+'800.in_sparky', 800.0000, 800e6], + ['800_866.67.in', '800_MHz'+sep+'866.67.in_sparky', 866.6666, 800e6], + ['800_933.33.in', '800_MHz'+sep+'933.33.in_sparky', 933.3333, 800e6], + ['800_933.33.in.bis', '800_MHz'+sep+'933.33.in.bis_sparky', 933.3333, 800e6], + ['800_1000.in', '800_MHz'+sep+'1000.in_sparky', 1000.0000, 800e6] +] + +# Loop over the spectra. +for id, file, cpmg_frq, H_frq in data: + # Load the peak intensities. + spectrum.read_intensities(file=file, dir=data_path, spectrum_id=id, int_method='height') + + # Set the relaxation dispersion CPMG frequencies. + relax_disp.cpmg_frq(spectrum_id=id, cpmg_frq=cpmg_frq) + + # Set the NMR field strength of the spectrum. + frq.set(id=id, frq=H_frq) + + # Relaxation dispersion CPMG constant time delay T (in s). + relax_disp.relax_time(spectrum_id=id, time=0.030) + +# Specify the duplicated spectra. +spectrum.replicated(spectrum_ids=['500_133.33.in', '500_133.33.in.bis']) +spectrum.replicated(spectrum_ids=['500_533.33.in', '500_533.33.in.bis']) +spectrum.replicated(spectrum_ids=['500_933.33.in', '500_933.33.in.bis']) +spectrum.replicated(spectrum_ids=['800_133.33.in', '800_133.33.in.bis']) +spectrum.replicated(spectrum_ids=['800_533.33.in', '800_533.33.in.bis']) +spectrum.replicated(spectrum_ids=['800_933.33.in', '800_933.33.in.bis']) + +# Peak intensity error analysis. +spectrum.error_analysis(subset=['500_reference.in', '500_66.667.in', '500_133.33.in', '500_133.33.in.bis', '500_200.in', '500_266.67.in', '500_333.33.in', '500_400.in', '500_466.67.in', '500_533.33.in', '500_533.33.in.bis', '500_600.in', '500_666.67.in', '500_733.33.in', '500_800.in', '500_866.67.in', '500_933.33.in', '500_933.33.in.bis', '500_1000.in']) +spectrum.error_analysis(subset=['800_reference.in', '800_66.667.in', '800_133.33.in', '800_133.33.in.bis', '800_200.in', '800_266.67.in', '800_333.33.in', '800_400.in', '800_466.67.in', '800_533.33.in', '800_533.33.in.bis', '800_600.in', '800_666.67.in', '800_733.33.in', '800_800.in', '800_866.67.in', '800_933.33.in', '800_933.33.in.bis', '800_1000.in']) + +# Deselect unresolved spins. +deselect.read(file='unresolved', dir=data_path+sep+'500_MHz', res_num_col=1) +deselect.read(file='unresolved', dir=data_path+sep+'800_MHz', res_num_col=1) + + +# Auto-analysis execution. +########################## + +# Do not change! +Relax_disp(pipe_name=pipe_name, pipe_bundle=pipe_bundle, results_dir=RESULTS_DIR, models=MODELS, grid_inc=GRID_INC, mc_sim_num=MC_NUM) + +# Save the program state. +state.save('state', force=True)