Open main menu

Background

This is a tutorial for Lau and Kaare in SBiNLab, and hopefully others.

To get inspiration of example scripts files and see how the protocol is performed, have a look here:

  • nmr-relax-code/test_suite/system_tests/scripts/model_free/dauvergne_protocol.py
  • nmr-relax-code/auto_analyses/dauvergne_protocol.py

Scripts

To get the protocol to work, we need to

  • Load a PDB structure
  • Assign the "data structure" in relax through spin-assignments
  • Assign necessary "information" as isotope information to each spin-assignment
  • Read "R1, R2 and NOE" for different magnet field strengths
  • Calculate some properties
  • Check the data
  • Run the protocol

To work most efficiently, it is important to perform each step 1 by 1, and closely inspect the log for any errors.

For similar tutorial, have a look at: Tutorial for model-free analysis sam mahdi

Test load of PDB

First we just want to test to read the PDB file.

01_read_pdb.py

# Python module imports.
from time import asctime, localtime
import os

# relax module imports.
from auto_analyses.dauvergne_protocol import dAuvergne_protocol

# Set up the data pipe.
#######################

# The following sequence of user function calls can be changed as needed.

# Create the data pipe.
bundle_name = "mf (%s)" % asctime(localtime())
name = "origin"
pipe.create(name, 'mf', bundle=bundle_name)

# Load the PDB file.
structure.read_pdb('energy_1.pdb', set_mol_name='TEMP', read_model=1)

# Set up the 15N and 1H spins (both backbone and Trp indole sidechains).
structure.load_spins('@N', ave_pos=True)
structure.load_spins('@NE1', ave_pos=True)
structure.load_spins('@H', ave_pos=True)
structure.load_spins('@HE1', ave_pos=True)

# Assign isotopes
spin.isotope('15N', spin_id='@N*')
spin.isotope('1H', spin_id='@H*')

Run with

relax 01_read_pdb.py -t 01_read_pdb.log
Output from logfile
script = '01_read_pdb.py'
----------------------------------------------------------------------------------------------------
# Python module imports.
from time import asctime, localtime
import os

# relax module imports.
from auto_analyses.dauvergne_protocol import dAuvergne_protocol

# Set up the data pipe.
#######################

# The following sequence of user function calls can be changed as needed.

# Create the data pipe.
bundle_name = "mf (%s)" % asctime(localtime())
name = "origin"
pipe.create(name, 'mf', bundle=bundle_name)

# Load the PDB file.
structure.read_pdb('energy_1.pdb', set_mol_name='TEMP', read_model=1)

# Set up the 15N and 1H spins (both backbone and Trp indole sidechains).
structure.load_spins('@N', ave_pos=True)
structure.load_spins('@NE1', ave_pos=True)
structure.load_spins('@H', ave_pos=True)
structure.load_spins('@HE1', ave_pos=True)

# Assign isotopes
spin.isotope('15N', spin_id='@N*')
spin.isotope('1H', spin_id='@H*')

----------------------------------------------------------------------------------------------------

relax> pipe.create(pipe_name='origin', pipe_type='mf', bundle='mf (Fri Oct 13 17:44:18 2017)')

relax> structure.read_pdb(file='energy_1.pdb', dir=None, read_mol=None, set_mol_name='TEMP', read_model=1, set_model_num=None, alt_loc=None, verbosity=1, merge=False)

Internal relax PDB parser.
Opening the file 'energy_1.pdb' for reading.
RelaxWarning: Cannot determine the element associated with atom 'X'.
RelaxWarning: Cannot determine the element associated with atom 'Z'.
RelaxWarning: Cannot determine the element associated with atom 'OO'.
RelaxWarning: Cannot determine the element associated with atom 'OO2'.
Adding molecule 'TEMP' to model 1 (from the original molecule number 1 of model 1).

relax> structure.load_spins(spin_id='@N', from_mols=None, mol_name_target=None, ave_pos=True, spin_num=True)
Adding the following spins to the relax data store.

# mol_name    res_num    res_name    spin_num    spin_name    
REMOVED FROM DISPLAY

relax> structure.load_spins(spin_id='@NE1', from_mols=None, mol_name_target=None, ave_pos=True, spin_num=True)
Adding the following spins to the relax data store.

# mol_name    res_num    res_name    spin_num    spin_name    
REMOVED FROM DISPLAY

relax> structure.load_spins(spin_id='@H', from_mols=None, mol_name_target=None, ave_pos=True, spin_num=True)
Adding the following spins to the relax data store.

# mol_name    res_num    res_name    spin_num    spin_name    
REMOVED FROM DISPLAY

relax> structure.load_spins(spin_id='@HE1', from_mols=None, mol_name_target=None, ave_pos=True, spin_num=True)
Adding the following spins to the relax data store.

# mol_name    res_num    res_name    spin_num    spin_name    
REMOVED FROM DISPLAY

relax> spin.isotope(isotope='15N', spin_id='@N*', force=False)

relax> spin.isotope(isotope='1H', spin_id='@H*', force=False)

Test load of data

That looked to go fine, so let us try to just load data.

02_read_data.py

# Python module imports.
from time import asctime, localtime
import os

# relax module imports.
from auto_analyses.dauvergne_protocol import dAuvergne_protocol

# Set up the data pipe.
#######################

# The following sequence of user function calls can be changed as needed.

# Create the data pipe.
bundle_name = "mf (%s)" % asctime(localtime())
name = "origin"
pipe.create(name, 'mf', bundle=bundle_name)

# Load the PDB file.
structure.read_pdb('energy_1.pdb', set_mol_name='TEMP', read_model=1)

# Set up the 15N and 1H spins (both backbone and Trp indole sidechains).
structure.load_spins('@N', ave_pos=True)
structure.load_spins('@NE1', ave_pos=True)
structure.load_spins('@H', ave_pos=True)
structure.load_spins('@HE1', ave_pos=True)

# Assign isotopes
spin.isotope('15N', spin_id='@N*')
spin.isotope('1H', spin_id='@H*')

