Open main menu

Changes

Tutorial for model free SBiNLab

38,202 bytes removed, 10:40, 22 October 2017
To get inspiration of example scripts files and '''see''' how the protocol is performed, have a look here:
* [https://github.com/nmr-relax-code/test_suiterelax/system_testsblob/scriptsmaster/model_freeauto_analyses/dauvergne_protocol.py* nmr-relax-code/auto_analyses/dauvergne_protocol.py]
= Scripts =For references, see [http://www.nmr-relax.com/refs.shtml relax references]:To get * [[Model-free_analysis_single_field#Protocol|See this description of the protocol by Edward]] and image [http://www.nmr-relax.com/manual/The_diffusion_seeded_paradigm.html The diffusion seeded paradigm]* [http://www.nmr-relax.com/manual/Model_free_analysis.html Link to the manual]* [http://www.nmr-relax.com/manual/The_model_free_models.html Summary of model-free models]* [http://www.nmr-relax.com/manual/molmol_macro_apply.html#SECTION081284600000000000000 Summary of parameter meaning and value to workpymol visualization]* d'Auvergne, E. J. and Gooley, P. R. (2008). [http://dx.doi.org/10.1007/s10858-007-9214-2 Optimisation of NMR dynamic models I. Minimisation algorithms and their performance within the model-free and Brownian rotational diffusion spaces. J. Biomol. NMR, 40(2), 107-119.]* d'Auvergne, E. J. and Gooley, P. R. (2008). [http://dx.doi.org/10.1007/s10858-007-9213-3 Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, we need to 40(2), 121-133.]
* Load a PDB structure= Script inspiration =* Assign the "data structure" in relax through spin== model-assignmentsfree : Script inspiration for setup and analysis ==* Assign necessary "information" as isotope information to each spin-assignmentThe distribution of relax includes a folder '''sample_scripts/model_free''' which contain* Read "R1, R2 and NOE" a folder with scripts for different magnet field strengths* Calculate some properties* Check the data* Run the protocolanalysis.
To work most efficiently, it is important to perform each step 1 by 1, and closely inspect the log for any errorsIt can be seen here: https://github.com/nmr-relax/relax/tree/master/sample_scripts/model_free
For similar tutorial, have Here is the current list* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/back_calculate.py back_calculate.py]. Back-calculate and save relaxation data starting from a saved model-free results file.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/bmrb_deposition.py bmrb_deposition.py] Script for creating a NMR-STAR 3.1 formatted file for BMRB deposition of model-free results.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/cv.py cv.py] Script for model-free analysis using cross-validation model selection.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/dasha.py dasha.py] Script for model-free analysis using the program Dasha.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/dauvergne_protocol.py dauvergne_protocol.py] Script for black-box model-free analysis.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/diff_min.py diff_min.py] Demonstration script for diffusion tensor optimisation in a model-free analysis.]* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/final_data_extraction.py final_data_extraction.py] Extract Data to Table* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/generate_ri.py generate_ri.py] Script for back-calculating the relaxation data.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/grace_S2_vs_te.py grace_S2_vs_te.py] Script for creating a grace plot of the simulated order parameters vs. simulated correlation times.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/ grace_ri_data_correlation.py] Script for creating correlations plots of experimental verses back calculated relaxation data.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/map.py map.py] Script for mapping the model-free space for OpenDX visualisation.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/mf_multimodel.py mf_multimodel.py] This script performs a look atmodel-free analysis for the models 'm0' to 'm9' (or 'tm0' to 'tm9').* [https: //github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/modsel.py modsel.py] Script for model-free model selection.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/molmol_plot.py molmol_plot.py] Script for generating Molmol macros for highlighting model-free motions* [Tutorial_for_modelhttps://github.com/nmr-free_analysis_sam_mahdi|Tutorial relax/relax/blob/master/sample_scripts/model_free/palmer.py palmer.py] Script for model-free analysis sam mahdiusing Art Palmer's program 'Modelfree4'. Download from http://comdnmr.nysbc.org/comd-nmr-dissem/comd-nmr-software* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/remap.py remap.py]Script for mapping the model-free space.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/single_model.py single_model.py]This script performs a model-free analysis for the single model 'm4'.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/table_csv.py table_csv.py] Script for converting the model-free results into a CSV table.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/model_free/table_latex.py table_latex.py] Script for converting the model-free results into a LaTeX table.
== 01_read_pdb.py - Test load of PDB Other script inspiration for checking ==First we just want to test to read the PDB fileThe distribution of relax includes a folder '''sample_scripts/''' which contain a folder with scripts for analysis.
'''01_read_pdbIt can be seen here: https://github.py'''{| class="mwcom/nmr-collapsible mw-collapsed wikitable"! See file content|-|<source lang="python"># Python module imports.from time import asctime, localtimeimport osrelax/relax/tree/master/sample_scripts
# '''R1 / R2 Calculation'''* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/relax_fit.py relax_fit.py] Script for relaxation curve fitting.* [https://github.com/nmr-relax/relax module imports/blob/master/sample_scripts/relax_curve_diff.py relax_curve_diff.py] Script for creating a Grace plot of peak intensity differences.The resultant plot is useful for finding bad points or bad spectra when fitting exponential curves determine the R1 and R2 relaxation rates. If the averages deviate systematically from auto_analyseszero, bias in the spectra or fitting will be clearly revealed. To use this script, R1 or R2 exponential curve fitting must have previously have been carried out the program state saved to the file 'rx.save' (either with or without the .gz or .bz2 ). The file name of the saved state can be changed at the top of this script.dauvergne_protocol import dAuvergne_protocol
# Set up the data pipe'''NOE calculation'''* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/noe.py noe.py] Script for calculating NOEs.#######################
# '''Test data'''* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/jw_mapping.py jw_mapping.py] Script for reduced spectral density mapping.* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/consistency_tests.py consistency_tests.py] Script for consistency testing. Severe artifacts can be introduced if model-free analysis is performed from inconsistent multiple magnetic field datasets. The following sequence use of user function calls simple tests as validation tools for the consistency assessment can help avoid such problems in order to extract more reliable information from spin relaxation experiments. In particular, these tests are useful for detecting inconsistencies arising from R2 data. Since such inconsistencies can yield artifactual Rex parameters within model-free analysis, these tests should be use routinely prior to any analysis such as model-free calculations.This script will allow one to calculate values for the three consistency tests J(0), F_eta and F_R2. Once this is done, qualitative analysis can be changed performed by comparing values obtained at different magnetic fields. Correlation plots and histograms are useful tools for such comparison, such as neededpresented in Morin & Gagne (2009a) J. Biomol. NMR, 45: 361-372.
# Create '''Other representations'''* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/angles.py angles.py] Script for calculating the data pipeprotein NH bond vector angles with respect to the diffusion tensor.bundle_name = "mf (%s)" % asctime(localtime())* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/xh_vector_dist.py xh_vector_dist.py] Script for creating a PDB representation of the distribution of XH bond vectors.name = "origin"pipe* [https://github.com/nmr-relax/relax/blob/master/sample_scripts/diff_tensor_pdb.py diff_tensor_pdb.py] Script for creating a PDB representation of the Brownian rotational diffusion tensor.create(name, 'mf', bundle=bundle_name)
# Load the PDB file.= Scripts - Part 2 =structure.read_pdb('energy_1We now try to setup things a little more efficient.pdb', set_mol_name='TEMP', read_model=1)
# Set Relax is able to read previous results file, so let us divide the task 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)into:
# Assign isotopes* 1: Load the data and save as state file. Inspect in GUI before running.* 2: Run the Model 1: local_tm. spin* 3: Here make 4 scripts.isotope('15N', spin_id='@NEach of them only depends on Model 1:** Model 2: sphere**')Model 3: prolatespin.isotope('1H', spin_id='@H*')* Model 4: oblate</source>** Model 5: ellipsoid|}* 4: Make an intermediate 'final' model script. This will automatically detect files from above.
Run with<source lang="bash">= Prepare data ==relax 01_read_pdbWe make a new folder and try.py -t 01_read_pdb.log</source>
{| class="mw-collapsible mw-collapsed wikitable"
! Output from logfileSee commands
|-
|
<source lang="bash">
script = '01_read_pdb.py'mkdir 20171010_model_free_2_HADDOCK----------------------------------------------------------------------------------------------------# Python module imports.from time import asctime, localtimeimport os # relax module importscp 20171010_model_free/*.dat 20171010_model_free_2_HADDOCKfrom 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 isotopesspin.isotope('15N', spin_id='@Ncp 20171010_model_free/*')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)20171010_model_free_2_HADDOCK
# Get scripts
cd 20171010_model_free_2_HADDOCK
git init
git remote add origin git@github.com:tlinnet/relax_modelfree_scripts.git
git fetch
git checkout -t origin/master
</source>
|}
== 02_read_data.py - Test load of data ==That looked to go fineAnd a new one, so let us try to just load data. Copy '''01_read_pdb.py''' to '''02_read_data.py''' and add:changing the NOE error
{| class="mw-collapsible mw-collapsed wikitable"
! See file contentcommands
|-
|
<source lang="pythonbash"># 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)mkdir 20171010_model_free_3_HADDOCKrelax_data.read(ri_id='R1_750', ri_type='R1', frq=750.06cp 20171010_model_free/*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)20171010_model_free_3_HADDOCKrelax_data.read(ri_id='R2_750', ri_type='R2', frq=750.06cp 20171010_model_free/*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)pdb 20171010_model_free_3_HADDOCK
# Define the magnetic dipole-dipole relaxation interaction.Get scriptscd 20171010_model_free_3_HADDOCKinteratom.define(spin_id1='@N', spin_id2='@H', direct_bond=True)git initinteratom.define(spin_id1='git remote add origin git@NE1', spin_id2='@HE1', direct_bond=True)interatomgithub.set_dist(spin_id1='@N*', spin_id2='@H*', ave_dist=1com:tlinnet/relax_modelfree_scripts.02 * 1egitgit fetchgit checkout -10)interatom.unit_vectors()t origin/master
# Define the chemical shift relaxation interaction.Change NOE errorvaluesed -i 's/0.set(-172 1* 1e$/0.05/' NOE_600MHz_new.datsed -6, i 'csa', spin_id='@Ns/0.1*$/0.05/')NOE_750MHz.dat
</source>
|}
Run with<source lang="bash">relax 02_read_data.py And a new one, changing the NOE error, and deselecting N-t 02_read_dataterminal.log</sourcebr>Consistency test, found that this stretch contained outliers.
{| class="mw-collapsible mw-collapsed wikitable"
! Output from logfileSee commands
|-
|
<source lang="bash">
script = '02_read_datamkdir 20171010_model_free_4_HADDOCKcp 20171010_model_free/*.py'----------------------------------------------------------------------------------------------------dat 20171010_model_free_4_HADDOCK# Python module importscp 20171010_model_free/*.from time import asctime, localtimeimport ospdb 20171010_model_free_4_HADDOCK
# relax module importsGet scriptscd 20171010_model_free_4_HADDOCKgit initgit remote add origin git@github.com:tlinnet/relax_modelfree_scripts.gitfrom auto_analyses.dauvergne_protocol import dAuvergne_protocolgit fetchgit checkout -t origin/master
# Set up the data pipeChange NOE errorsed -i 's/0.1*$/0.05/' NOE_600MHz_new.dat#######################sed -i 's/0.1*$/0.05/' NOE_750MHz.dat
# The following sequence of user function calls can be changed as neededMake deselectionecho "#" > deselect.txtcat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t151" >> deselect.txtcat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t152" >> deselect.txtcat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t153" >> deselect.txtcat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t154" >> deselect.txtcat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t155" >> deselect.txtcat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t156" >> deselect.txtcat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t157" >> deselect.txtcat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t158" >> deselect.txtcat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t159" >> deselect.txt</source>|}
# Create the data pipe.bundle_name = "mf (%s)" % asctime(localtime())name = "origin"pipe.create(name, 'mf'And a new one, bundle=bundle_name) # Load changing the PDB file.structure.read_pdb('energy_1.pdb', set_mol_name='TEMP'NOE error, read_model=1) # Set up the 15N and 1H deselecting spins (both backbone and Trp indole sidechains)found from consistency test.<br>structure.load_spins('@N', ave_pos{| class=True)"mw-collapsible mw-collapsed wikitable"structure.load_spins('@NE1', ave_pos=True)! See commandsstructure.load_spins('@H', ave_pos=True)|-structure.load_spins('@HE1', ave_pos=True) # Assign isotopes|spin.isotope('15N', spin_id<source lang='@N*')spin.isotope('1H', spin_id='@H*') # Load the relaxation data."bash">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)mkdir 20171010_model_free_5_HADDOCKrelax_data.read(ri_id='R2_600', ri_type='R2', frq=600.17cp 20171010_model_free/*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)20171010_model_free_5_HADDOCKrelax_data.read(ri_id='NOE_600', ri_type='NOE', frq=600.17cp 20171010_model_free/*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*')pdb 20171010_model_free_5_HADDOCK
# Get scriptscd 20171010_model_free_5_HADDOCKgit initgit remote add origin git@github.com:tlinnet/relax_modelfree_scripts.gitgit fetchgit checkout ----------------------------------------------------------------------------------------------------t origin/master
relax> pipe# Change NOE errorsed -i 's/0.create(pipe_name=1*$/0.05/'originNOE_600MHz_new.datsed -i ', pipe_type=s/0.1*$/0.05/'mf', bundle='mf (Fri Oct 13 17:51:28 2017)')NOE_750MHz.dat
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.# Make deselectionecho "# mol_name res_num res_name spin_num spin_name REMOVED FROM DISPLAY relax" > structuredeselect.load_spins(spin_id='@NE1', from_mols=None, mol_name_target=None, ave_pos=True, spin_num=True)txtAdding the following spins to the relax data storecat R1_600MHz_new_model_free# mol_name res_num res_name spin_num spin_name REMOVED FROM DISPLAY relaxdat | grep -P "ArcCALD\t158" > 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> structuredeselect.load_spins(spin_id='@HE1', from_mols=None, mol_name_target=None, ave_pos=True, spin_num=True)txtAdding the following spins to the relax data storecat R1_600MHz_new_model_free# mol_name res_num res_name spin_num spin_name REMOVED FROM DISPLAY relaxdat | grep -P "ArcCALD\t157" > spin.isotope(isotope='15N', spin_id='@N*', force=False) relax> spindeselect.isotope(isotope='1H', spin_id='@H*', force=False)txt relax> relax_data.read(ri_id='R1_600', ri_type='R1', frq=600170000.0, file='cat 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)| grep -P "ArcCALD\t17" >> deselect.txtOpening the file 'cat 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| grep -P "ArcCALD\t159" >> relax_datadeselect.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)txtOpening the file 'R2_600MHz_new_model_freecat R1_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| grep -P "ArcCALD\t120" >> relax_datadeselect.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)txtOpening the file 'NOE_600MHz_newcat R1_600MHz_new_model_free.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| grep -P "ArcCALD\t59" >> relax_datadeselect.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)txtOpening the file 'R1_750MHz_model_freecat R1_600MHz_new_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| grep -P "ArcCALD\t98" >> relax_data.read(ri_id='R2_750', ri_type='R2', frq=750060000deselect.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)txtOpening the file 'R2_750MHz_model_freecat R1_600MHz_new_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| grep -P "ArcCALD\t49" >> relax_data.read(ri_id='NOE_750', ri_type='NOE', frq=750060000.0, file='NOE_750MHzdeselect.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)txtOpening the file 'NOE_750MHzcat R1_600MHz_new_model_free.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| grep -P "ArcCALD\t76" > 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> interatomdeselect.set_dist(spin_id1='@N*', spin_id2='@H*', ave_dist=1.0200000000000001e-10, unit='meter')txtThe following averaged distances have been set: # Spin_ID_1 Spin_ID_2 Ave_distance(meters) '#TEMP:3@N' '#TEMP:3@H' 1cat R1_600MHz_new_model_free.0200000000000001edat | grep -10 '#TEMP:4@N' '#TEMP:4@H' 1P "ArcCALD\t155" >> deselect.0200000000000001e-10 txt'#TEMP:5@N' '#TEMP:5@H' 1cat R1_600MHz_new_model_free.0200000000000001edat | grep -10 '#TEMP:6@N' '#TEMP:6@H' 1P "ArcCALD\t156" >> deselect.0200000000000001e-10 txt'#TEMP:7@N' '#TEMP:7@H' 1cat R1_600MHz_new_model_free.0200000000000001edat | grep -10 '#TEMP:8@N' '#TEMP:8@H' 1P "ArcCALD\t48" >> deselect.0200000000000001e-10 txt'#TEMP:9@N' '#TEMP:9@H' 1cat R1_600MHz_new_model_free.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.0200000000000001edat | grep -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  relaxP "ArcCALD\t154" > 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=-0deselect.00017199999999999998, param='csa', index=0, spin_id='@N*', error=False, force=True)txt
</source>
|}
== 03_save_state_inspect_GUI.py - Inspect data in GUI ==The GUI can be And a good place to inspect new one, without changing the setup NOE error, and files. Copy '''02_read_data.py''' to '''03_save_state_inspect_GUIdeselecting spins found from consistency test.py''' and add:<br>
{| class="mw-collapsible mw-collapsed wikitable"
! See file contentcommands
|-
|
<source lang="pythonbash"># Analysis variablesmkdir 20171010_model_free_6_HADDOCKcp 20171010_model_free/*.dat 20171010_model_free_6_HADDOCK###################### The model-free models. Do not change these unless absolutely necessary, the protocol is likely to fail if these are changedcp 20171010_model_free/*.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']pdb 20171010_model_free_6_HADDOCK
# The grid search size (the number of increments per dimension)Get scriptscd 20171010_model_free_6_HADDOCKgit initgit remote add origin git@github.com:tlinnet/relax_modelfree_scripts.gitgit fetchGRID_INC = 11git checkout -t origin/master
# The optimisation techniqueMake deselectionecho "#" > deselect.txtcat R1_600MHz_new_model_free. Standard is: min_algor='newton' : and cannot be changed in the GUIdat | grep -P "ArcCALD\t158" >> deselect.txtMIN_ALGOR = 'newton'cat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t157" >> deselect.txtcat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t17" >> deselect.txtcat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t159" >> deselect.txt
# The number of Monte Carlo simulations to be used for error analysis at the end of the analysiscat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t59" >> deselect.txtcat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t98" >> deselect.txtcat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t76" >> deselect.txt#MC_NUM = 500cat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t155" >> deselect.txtMC_NUM = 20cat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t156" >> deselect.txt cat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t120" >> deselect.txt
# The diffusion modelcat R1_600MHz_new_model_free. Standard is 'Fully automated', which means: DIFF_MODEL=['local_tm', 'sphere', 'prolate', 'oblate', 'ellipsoid', 'final']dat | grep -P "ArcCALD\t49" >> deselect.txt# 'local_tm', 'sphere', ''prolate', 'oblate', 'ellipsoid', or 'final'cat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t48" >> deselect.txt#DIFF_MODEL = 'local_tm'DIFF_MODEL = ['local_tm', 'sphere', 'prolate', 'oblate', 'ellipsoid', 'final']cat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t154" >> deselect.txt
# The maximum number of iterations for the global iterationcat R1_600MHz_new_model_free. Set to None, then the algorithm iterates until convergencedat | grep -P "ArcCALD\t33" >> deselect.txtMAX_ITER = Nonecat R1_600MHz_new_model_free.dat | grep -P "ArcCALD\t67" >> deselect.txt</source>|}
# Automatic looping over all rounds until convergence (must be a boolean value of True or False)== 11_read_data_GUI_inspect. Standard is: conv_looppy - Read data GUI inspect =True : =This will read the data and cannot be changed in the GUIsave as a state.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 GUI can be a good place to inspect the state before running. Open setup and check in GUI!state.save(state=var+'_inifiles.bz2', dir=results_dir, force=True)
# To check in GUISee content of:# relax -g# File -> Open relax state# In folder "result_03" open "result_03_ini[https://github.bz2"# View -> Data pipe editor# Right click on pipe, and select "Associate with a new auto-analysis"<com/tlinnet/relax_modelfree_scripts/blob/master/source>|}11_read_data_GUI_inspect.py 11_read_data_GUI_inspect.py]
Run with
<source lang="bash">
relax 03_save_state_inspect_GUI11_read_data_GUI_inspect.py -t 03_save_state_inspect_GUI11_read_data_GUI_inspect.log
</source>
* relax -g
* File -> Open relax state
* In folder "result_03result_10" open "result_03_iniresult_10_ini.bz2"
* View -> Data pipe editor
* Right click on pipe, and select "Associate with a new auto-analysis"
== 04_run_default_with_tolerance_lim= relax 11_test_consistency.py - Try fast run Consistency test of our data ===Now we try Before running the analysis, it is wise to run a fast runscript for [[Tutorial_for_model_free_SBiNLab#Other_script_inspiration_for_checking|consistency testing]]. See here:* Morin & Gagne (2009a) [http://dx.doi.org/10.1007/s10858-009-9381-4 Simple tests for the validation of multiple field spin relaxation data. J. Biomol. NMR, to see if everything is setup45: 361-372.]
Copy Highlights:* Comparing results obtained at different magnetic fields should, in the case of perfect consistency and assuming the absence of conformational exchange, yield equal values independently of the magnetic field.* avoid the potential extraction of erroneous information as well as the waste of time associated to dissecting inconsistent datasets using numerous long model-free minimisations with different subsets of data.* The authors prefer the use of the spectral density at zero frequency J(0) alone since it '''03_save_state_inspect_GUI.pydoes not rely''' to on an estimation of the global correlation time '''04_run_default_with_tolerance_lim.pytc/tm''' , neither on a measure of theta, the angle between the 15N–1H vector and modify last lines:the principal axis of the 15N chemical shift tensor. Hence, J(0) is less likely to be affected by incorrect parameterisation of input parameters.
{| class="mw-collapsible mw-collapsed wikitable"! See file contentof:|-|[https://github.com/tlinnet/relax_modelfree_scripts/blob/master/11_test_consistency.py 11_test_consistency.py]<source lang="pythonbash"># The results dirrelax 11_test_consistency.var = 'result_04'results_dir = ospy -t 11_test_consistency.getcwd() + ospy.sep + varlog
# Save Afterwards, go into the state before runningfolder at plot data.python plot_txt_files. Open and check in GUI!pystate.save(state=var+'_ini/grace2images.bz2', dir=results_dir, force=True)py </source>
# To check in GUI# relax -g# File == 12_Model_1_I_local_tm.py -> Open relax stateOnly run local_tm ==# In folder "result_03" open "result_03_iniNow we only run '''Model 1'''.bz2"# View -> Data pipe editor# Right click on pipe, and select "Associate with a new auto-analysis"
dAuvergne_protocol(pipe_name=name, pipe_bundle=bundle_name, results_dir=results_dir, diff_model=* DIFF_MODEL, mf_models=MF_MODELS, local_tm_models=LOCAL_TM_MODELS, grid_inc=['local_tm']* GRID_INC, min_algor=MIN_ALGOR, mc_sim_num=11 # This is the standard* MC_NUM, max_iter=0 # This has no influence in Model 1-5* MAX_ITER, conv_loop=CONV_LOOP)</source>|}20 # Stop if it has not converged in 20 rounds
Before running, is worth Normally between 8 to note, which values 15 multiple rounds of optimisation of the are NOT set to default values in required for the GUIproper execution of this script.<br>* dAuvergne_protocolThis is can also be see here in Figure 2.opt_func_tol = 1e-10 # Standard: opt_func_tol = 1e-25 * dAuvergne_protocold'Auvergne, E. J. and Gooley, P. R.opt_max_iterations = int(1e52008) # Standard. [http: opt_max_iterations = int//dx.doi.org/10.1007/s10858-007-9213-3 Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(1e72), 121-133.]
These 2 values is used in the '''minfx''' python package, and is an instruction to the minimiser function, to continue changing parameter valuesRelax should stop calculation,UNTIL either the difference in chi2 values between "2 steps" is less than 1e-10, OR if the number all steps is larger than 10^5.It's an instruction a model does not to be tooooo pedantic, here in the exploration phase. When finalising for publication, these valuesshould be set to their standard valueconverge.
* MC_NUM = 20See content of:Number of Monte-Carlo simulations[https://github. The protocol will find optimum parameter values in this protocol, but errorestimation will not be very reliablecom/tlinnet/relax_modelfree_scripts/blob/master/12_Model_1_I_local_tm. Standard is 500py 12_Model_1_I_local_tm.py]
We use [http://www.dayid.org/comp/tm.html tmux] to make a terminal-session, we can get back to,
if our own terminal connection get closed.
 
* start a new session: '''tmux'''
* re-attach a detached session: '''tmux attach'''
Run with
<source lang="bash">
# Make terminal-session
tmuxnew -s m1 relax 12_Model_1_I_local_tm.py -t 12_Model_1_I_local_tm.log
# ortmux new -s m1mpirun -np 22 relax 04_run_default_with_tolerance_lim--multi='mpi4py' 12_Model_1_I_local_tm.py -t 04_run_default_with_tolerance_lim12_Model_1_I_local_tm.log
</source>
You can then in another terminal follow the logfile by
<source lang="bash">
less +F 04_run_default_with_tolerance_lim12_Model_I_local_tm.log
</source>
* To exit, use keyboard: '''Ctrl+c''' and then: '''q'''
== 05_run_def_MC20.py 13_Model_2- Try normal run with MC 20 5 - Run Model 2 to 5 ==The inspection of the log of the previous When Model 1 is completed, then make 4 terminal windows and run, it seems them at the '''prolate'''cannot converge. It jumps between 2 chi2 values. <br>Maybe it is because of the NOT default values of optimization, to let us setit back to defaultsame time.
We have 4 CPU on our lab computers.<br>These scripts do:So let us assign 1 to a run normal settings, and only MC=20.* Read the state file from before with setup* Change DIFF_MODEL accordingly
Copy '''04_run_default_with_tolerance_lim[https://github.com/tlinnet/relax_modelfree_scripts/blob/master/13_Model_2_II_sphere.py''' to '''05_run_def_MC2013_Model_2_II_sphere.py''']
<source lang="bash">
cp 04_run_default_with_tolerance_limtmux new -s m2relax 13_Model_2_II_sphere.py 05_run_def_MC20-t 13_Model_2_II_sphere.pylog</source># Or and modify last lines:{| class="mwmpirun -collapsible mwnp 5 relax -collapsed wikitable"! See file content|-|<source langmulti="python"># The number of Monte Carlo simulations to be used for error analysis at the end of the analysis'mpi4py' 13_Model_2_II_sphere.py -t 13_Model_2_II_sphere.#MC_NUM = 500MC_NUM = 20log
# The diffusion model. Standard When relax 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'running, '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 intopush: 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_05'results_dir = os.getcwd() Ctrl+ os.sep + var # Save the state before running. Open b and check in GUI!state.save(state=var+'_ini.bz2'then d, 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" dAuvergne_protocol(pipe_name=name, pipe_bundle=bundle_name, results_dir=results_dir, diff_model=DIFF_MODEL, mf_models=MF_MODELS, local_tm_models=LOCAL_TM_MODELS, grid_inc=GRID_INC, min_algor=MIN_ALGOR, mc_sim_num=MC_NUM, max_iter=MAX_ITER, conv_loop=CONV_LOOP)to disconnect without exit
</source>
|}
* MC_NUM = 20Number of Monte-Carlo simulations. The protocol will find optimum parameter values in this protocol, but errorestimation will not be very reliable. Standard is 500. We use [httphttps://wwwgithub.dayid.orgcom/tlinnet/relax_modelfree_scripts/blob/compmaster/tm13_Model_3_III_prolate.html tmuxpy 13_Model_3_III_prolate.py] to make a terminal-session, we can get back to,if our own terminal connection get closed. * start a new session: '''tmux'''* re-attach a detached session: '''tmux attach''' Run with
<source lang="bash">
# Make terminaltmux new -sessions m3tmuxrelax 13_Model_3_III_prolate.py -t 13_Model_3_III_prolate.log# Ormpirun -np 5 relax 05_run_def_MC20--multi='mpi4py' 13_Model_3_III_prolate.py -t 05_run_def_MC2013_Model_3_III_prolate.log
</source>
You can then in another terminal follow the logfile by[https://github.com/tlinnet/relax_modelfree_scripts/blob/master/13_Model_4_IV_oblate.py 13_Model_4_IV_oblate.py]
<source lang="bash">
less +F 05_run_def_MC20tmux new -s m4relax 13_Model_4_IV_oblate.py -t 13_Model_4_IV_oblate.log# Ormpirun -np 5 relax --multi='mpi4py' 13_Model_4_IV_oblate.py -t 13_Model_4_IV_oblate.log
</source>
* To scroll up and down, use keyboard[https: '''Ctrl+c'''* To return to follow mode, use keyboard: '''Shift+f'''* To exit, use keyboard: '''Ctrl+c''' and then: '''q''' == 06_run_def_MC20_MAX_ITER20.py - Try normal run with MC 20 and MAX_ITER 20 ==It looks like the '''prolate''' has problem with converging. <br>So let us try a run, where a maximum of 20 rounds of convergence is accepted. <br>Then hopefully, relax should continue to the other models, if '''prolate''' does not converge. We have 4 CPU on our lab computers.<br>Let us assign another to a run normal settings, only MC=20 and MAX_ITER=20//githubCopy '''05_run_def_MC20com/tlinnet/relax_modelfree_scripts/blob/master/13_Model_5_V_ellipsoid.py''' to '''06_run_def_MC20_MAX_ITER2013_Model_5_V_ellipsoid.py''']
<source lang="bash">
cp 05_run_def_MC20tmux new -s m5relax 13_Model_5_V_ellipsoid.py 06_run_def_MC20_MAX_ITER20-t 13_Model_5_V_ellipsoid.log# Ormpirun -np 5 relax --multi='mpi4py' 13_Model_5_V_ellipsoid.py-t 13_Model_5_V_ellipsoid.log
</source>
and modify last lines:{| class="mw-collapsible mw-collapsed wikitable"! See file content|-|To join session<source lang="pythonbash"># The number of Monte Carlo simulations to be used for error analysis at the end of the analysis.List#MC_NUM = 500MC_NUM = 20tmux list-s
# The diffusion model. Standard is 'Fully automated', which means: DIFF_MODEL=['local_tm', 'sphere', 'prolate', 'oblate', 'ellipsoid', 'final']Join either# 'local_tm', 'sphere', ''prolate', 'oblate', 'ellipsoid', or 'final'tmux a -t m1#DIFF_MODEL = 'local_tm'tmux a -t m2DIFF_MODEL = ['local_tm', 'sphere', 'prolate', 'oblate', 'ellipsoid', 'final']tmux a -t m3tmux a -t m4tmux a -t m5</source>
# The maximum number == 14_intermediate_final.py - Inspection during model optimization ==During running of iterations for the global iteration. Set to Nonemodel 2-5, then the algorithm iterates until convergencecurrent results can be inspected withthis nifty scripts.MAX_ITER = 20
# Automatic looping over all rounds until convergence (must be a boolean value The script will ask for input of True or False)MC numbers. Standard is: conv_loop=True : and cannot be changed in the GUISo just run it.CONV_LOOP = True
# Change some minimise opt params. # This goes into[https: minimise.execute(self//github.min_algor, func_tol=selfcom/tlinnet/relax_modelfree_scripts/blob/master/14_intermediate_final.opt_func_tol, max_iter=selfpy 14_intermediate_final.opt_max_iterations)py]######################dAuvergne_protocol.opt_func_tol <source lang= 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_06'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.bz2bash"# View -> Data pipe editor# Right click on pipe, and select "Associate with a tmux new auto-analysis"s final dAuvergne_protocol(pipe_name=name, pipe_bundle=bundle_name, results_dir=results_dir, diff_model=DIFF_MODEL, mf_models=MF_MODELS, local_tm_models=LOCAL_TM_MODELS, grid_inc=GRID_INC, min_algor=MIN_ALGOR, mc_sim_num=MC_NUM, max_iter=MAX_ITER, conv_loop=CONV_LOOP)relax 14_intermediate_final.py -t 14_intermediate_final.log
</source>
|}
We use This does:* Option: Collect current best result from Model 2-5, and make MC simulations, and finalize to get current results files ** [http://wwwcomdnmr.dayidnysbc.org/compcomd-nmr-dissem/tm.html tmuxcomd-nmr-software Make analysis script for palmer Modelfree4] to make a terminal-session, we can get back to,if our own terminal connection get closed.** Get more spin information* start Make a new pymol file, that collects all of relax pymol command files into 1 pymol session* Option: '''tmux new -s relax06'''Collect all chi2 and number of params k, for each iteration per model* re-attach * Make a detached session: '''tmux a -t relax06'''python plot file for plotting this results
Run with=== Per iteration get: chi2, k, tm ===Afterwards, plot the data.
<source lang="bash">
# Make terminal-sessiontmux new -s relax06 relax 06_run_def_MC20_MAX_ITER20python results_collected.py -t 06_run_def_MC20_MAX_ITER20.log
</source>
=== 06_check_intermediate_pymol.pml - Use pymol commands from inspection of 06 run Pymol macro ===We You also get some a pymol commandsfolder.
Let us try See here for info how the macro is applied* [http://www.nmr-relax.com/manual/molmol_macro_apply.html#SECTION081284600000000000000 Summary of parameter meaning and value to use these.pymol visualization]
Make a '''06_check_intermediate_pymol.pml ''' file, with this content.  {| class="mw-collapsible mw-collapsed wikitable"! See file content|-|<source lang="python"># Start settingsreinitializebg_color whiteset scene_buttons, 1 # Load protein and set nameload energy_1.pdbprot='prot'cmd.set_name("energy_1", prot) # Load tensor pdbload ./result_06_check_intermediate/final/tensor.pdb ################################## Scene 1 : Make default view#################################hide everything, protshow_as cartoon, protzoom prot and polymer scene F1, store, load of data, view=1 ################################# Scenes: We will go through the order like this# 's2', 's2f', 's2s', 'amp_fast', 'amp_slow', 'te', 'tf', 'ts', 'time_fast', 'time_slow', 'rex'# s2: S2, the model-free generalised order parameter (S2 = S2f.S2s).# s2f: S2f, the faster motion model-free generalised order parameter.# s2s: S2s, the slower motion model-free generalised order parameter.# amp_fast: # amp_slow: # te: Single motion effective internal correlation time (seconds).# tf: Faster motion effective internal correlation time (seconds).# ts: Slower motion effective internal correlation time (seconds).# time_fast: # time_slow:# rex: Chemical exchange relaxation (sigma_ex = Rex / omega**2).  #modes = ['s2']#modes = ['s2', 's2f']modes = ['s2', 's2f', 's2s', 'amp_fast', 'amp_slow', 'te', 'tf', 'ts', 'time_fast', 'time_slow', 'rex']fdir = "./result_06_check_intermediate/final/pymol" python# File placementif False: for i, mode in enumerate(modes): # Make name protn = '%s_%s' % (prot, mode)  # Loop over file lines fname = fdir + "/%s.pml"%mode fname_out = fdir + "/0_mod_%s.pml"%mode f_out = open(fname_out, "w") with open(fname) as f: for line in f: line_cmd = "" # Add to end of line, depending on command if line[0] == "\n": line_add = "" elif line[0:4] == "hide": line_add = " %s"%protn  # All not changed elif line[0:8] == "bg_color": line_add = "" elif line[0:9] == "set_color": line_add = "" elif line[0:6] == "delete": line_add = ""  else: line_add = " and %s"%protn # Modify line line_cmd = line.strip() + line_add + "\n"  # Write the line f_out.write(line_cmd) f_out.close()python end  # Make pymol objectspythonfor i, mode in enumerate(modes): protn = '%s_%s' % (prot, mode) cmd.copy(protn, prot) cmd.scene("F1") cmd.disable(prot) cmd.enable(protn) cmd.scene("F%i"%(i+2), "store", mode, view=0)python end ################################## Scenes# #modes = ['s2', 's2f', 's2s', 'amp_fast', 'amp_slow', 'te', 'tf', 'ts', 'time_fast', 'time_slow', 'rex'] scene F2@./result_06_check_intermediate/final/pymol/0_mod_s2.pmlscene F2, store, s2, view=0 scene F3@./result_06_check_intermediate/final/pymol/0_mod_s2f.pmlscene F3, store, s2f, view=0 scene F4@./result_06_check_intermediate/final/pymol/0_mod_s2s.pmlscene F4, store, s2s, view=0 scene F5@./result_06_check_intermediate/final/pymol/0_mod_amp_fast.pmlscene F5, store, amp_fast, view=0 scene F6@./result_06_check_intermediate/final/pymol/0_mod_amp_slow.pmlscene F6, store, amp_slow, view=0 scene F7@./result_06_check_intermediate/final/pymol/0_mod_te.pmlscene F7, store, te, view=0 scene F8@./result_06_check_intermediate/final/pymol/0_mod_tf.pmlscene F8, store, tf, view=0 scene F9@./result_06_check_intermediate/final/pymol/0_mod_ts.pmlscene F9, store, ts, view=0 scene F10@./result_06_check_intermediate/final/pymol/0_mod_time_fast.pmlscene F10, store, time_fast, view=0 scene F11@./result_06_check_intermediate/final/pymol/0_mod_time_slow.pmlscene F11, store, time_slow, view=0 scene F12@./result_06_check_intermediate/final/pymol/0_mod_rex.pmlscene F12, store, rex, view=0</source>|} Run with pymol.
<source lang="bash">
pymol 06_check_intermediate_pymol.pml # To bug testpymol -c 06_check_intermediate_pymol0_0_apply_all_pymol_commands.pml
</source>
 
= Create input for other programs =
Relax can create input files to other program, to help verify the results.
 
* dasha
 
= To run on Haddock =
FROM=${PWD}
TO=${RUSER}@${SAURON}:/data/sbinlab2/${RUSER}/Downloads/${PROJ}
# -a: "archive"- archive mode; equals -rlptgoD (no -H,-A,-X). syncs recursively and preserves symbolic links, special and device files, modification times, group, owner, and permissions.
Trusted, Bureaucrats
1,382

edits