The following is a verbatim copy of the contents of the sample_scripts/relax_disp/cpmg_analysis.py file. You will need to first copy this script to a dedicated analysis directory containing peak lists, a sequence or PDB file and a file listing unresolved spin systems, and then modify its contents to suit your specific analysis. The script contents are:
"""Script for performing a full relaxation dispersion analysis using CPMG-type data."""
# Python module imports.
from os import sep
# relax module imports.
from auto_analyses.relax_disp import Relax_disp
# Analysis variables.
#####################
# The dispersion models.
MODELS = ['R2eff', 'No Rex', 'CR72', 'N2 CPMG 2-site expanded']
# The grid search size (the number of increments per dimension).
GRID_INC = 11
# The number of Monte Carlo simulations to be used for error analysis at the end of the analysis.
MC_NUM = 500
# The results directory.
RESULTS_DIR = '.'
# The model selection technique to use.
MODSEL = 'AIC'
# The flag for only using numeric models in the final model selection.
NUMERIC_ONLY = False
# The R2eff value in rad/s by which to judge insignificance. If the maximum difference between two points on all dispersion curves for a spin is less than this value, that spin will be deselected.
INSIGNIFICANCE = 1.0
# 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')
# Load the sequence.
sequence.read('fake_sequence.in', res_num_col=1, res_name_col=2)
# Name the spins so they can be matched to the assignments, and the isotope for field strength scaling.
spin.name(name='N')
spin.isotope(isotope='15N')
# 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, spectrum_id=id, int_method='height')
# Set the relaxation dispersion experiment type.
relax_disp.exp_type(spectrum_id=id, exp_type='SQ CPMG')
# Set the relaxation dispersion CPMG frequencies.
relax_disp.cpmg_setup(spectrum_id=id, cpmg_frq=cpmg_frq)
# Set the NMR field strength of the spectrum.
spectrometer.frequency(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='500_MHz', res_num_col=1)
deselect.read(file='unresolved', dir='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, modsel=MODSEL, insignificance=INSIGNIFICANCE, numeric_only=NUMERIC_ONLY)