# Load the relaxation data.
relax_data.read(ri_id='R1_600',  ri_type='R1',  frq=600.17*1e6, file='R1_600MHz_new_model_free.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='R2_600',  ri_type='R2',  frq=600.17*1e6, file='R2_600MHz_new_model_free.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='NOE_600',  ri_type='NOE',  frq=600.17*1e6, file='NOE_600MHz_new.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='R1_750',  ri_type='R1',  frq=750.06*1e6, file='R1_750MHz_model_free.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='R2_750',  ri_type='R2',  frq=750.06*1e6, file='R2_750MHz_model_free.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='NOE_750', ri_type='NOE', frq=750.06*1e6, file='NOE_750MHz.dat', mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)

# Define the magnetic dipole-dipole relaxation interaction.
interatom.define(spin_id1='@N', spin_id2='@H', direct_bond=True)
interatom.define(spin_id1='@NE1', spin_id2='@HE1', direct_bond=True)
interatom.set_dist(spin_id1='@N*', spin_id2='@H*', ave_dist=1.02 * 1e-10)
interatom.unit_vectors()

# Define the chemical shift relaxation interaction.
value.set(-172 * 1e-6, 'csa', spin_id='@N*')

Run with

relax 02_read_data.py -t 02_read_data.log
Output from logfile
script = '02_read_data.py'
----------------------------------------------------------------------------------------------------
# Python module imports.
from time import asctime, localtime
import os

# relax module imports.
from auto_analyses.dauvergne_protocol import dAuvergne_protocol

# Set up the data pipe.
#######################

# The following sequence of user function calls can be changed as needed.

# Create the data pipe.
bundle_name = "mf (%s)" % asctime(localtime())
name = "origin"
pipe.create(name, 'mf', bundle=bundle_name)

# Load the PDB file.
structure.read_pdb('energy_1.pdb', set_mol_name='TEMP', read_model=1)

# Set up the 15N and 1H spins (both backbone and Trp indole sidechains).
structure.load_spins('@N', ave_pos=True)
structure.load_spins('@NE1', ave_pos=True)
structure.load_spins('@H', ave_pos=True)
structure.load_spins('@HE1', ave_pos=True)

# Assign isotopes
spin.isotope('15N', spin_id='@N*')
spin.isotope('1H', spin_id='@H*')

# Load the relaxation data.
relax_data.read(ri_id='R1_600',  ri_type='R1',  frq=600.17*1e6, file='R1_600MHz_new_model_free.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='R2_600',  ri_type='R2',  frq=600.17*1e6, file='R2_600MHz_new_model_free.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='NOE_600',  ri_type='NOE',  frq=600.17*1e6, file='NOE_600MHz_new.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='R1_750',  ri_type='R1',  frq=750.06*1e6, file='R1_750MHz_model_free.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='R2_750',  ri_type='R2',  frq=750.06*1e6, file='R2_750MHz_model_free.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='NOE_750', ri_type='NOE', frq=750.06*1e6, file='NOE_750MHz.dat', mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)

# Define the magnetic dipole-dipole relaxation interaction.
interatom.define(spin_id1='@N', spin_id2='@H', direct_bond=True)
interatom.define(spin_id1='@NE1', spin_id2='@HE1', direct_bond=True)
interatom.set_dist(spin_id1='@N*', spin_id2='@H*', ave_dist=1.02 * 1e-10)
interatom.unit_vectors()

# Define the chemical shift relaxation interaction.
value.set(-172 * 1e-6, 'csa', spin_id='@N*')

----------------------------------------------------------------------------------------------------

relax> pipe.create(pipe_name='origin', pipe_type='mf', bundle='mf (Fri Oct 13 17:51:28 2017)')

relax> structure.read_pdb(file='energy_1.pdb', dir=None, read_mol=None, set_mol_name='TEMP', read_model=1, set_model_num=None, alt_loc=None, verbosity=1, merge=False)

Internal relax PDB parser.
Opening the file 'energy_1.pdb' for reading.
RelaxWarning: Cannot determine the element associated with atom 'X'.
RelaxWarning: Cannot determine the element associated with atom 'Z'.
RelaxWarning: Cannot determine the element associated with atom 'OO'.
RelaxWarning: Cannot determine the element associated with atom 'OO2'.
Adding molecule 'TEMP' to model 1 (from the original molecule number 1 of model 1).

relax> structure.load_spins(spin_id='@N', from_mols=None, mol_name_target=None, ave_pos=True, spin_num=True)
Adding the following spins to the relax data store.

# mol_name    res_num    res_name    spin_num    spin_name    
REMOVED FROM DISPLAY

relax> structure.load_spins(spin_id='@NE1', from_mols=None, mol_name_target=None, ave_pos=True, spin_num=True)
Adding the following spins to the relax data store.

# mol_name    res_num    res_name    spin_num    spin_name    
REMOVED FROM DISPLAY

relax> structure.load_spins(spin_id='@H', from_mols=None, mol_name_target=None, ave_pos=True, spin_num=True)
Adding the following spins to the relax data store.

# mol_name    res_num    res_name    spin_num    spin_name    
REMOVED FROM DISPLAY

relax> structure.load_spins(spin_id='@HE1', from_mols=None, mol_name_target=None, ave_pos=True, spin_num=True)
Adding the following spins to the relax data store.

# mol_name    res_num    res_name    spin_num    spin_name    
REMOVED FROM DISPLAY

relax> spin.isotope(isotope='15N', spin_id='@N*', force=False)

relax> spin.isotope(isotope='1H', spin_id='@H*', force=False)

relax> relax_data.read(ri_id='R1_600', ri_type='R1', frq=600170000.0, file='R1_600MHz_new_model_free.dat', dir=None, spin_id_col=None, mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7, sep=None, spin_id=None)
Opening the file 'R1_600MHz_new_model_free.dat' for reading.

The following 600.17 MHz R1 relaxation data with the ID 'R1_600' has been loaded into the relax data store:

# Spin_ID          Value       Error       
REMOVED FROM DISPLAY    

relax> relax_data.read(ri_id='R2_600', ri_type='R2', frq=600170000.0, file='R2_600MHz_new_model_free.dat', dir=None, spin_id_col=None, mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7, sep=None, spin_id=None)
Opening the file 'R2_600MHz_new_model_free.dat' for reading.

The following 600.17 MHz R2 relaxation data with the ID 'R2_600' has been loaded into the relax data store:

# Spin_ID          Value        Error       
REMOVED FROM DISPLAY  

relax> relax_data.read(ri_id='NOE_600', ri_type='NOE', frq=600170000.0, file='NOE_600MHz_new.dat', dir=None, spin_id_col=None, mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7, sep=None, spin_id=None)
Opening the file 'NOE_600MHz_new.dat' for reading.

The following 600.17 MHz NOE relaxation data with the ID 'NOE_600' has been loaded into the relax data store:

# Spin_ID          Value        Error    
REMOVED FROM DISPLAY  

relax> relax_data.read(ri_id='R1_750', ri_type='R1', frq=750060000.0, file='R1_750MHz_model_free.dat', dir=None, spin_id_col=None, mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7, sep=None, spin_id=None)
Opening the file 'R1_750MHz_model_free.dat' for reading.

The following 750.06 MHz R1 relaxation data with the ID 'R1_750' has been loaded into the relax data store:

# Spin_ID          Value       Error       
REMOVED FROM DISPLAY  

relax> relax_data.read(ri_id='R2_750', ri_type='R2', frq=750060000.0, file='R2_750MHz_model_free.dat', dir=None, spin_id_col=None, mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7, sep=None, spin_id=None)
Opening the file 'R2_750MHz_model_free.dat' for reading.

The following 750.06 MHz R2 relaxation data with the ID 'R2_750' has been loaded into the relax data store:

# Spin_ID          Value        Error       
REMOVED FROM DISPLAY    

relax> relax_data.read(ri_id='NOE_750', ri_type='NOE', frq=750060000.0, file='NOE_750MHz.dat', dir=None, spin_id_col=None, mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7, sep=None, spin_id=None)
Opening the file 'NOE_750MHz.dat' for reading.

The following 750.06 MHz NOE relaxation data with the ID 'NOE_750' has been loaded into the relax data store:

# Spin_ID          Value        Error    
REMOVED FROM DISPLAY    

relax> interatom.define(spin_id1='@N', spin_id2='@H', direct_bond=True, spin_selection=True, pipe=None)
Interatomic interactions are now defined for the following spins:

# Spin_ID_1         Spin_ID_2           
'#TEMP:3@N'      '#TEMP:3@H'      
'#TEMP:4@N'      '#TEMP:4@H'      
'#TEMP:5@N'      '#TEMP:5@H'      
'#TEMP:6@N'      '#TEMP:6@H'      
'#TEMP:7@N'      '#TEMP:7@H'      
'#TEMP:8@N'      '#TEMP:8@H'      
'#TEMP:9@N'      '#TEMP:9@H'      
'#TEMP:10@N'     '#TEMP:10@H'     
'#TEMP:11@N'     '#TEMP:11@H'     
'#TEMP:13@N'     '#TEMP:13@H'     
'#TEMP:14@N'     '#TEMP:14@H'     
'#TEMP:15@N'     '#TEMP:15@H'     
'#TEMP:16@N'     '#TEMP:16@H'     
'#TEMP:17@N'     '#TEMP:17@H'     
'#TEMP:18@N'     '#TEMP:18@H'     
'#TEMP:19@N'     '#TEMP:19@H'     
'#TEMP:20@N'     '#TEMP:20@H'     
'#TEMP:21@N'     '#TEMP:21@H'     
'#TEMP:22@N'     '#TEMP:22@H'     
'#TEMP:23@N'     '#TEMP:23@H'     
'#TEMP:24@N'     '#TEMP:24@H'     
'#TEMP:25@N'     '#TEMP:25@H'     
'#TEMP:26@N'     '#TEMP:26@H'     
'#TEMP:27@N'     '#TEMP:27@H'     
'#TEMP:28@N'     '#TEMP:28@H'     
'#TEMP:29@N'     '#TEMP:29@H'     
'#TEMP:30@N'     '#TEMP:30@H'     
'#TEMP:31@N'     '#TEMP:31@H'     
'#TEMP:32@N'     '#TEMP:32@H'     
'#TEMP:33@N'     '#TEMP:33@H'     
'#TEMP:34@N'     '#TEMP:34@H'     
'#TEMP:35@N'     '#TEMP:35@H'     
'#TEMP:36@N'     '#TEMP:36@H'     
'#TEMP:37@N'     '#TEMP:37@H'     
'#TEMP:38@N'     '#TEMP:38@H'     
'#TEMP:39@N'     '#TEMP:39@H'     
'#TEMP:40@N'     '#TEMP:40@H'     
'#TEMP:41@N'     '#TEMP:41@H'     
'#TEMP:42@N'     '#TEMP:42@H'     
'#TEMP:43@N'     '#TEMP:43@H'     
'#TEMP:45@N'     '#TEMP:45@H'     
'#TEMP:46@N'     '#TEMP:46@H'     
'#TEMP:47@N'     '#TEMP:47@H'     
'#TEMP:48@N'     '#TEMP:48@H'     
'#TEMP:49@N'     '#TEMP:49@H'     
'#TEMP:50@N'     '#TEMP:50@H'     
'#TEMP:51@N'     '#TEMP:51@H'     
'#TEMP:52@N'     '#TEMP:52@H'     
'#TEMP:53@N'     '#TEMP:53@H'     
'#TEMP:54@N'     '#TEMP:54@H'     
'#TEMP:55@N'     '#TEMP:55@H'     
'#TEMP:56@N'     '#TEMP:56@H'     
'#TEMP:57@N'     '#TEMP:57@H'     
'#TEMP:58@N'     '#TEMP:58@H'     
'#TEMP:59@N'     '#TEMP:59@H'     
'#TEMP:60@N'     '#TEMP:60@H'     
'#TEMP:61@N'     '#TEMP:61@H'     
'#TEMP:62@N'     '#TEMP:62@H'     
'#TEMP:63@N'     '#TEMP:63@H'     
'#TEMP:64@N'     '#TEMP:64@H'     
'#TEMP:65@N'     '#TEMP:65@H'     
'#TEMP:66@N'     '#TEMP:66@H'     
'#TEMP:67@N'     '#TEMP:67@H'     
'#TEMP:68@N'     '#TEMP:68@H'     
'#TEMP:69@N'     '#TEMP:69@H'     
'#TEMP:70@N'     '#TEMP:70@H'     
'#TEMP:71@N'     '#TEMP:71@H'     
'#TEMP:72@N'     '#TEMP:72@H'     
'#TEMP:73@N'     '#TEMP:73@H'     
'#TEMP:74@N'     '#TEMP:74@H'     
'#TEMP:75@N'     '#TEMP:75@H'     
'#TEMP:76@N'     '#TEMP:76@H'     
'#TEMP:77@N'     '#TEMP:77@H'     
'#TEMP:78@N'     '#TEMP:78@H'     
'#TEMP:79@N'     '#TEMP:79@H'     
'#TEMP:80@N'     '#TEMP:80@H'     
'#TEMP:81@N'     '#TEMP:81@H'     
'#TEMP:82@N'     '#TEMP:82@H'     
'#TEMP:83@N'     '#TEMP:83@H'     
'#TEMP:84@N'     '#TEMP:84@H'     
'#TEMP:85@N'     '#TEMP:85@H'     
'#TEMP:87@N'     '#TEMP:87@H'     
'#TEMP:88@N'     '#TEMP:88@H'     
'#TEMP:89@N'     '#TEMP:89@H'     
'#TEMP:90@N'     '#TEMP:90@H'     
'#TEMP:91@N'     '#TEMP:91@H'     
'#TEMP:93@N'     '#TEMP:93@H'     
'#TEMP:94@N'     '#TEMP:94@H'     
'#TEMP:95@N'     '#TEMP:95@H'     
'#TEMP:96@N'     '#TEMP:96@H'     
'#TEMP:97@N'     '#TEMP:97@H'     
'#TEMP:98@N'     '#TEMP:98@H'     
'#TEMP:99@N'     '#TEMP:99@H'     
'#TEMP:100@N'    '#TEMP:100@H'    
'#TEMP:101@N'    '#TEMP:101@H'    
'#TEMP:102@N'    '#TEMP:102@H'    
'#TEMP:103@N'    '#TEMP:103@H'    
'#TEMP:104@N'    '#TEMP:104@H'    
'#TEMP:105@N'    '#TEMP:105@H'    
'#TEMP:106@N'    '#TEMP:106@H'    
'#TEMP:107@N'    '#TEMP:107@H'    
'#TEMP:108@N'    '#TEMP:108@H'    
'#TEMP:109@N'    '#TEMP:109@H'    
'#TEMP:110@N'    '#TEMP:110@H'    
'#TEMP:111@N'    '#TEMP:111@H'    
'#TEMP:112@N'    '#TEMP:112@H'    
'#TEMP:113@N'    '#TEMP:113@H'    
'#TEMP:114@N'    '#TEMP:114@H'    
'#TEMP:115@N'    '#TEMP:115@H'    
'#TEMP:116@N'    '#TEMP:116@H'    
'#TEMP:117@N'    '#TEMP:117@H'    
'#TEMP:118@N'    '#TEMP:118@H'    
'#TEMP:119@N'    '#TEMP:119@H'    
'#TEMP:120@N'    '#TEMP:120@H'    
'#TEMP:121@N'    '#TEMP:121@H'    
'#TEMP:122@N'    '#TEMP:122@H'    
'#TEMP:123@N'    '#TEMP:123@H'    
'#TEMP:124@N'    '#TEMP:124@H'    
'#TEMP:125@N'    '#TEMP:125@H'    
'#TEMP:127@N'    '#TEMP:127@H'    
'#TEMP:128@N'    '#TEMP:128@H'    
'#TEMP:129@N'    '#TEMP:129@H'    
'#TEMP:130@N'    '#TEMP:130@H'    
'#TEMP:131@N'    '#TEMP:131@H'    
'#TEMP:132@N'    '#TEMP:132@H'    
'#TEMP:133@N'    '#TEMP:133@H'    
'#TEMP:134@N'    '#TEMP:134@H'    
'#TEMP:136@N'    '#TEMP:136@H'    
'#TEMP:138@N'    '#TEMP:138@H'    
'#TEMP:139@N'    '#TEMP:139@H'    
'#TEMP:140@N'    '#TEMP:140@H'    
'#TEMP:141@N'    '#TEMP:141@H'    
'#TEMP:142@N'    '#TEMP:142@H'    
'#TEMP:143@N'    '#TEMP:143@H'    
'#TEMP:144@N'    '#TEMP:144@H'    
'#TEMP:145@N'    '#TEMP:145@H'    
'#TEMP:146@N'    '#TEMP:146@H'    
'#TEMP:147@N'    '#TEMP:147@H'    
'#TEMP:148@N'    '#TEMP:148@H'    
'#TEMP:149@N'    '#TEMP:149@H'    
'#TEMP:150@N'    '#TEMP:150@H'    
'#TEMP:151@N'    '#TEMP:151@H'    
'#TEMP:152@N'    '#TEMP:152@H'    
'#TEMP:153@N'    '#TEMP:153@H'    
'#TEMP:154@N'    '#TEMP:154@H'    
'#TEMP:155@N'    '#TEMP:155@H'    
'#TEMP:156@N'    '#TEMP:156@H'    
'#TEMP:157@N'    '#TEMP:157@H'    
'#TEMP:158@N'    '#TEMP:158@H'    
'#TEMP:159@N'    '#TEMP:159@H'    

relax> interatom.define(spin_id1='@NE1', spin_id2='@HE1', direct_bond=True, spin_selection=True, pipe=None)
Interatomic interactions are now defined for the following spins:

# Spin_ID_1          Spin_ID_2            
'#TEMP:33@NE1'    '#TEMP:33@HE1'    
'#TEMP:48@NE1'    '#TEMP:48@HE1'    
'#TEMP:49@NE1'    '#TEMP:49@HE1'    
'#TEMP:59@NE1'    '#TEMP:59@HE1'    
'#TEMP:98@NE1'    '#TEMP:98@HE1'    

relax> interatom.set_dist(spin_id1='@N*', spin_id2='@H*', ave_dist=1.0200000000000001e-10, unit='meter')
The following averaged distances have been set:

# Spin_ID_1          Spin_ID_2            Ave_distance(meters)      
'#TEMP:3@N'       '#TEMP:3@H'       1.0200000000000001e-10    
'#TEMP:4@N'       '#TEMP:4@H'       1.0200000000000001e-10    
'#TEMP:5@N'       '#TEMP:5@H'       1.0200000000000001e-10    
'#TEMP:6@N'       '#TEMP:6@H'       1.0200000000000001e-10    
'#TEMP:7@N'       '#TEMP:7@H'       1.0200000000000001e-10    
'#TEMP:8@N'       '#TEMP:8@H'       1.0200000000000001e-10    
'#TEMP:9@N'       '#TEMP:9@H'       1.0200000000000001e-10    
'#TEMP:10@N'      '#TEMP:10@H'      1.0200000000000001e-10    
'#TEMP:11@N'      '#TEMP:11@H'      1.0200000000000001e-10    
'#TEMP:13@N'      '#TEMP:13@H'      1.0200000000000001e-10    
'#TEMP:14@N'      '#TEMP:14@H'      1.0200000000000001e-10    
'#TEMP:15@N'      '#TEMP:15@H'      1.0200000000000001e-10    
'#TEMP:16@N'      '#TEMP:16@H'      1.0200000000000001e-10    
'#TEMP:17@N'      '#TEMP:17@H'      1.0200000000000001e-10    
'#TEMP:18@N'      '#TEMP:18@H'      1.0200000000000001e-10    
'#TEMP:19@N'      '#TEMP:19@H'      1.0200000000000001e-10    
'#TEMP:20@N'      '#TEMP:20@H'      1.0200000000000001e-10    
'#TEMP:21@N'      '#TEMP:21@H'      1.0200000000000001e-10    
'#TEMP:22@N'      '#TEMP:22@H'      1.0200000000000001e-10    
'#TEMP:23@N'      '#TEMP:23@H'      1.0200000000000001e-10    
'#TEMP:24@N'      '#TEMP:24@H'      1.0200000000000001e-10    
'#TEMP:25@N'      '#TEMP:25@H'      1.0200000000000001e-10    
'#TEMP:26@N'      '#TEMP:26@H'      1.0200000000000001e-10    
'#TEMP:27@N'      '#TEMP:27@H'      1.0200000000000001e-10    
'#TEMP:28@N'      '#TEMP:28@H'      1.0200000000000001e-10    
'#TEMP:29@N'      '#TEMP:29@H'      1.0200000000000001e-10    
'#TEMP:30@N'      '#TEMP:30@H'      1.0200000000000001e-10    
'#TEMP:31@N'      '#TEMP:31@H'      1.0200000000000001e-10    
'#TEMP:32@N'      '#TEMP:32@H'      1.0200000000000001e-10    
'#TEMP:33@N'      '#TEMP:33@H'      1.0200000000000001e-10    
'#TEMP:34@N'      '#TEMP:34@H'      1.0200000000000001e-10    
'#TEMP:35@N'      '#TEMP:35@H'      1.0200000000000001e-10    
'#TEMP:36@N'      '#TEMP:36@H'      1.0200000000000001e-10    
'#TEMP:37@N'      '#TEMP:37@H'      1.0200000000000001e-10    
'#TEMP:38@N'      '#TEMP:38@H'      1.0200000000000001e-10    
'#TEMP:39@N'      '#TEMP:39@H'      1.0200000000000001e-10    
'#TEMP:40@N'      '#TEMP:40@H'      1.0200000000000001e-10    
'#TEMP:41@N'      '#TEMP:41@H'      1.0200000000000001e-10    
'#TEMP:42@N'      '#TEMP:42@H'      1.0200000000000001e-10    
'#TEMP:43@N'      '#TEMP:43@H'      1.0200000000000001e-10    
'#TEMP:45@N'      '#TEMP:45@H'      1.0200000000000001e-10    
'#TEMP:46@N'      '#TEMP:46@H'      1.0200000000000001e-10    
'#TEMP:47@N'      '#TEMP:47@H'      1.0200000000000001e-10    
'#TEMP:48@N'      '#TEMP:48@H'      1.0200000000000001e-10    
'#TEMP:49@N'      '#TEMP:49@H'      1.0200000000000001e-10    
'#TEMP:50@N'      '#TEMP:50@H'      1.0200000000000001e-10    
'#TEMP:51@N'      '#TEMP:51@H'      1.0200000000000001e-10    
'#TEMP:52@N'      '#TEMP:52@H'      1.0200000000000001e-10    
'#TEMP:53@N'      '#TEMP:53@H'      1.0200000000000001e-10    
'#TEMP:54@N'      '#TEMP:54@H'      1.0200000000000001e-10    
'#TEMP:55@N'      '#TEMP:55@H'      1.0200000000000001e-10    
'#TEMP:56@N'      '#TEMP:56@H'      1.0200000000000001e-10    
'#TEMP:57@N'      '#TEMP:57@H'      1.0200000000000001e-10    
'#TEMP:58@N'      '#TEMP:58@H'      1.0200000000000001e-10    
'#TEMP:59@N'      '#TEMP:59@H'      1.0200000000000001e-10    
'#TEMP:60@N'      '#TEMP:60@H'      1.0200000000000001e-10    
'#TEMP:61@N'      '#TEMP:61@H'      1.0200000000000001e-10    
'#TEMP:62@N'      '#TEMP:62@H'      1.0200000000000001e-10    
'#TEMP:63@N'      '#TEMP:63@H'      1.0200000000000001e-10    
'#TEMP:64@N'      '#TEMP:64@H'      1.0200000000000001e-10    
'#TEMP:65@N'      '#TEMP:65@H'      1.0200000000000001e-10    
'#TEMP:66@N'      '#TEMP:66@H'      1.0200000000000001e-10    
'#TEMP:67@N'      '#TEMP:67@H'      1.0200000000000001e-10    
'#TEMP:68@N'      '#TEMP:68@H'      1.0200000000000001e-10    
'#TEMP:69@N'      '#TEMP:69@H'      1.0200000000000001e-10    
'#TEMP:70@N'      '#TEMP:70@H'      1.0200000000000001e-10    
'#TEMP:71@N'      '#TEMP:71@H'      1.0200000000000001e-10    
'#TEMP:72@N'      '#TEMP:72@H'      1.0200000000000001e-10    
'#TEMP:73@N'      '#TEMP:73@H'      1.0200000000000001e-10    
'#TEMP:74@N'      '#TEMP:74@H'      1.0200000000000001e-10    
'#TEMP:75@N'      '#TEMP:75@H'      1.0200000000000001e-10    
'#TEMP:76@N'      '#TEMP:76@H'      1.0200000000000001e-10    
'#TEMP:77@N'      '#TEMP:77@H'      1.0200000000000001e-10    
'#TEMP:78@N'      '#TEMP:78@H'      1.0200000000000001e-10    
'#TEMP:79@N'      '#TEMP:79@H'      1.0200000000000001e-10    
'#TEMP:80@N'      '#TEMP:80@H'      1.0200000000000001e-10    
'#TEMP:81@N'      '#TEMP:81@H'      1.0200000000000001e-10    
'#TEMP:82@N'      '#TEMP:82@H'      1.0200000000000001e-10    
'#TEMP:83@N'      '#TEMP:83@H'      1.0200000000000001e-10    
'#TEMP:84@N'      '#TEMP:84@H'      1.0200000000000001e-10    
'#TEMP:85@N'      '#TEMP:85@H'      1.0200000000000001e-10    
'#TEMP:87@N'      '#TEMP:87@H'      1.0200000000000001e-10    
'#TEMP:88@N'      '#TEMP:88@H'      1.0200000000000001e-10    
'#TEMP:89@N'      '#TEMP:89@H'      1.0200000000000001e-10    
'#TEMP:90@N'      '#TEMP:90@H'      1.0200000000000001e-10    
'#TEMP:91@N'      '#TEMP:91@H'      1.0200000000000001e-10    
'#TEMP:93@N'      '#TEMP:93@H'      1.0200000000000001e-10    
'#TEMP:94@N'      '#TEMP:94@H'      1.0200000000000001e-10    
'#TEMP:95@N'      '#TEMP:95@H'      1.0200000000000001e-10    
'#TEMP:96@N'      '#TEMP:96@H'      1.0200000000000001e-10    
'#TEMP:97@N'      '#TEMP:97@H'      1.0200000000000001e-10    
'#TEMP:98@N'      '#TEMP:98@H'      1.0200000000000001e-10    
'#TEMP:99@N'      '#TEMP:99@H'      1.0200000000000001e-10    
'#TEMP:100@N'     '#TEMP:100@H'     1.0200000000000001e-10    
'#TEMP:101@N'     '#TEMP:101@H'     1.0200000000000001e-10    
'#TEMP:102@N'     '#TEMP:102@H'     1.0200000000000001e-10    
'#TEMP:103@N'     '#TEMP:103@H'     1.0200000000000001e-10    
'#TEMP:104@N'     '#TEMP:104@H'     1.0200000000000001e-10    
'#TEMP:105@N'     '#TEMP:105@H'     1.0200000000000001e-10    
'#TEMP:106@N'     '#TEMP:106@H'     1.0200000000000001e-10    
'#TEMP:107@N'     '#TEMP:107@H'     1.0200000000000001e-10    
'#TEMP:108@N'     '#TEMP:108@H'     1.0200000000000001e-10    
'#TEMP:109@N'     '#TEMP:109@H'     1.0200000000000001e-10    
'#TEMP:110@N'     '#TEMP:110@H'     1.0200000000000001e-10    
'#TEMP:111@N'     '#TEMP:111@H'     1.0200000000000001e-10    
'#TEMP:112@N'     '#TEMP:112@H'     1.0200000000000001e-10    
'#TEMP:113@N'     '#TEMP:113@H'     1.0200000000000001e-10    
'#TEMP:114@N'     '#TEMP:114@H'     1.0200000000000001e-10    
'#TEMP:115@N'     '#TEMP:115@H'     1.0200000000000001e-10    
'#TEMP:116@N'     '#TEMP:116@H'     1.0200000000000001e-10    
'#TEMP:117@N'     '#TEMP:117@H'     1.0200000000000001e-10    
'#TEMP:118@N'     '#TEMP:118@H'     1.0200000000000001e-10    
'#TEMP:119@N'     '#TEMP:119@H'     1.0200000000000001e-10    
'#TEMP:120@N'     '#TEMP:120@H'     1.0200000000000001e-10    
'#TEMP:121@N'     '#TEMP:121@H'     1.0200000000000001e-10    
'#TEMP:122@N'     '#TEMP:122@H'     1.0200000000000001e-10    
'#TEMP:123@N'     '#TEMP:123@H'     1.0200000000000001e-10    
'#TEMP:124@N'     '#TEMP:124@H'     1.0200000000000001e-10    
'#TEMP:125@N'     '#TEMP:125@H'     1.0200000000000001e-10    
'#TEMP:127@N'     '#TEMP:127@H'     1.0200000000000001e-10    
'#TEMP:128@N'     '#TEMP:128@H'     1.0200000000000001e-10    
'#TEMP:129@N'     '#TEMP:129@H'     1.0200000000000001e-10    
'#TEMP:130@N'     '#TEMP:130@H'     1.0200000000000001e-10    
'#TEMP:131@N'     '#TEMP:131@H'     1.0200000000000001e-10    
'#TEMP:132@N'     '#TEMP:132@H'     1.0200000000000001e-10    
'#TEMP:133@N'     '#TEMP:133@H'     1.0200000000000001e-10    
'#TEMP:134@N'     '#TEMP:134@H'     1.0200000000000001e-10    
'#TEMP:136@N'     '#TEMP:136@H'     1.0200000000000001e-10    
'#TEMP:138@N'     '#TEMP:138@H'     1.0200000000000001e-10    
'#TEMP:139@N'     '#TEMP:139@H'     1.0200000000000001e-10    
'#TEMP:140@N'     '#TEMP:140@H'     1.0200000000000001e-10    
'#TEMP:141@N'     '#TEMP:141@H'     1.0200000000000001e-10    
'#TEMP:142@N'     '#TEMP:142@H'     1.0200000000000001e-10    
'#TEMP:143@N'     '#TEMP:143@H'     1.0200000000000001e-10    
'#TEMP:144@N'     '#TEMP:144@H'     1.0200000000000001e-10    
'#TEMP:145@N'     '#TEMP:145@H'     1.0200000000000001e-10    
'#TEMP:146@N'     '#TEMP:146@H'     1.0200000000000001e-10    
'#TEMP:147@N'     '#TEMP:147@H'     1.0200000000000001e-10    
'#TEMP:148@N'     '#TEMP:148@H'     1.0200000000000001e-10    
'#TEMP:149@N'     '#TEMP:149@H'     1.0200000000000001e-10    
'#TEMP:150@N'     '#TEMP:150@H'     1.0200000000000001e-10    
'#TEMP:151@N'     '#TEMP:151@H'     1.0200000000000001e-10    
'#TEMP:152@N'     '#TEMP:152@H'     1.0200000000000001e-10    
'#TEMP:153@N'     '#TEMP:153@H'     1.0200000000000001e-10    
'#TEMP:154@N'     '#TEMP:154@H'     1.0200000000000001e-10    
'#TEMP:155@N'     '#TEMP:155@H'     1.0200000000000001e-10    
'#TEMP:156@N'     '#TEMP:156@H'     1.0200000000000001e-10    
'#TEMP:157@N'     '#TEMP:157@H'     1.0200000000000001e-10    
'#TEMP:158@N'     '#TEMP:158@H'     1.0200000000000001e-10    
'#TEMP:159@N'     '#TEMP:159@H'     1.0200000000000001e-10    
'#TEMP:33@NE1'    '#TEMP:33@HE1'    1.0200000000000001e-10    
'#TEMP:48@NE1'    '#TEMP:48@HE1'    1.0200000000000001e-10    
'#TEMP:49@NE1'    '#TEMP:49@HE1'    1.0200000000000001e-10    
'#TEMP:59@NE1'    '#TEMP:59@HE1'    1.0200000000000001e-10    
'#TEMP:98@NE1'    '#TEMP:98@HE1'    1.0200000000000001e-10    

relax> interatom.unit_vectors(ave=True)
Averaging all vectors.
Calculated 1 N-H unit vector between the spins '#TEMP:3@N' and '#TEMP:3@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:4@N' and '#TEMP:4@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:5@N' and '#TEMP:5@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:6@N' and '#TEMP:6@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:7@N' and '#TEMP:7@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:8@N' and '#TEMP:8@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:9@N' and '#TEMP:9@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:10@N' and '#TEMP:10@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:11@N' and '#TEMP:11@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:13@N' and '#TEMP:13@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:14@N' and '#TEMP:14@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:15@N' and '#TEMP:15@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:16@N' and '#TEMP:16@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:17@N' and '#TEMP:17@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:18@N' and '#TEMP:18@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:19@N' and '#TEMP:19@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:20@N' and '#TEMP:20@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:21@N' and '#TEMP:21@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:22@N' and '#TEMP:22@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:23@N' and '#TEMP:23@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:24@N' and '#TEMP:24@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:25@N' and '#TEMP:25@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:26@N' and '#TEMP:26@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:27@N' and '#TEMP:27@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:28@N' and '#TEMP:28@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:29@N' and '#TEMP:29@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:30@N' and '#TEMP:30@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:31@N' and '#TEMP:31@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:32@N' and '#TEMP:32@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:33@N' and '#TEMP:33@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:34@N' and '#TEMP:34@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:35@N' and '#TEMP:35@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:36@N' and '#TEMP:36@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:37@N' and '#TEMP:37@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:38@N' and '#TEMP:38@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:39@N' and '#TEMP:39@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:40@N' and '#TEMP:40@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:41@N' and '#TEMP:41@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:42@N' and '#TEMP:42@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:43@N' and '#TEMP:43@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:45@N' and '#TEMP:45@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:46@N' and '#TEMP:46@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:47@N' and '#TEMP:47@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:48@N' and '#TEMP:48@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:49@N' and '#TEMP:49@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:50@N' and '#TEMP:50@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:51@N' and '#TEMP:51@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:52@N' and '#TEMP:52@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:53@N' and '#TEMP:53@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:54@N' and '#TEMP:54@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:55@N' and '#TEMP:55@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:56@N' and '#TEMP:56@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:57@N' and '#TEMP:57@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:58@N' and '#TEMP:58@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:59@N' and '#TEMP:59@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:60@N' and '#TEMP:60@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:61@N' and '#TEMP:61@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:62@N' and '#TEMP:62@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:63@N' and '#TEMP:63@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:64@N' and '#TEMP:64@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:65@N' and '#TEMP:65@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:66@N' and '#TEMP:66@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:67@N' and '#TEMP:67@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:68@N' and '#TEMP:68@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:69@N' and '#TEMP:69@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:70@N' and '#TEMP:70@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:71@N' and '#TEMP:71@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:72@N' and '#TEMP:72@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:73@N' and '#TEMP:73@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:74@N' and '#TEMP:74@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:75@N' and '#TEMP:75@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:76@N' and '#TEMP:76@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:77@N' and '#TEMP:77@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:78@N' and '#TEMP:78@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:79@N' and '#TEMP:79@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:80@N' and '#TEMP:80@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:81@N' and '#TEMP:81@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:82@N' and '#TEMP:82@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:83@N' and '#TEMP:83@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:84@N' and '#TEMP:84@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:85@N' and '#TEMP:85@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:87@N' and '#TEMP:87@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:88@N' and '#TEMP:88@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:89@N' and '#TEMP:89@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:90@N' and '#TEMP:90@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:91@N' and '#TEMP:91@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:93@N' and '#TEMP:93@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:94@N' and '#TEMP:94@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:95@N' and '#TEMP:95@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:96@N' and '#TEMP:96@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:97@N' and '#TEMP:97@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:98@N' and '#TEMP:98@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:99@N' and '#TEMP:99@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:100@N' and '#TEMP:100@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:101@N' and '#TEMP:101@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:102@N' and '#TEMP:102@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:103@N' and '#TEMP:103@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:104@N' and '#TEMP:104@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:105@N' and '#TEMP:105@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:106@N' and '#TEMP:106@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:107@N' and '#TEMP:107@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:108@N' and '#TEMP:108@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:109@N' and '#TEMP:109@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:110@N' and '#TEMP:110@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:111@N' and '#TEMP:111@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:112@N' and '#TEMP:112@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:113@N' and '#TEMP:113@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:114@N' and '#TEMP:114@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:115@N' and '#TEMP:115@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:116@N' and '#TEMP:116@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:117@N' and '#TEMP:117@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:118@N' and '#TEMP:118@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:119@N' and '#TEMP:119@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:120@N' and '#TEMP:120@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:121@N' and '#TEMP:121@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:122@N' and '#TEMP:122@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:123@N' and '#TEMP:123@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:124@N' and '#TEMP:124@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:125@N' and '#TEMP:125@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:127@N' and '#TEMP:127@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:128@N' and '#TEMP:128@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:129@N' and '#TEMP:129@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:130@N' and '#TEMP:130@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:131@N' and '#TEMP:131@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:132@N' and '#TEMP:132@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:133@N' and '#TEMP:133@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:134@N' and '#TEMP:134@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:136@N' and '#TEMP:136@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:138@N' and '#TEMP:138@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:139@N' and '#TEMP:139@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:140@N' and '#TEMP:140@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:141@N' and '#TEMP:141@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:142@N' and '#TEMP:142@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:143@N' and '#TEMP:143@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:144@N' and '#TEMP:144@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:145@N' and '#TEMP:145@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:146@N' and '#TEMP:146@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:147@N' and '#TEMP:147@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:148@N' and '#TEMP:148@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:149@N' and '#TEMP:149@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:150@N' and '#TEMP:150@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:151@N' and '#TEMP:151@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:152@N' and '#TEMP:152@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:153@N' and '#TEMP:153@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:154@N' and '#TEMP:154@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:155@N' and '#TEMP:155@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:156@N' and '#TEMP:156@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:157@N' and '#TEMP:157@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:158@N' and '#TEMP:158@H'.
Calculated 1 N-H unit vector between the spins '#TEMP:159@N' and '#TEMP:159@H'.
Calculated 1 NE1-HE1 unit vector between the spins '#TEMP:33@NE1' and '#TEMP:33@HE1'.
Calculated 1 NE1-HE1 unit vector between the spins '#TEMP:48@NE1' and '#TEMP:48@HE1'.
Calculated 1 NE1-HE1 unit vector between the spins '#TEMP:49@NE1' and '#TEMP:49@HE1'.
Calculated 1 NE1-HE1 unit vector between the spins '#TEMP:59@NE1' and '#TEMP:59@HE1'.
Calculated 1 NE1-HE1 unit vector between the spins '#TEMP:98@NE1' and '#TEMP:98@HE1'.

relax> value.set(val=-0.00017199999999999998, param='csa', index=0, spin_id='@N*', error=False, force=True)

Inspect data in GUI

The GUI can be a good place to inspect the setup and files.

03_save_state_inspect_GUI.py

# Python module imports.
from time import asctime, localtime
import os

# relax module imports.
from auto_analyses.dauvergne_protocol import dAuvergne_protocol

# Set up the data pipe.
#######################

# The following sequence of user function calls can be changed as needed.

# Create the data pipe.
bundle_name = "mf (%s)" % asctime(localtime())
name = "origin"
pipe.create(name, 'mf', bundle=bundle_name)

# Load the PDB file.
structure.read_pdb('energy_1.pdb', set_mol_name='TEMP', read_model=1)

# Set up the 15N and 1H spins (both backbone and Trp indole sidechains).
structure.load_spins('@N', ave_pos=True)
structure.load_spins('@NE1', ave_pos=True)
structure.load_spins('@H', ave_pos=True)
structure.load_spins('@HE1', ave_pos=True)

# Assign isotopes
spin.isotope('15N', spin_id='@N*')
spin.isotope('1H', spin_id='@H*')

# Load the relaxation data.
relax_data.read(ri_id='R1_600',  ri_type='R1',  frq=600.17*1e6, file='R1_600MHz_new_model_free.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='R2_600',  ri_type='R2',  frq=600.17*1e6, file='R2_600MHz_new_model_free.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='NOE_600',  ri_type='NOE',  frq=600.17*1e6, file='NOE_600MHz_new.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='R1_750',  ri_type='R1',  frq=750.06*1e6, file='R1_750MHz_model_free.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='R2_750',  ri_type='R2',  frq=750.06*1e6, file='R2_750MHz_model_free.dat',  mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)
relax_data.read(ri_id='NOE_750', ri_type='NOE', frq=750.06*1e6, file='NOE_750MHz.dat', mol_name_col=1, res_num_col=2, res_name_col=3, spin_num_col=4, spin_name_col=5, data_col=6, error_col=7)

# Define the magnetic dipole-dipole relaxation interaction.
interatom.define(spin_id1='@N', spin_id2='@H', direct_bond=True)
interatom.define(spin_id1='@NE1', spin_id2='@HE1', direct_bond=True)
interatom.set_dist(spin_id1='@N*', spin_id2='@H*', ave_dist=1.02 * 1e-10)
interatom.unit_vectors()

# Define the chemical shift relaxation interaction.
value.set(-172 * 1e-6, 'csa', spin_id='@N*')

# Analysis variables.
#####################
# The model-free models.  Do not change these unless absolutely necessary, the protocol is likely to fail if these are changed.
MF_MODELS = ['m0', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'm9']
#MF_MODELS = ['m1', 'm2']
LOCAL_TM_MODELS = ['tm0', 'tm1', 'tm2', 'tm3', 'tm4', 'tm5', 'tm6', 'tm7', 'tm8', 'tm9']

# The grid search size (the number of increments per dimension).
GRID_INC = 11

# The optimisation technique. Standard is: min_algor='newton' : and cannot be changed in the GUI.
MIN_ALGOR = 'newton'

# The number of Monte Carlo simulations to be used for error analysis at the end of the analysis.
#MC_NUM = 500
MC_NUM = 20

# The diffusion model. Standard is 'Fully automated', which means: DIFF_MODEL=['local_tm', 'sphere', 'prolate', 'oblate', 'ellipsoid', 'final']
# 'local_tm', 'sphere', ''prolate', 'oblate', 'ellipsoid', or 'final'
#DIFF_MODEL = 'local_tm'
DIFF_MODEL = ['local_tm', 'sphere', 'prolate', 'oblate', 'ellipsoid', 'final']

# The maximum number of iterations for the global iteration.  Set to None, then the algorithm iterates until convergence.
MAX_ITER = None

# Automatic looping over all rounds until convergence (must be a boolean value of True or False). Standard is: conv_loop=True : and cannot be changed in the GUI.
CONV_LOOP = True

# Change some minimise opt params. 
# This goes into: minimise.execute(self.min_algor, func_tol=self.opt_func_tol, max_iter=self.opt_max_iterations)
#####################
#dAuvergne_protocol.opt_func_tol = 1e-5 # Standard:  opt_func_tol = 1e-25   
#dAuvergne_protocol.opt_max_iterations = 1000 # Standard: opt_max_iterations = int(1e7)
dAuvergne_protocol.opt_func_tol = 1e-10 # Standard:  opt_func_tol = 1e-25   
dAuvergne_protocol.opt_max_iterations = int(1e5) # Standard: opt_max_iterations = int(1e7)

#####################################

# The results dir.
var = 'result_03'
results_dir = os.getcwd() + os.sep + var

# Save the state before running. Open and check in GUI!
state.save(state=var+'_ini.bz2', dir=results_dir, force=True)

# To check in GUI
# relax -g
# File -> Open relax state
# In folder "result_03" open "result_03_ini.bz2"
# View -> Data pipe editor
# Right click on pipe, and select "Associate with a new auto-analysis"

Run with

relax 03_save_state_inspect_GUI.py -t 03_save_state_inspect_GUI.log

To check in GUI

  • relax -g
  • File -> Open relax state
  • In folder "result_03" open "result_03_ini.bz2"
  • View -> Data pipe editor
  • Right click on pipe, and select "Associate with a new auto-analysis"

See also