Open main menu

Changes

→‎Tutorial: Formatting improvements.
__TOC__
 
== Tutorial ==
This follows the setup for test data in the Manual
cd $HOME/test
gedit test.py
</source>
 
Then we build the script onwards.<br>
 
We run relax repeatedly, to execute code. Then we write new code in the script, and run again.
<source lang="bash">
relax test.py
</source>
When we are satisfied, one can then do like this.
 
Start relax
<source lang="bash">
relax -g -t log.txt
</source>
 
Then do
User functions -> Script -> test.py
 
THEN do:
View -> Data pipe editor -> Right click on pipe -> Associate with a new Auto analysis
 
'''This should bring you to a window, where all settings have been set.'''
 
Set
* Relaxations dispersion models: ['R2eff', 'No Rex', 'CR72', 'NS CPMG 2-site expanded']
* Grid increements: 11 (For speed-up in test phase)
* Monte-Carlo simulations number: 5 (For speed up in test phase)
 
Then a quick click on spin.isotope function, and GO.
 
=== The script ===
 
{{collapsible script
| type = Python script
| title = The test.py script.
| lang = python
| script =
# Python modules.
import os
import glob
from time import asctime, localtime
 
# relax modules.
from lib.io import sort_filenames
 
# Set path to data.
data = '/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/test_suite/shared_data/dispersion/Hansen'
 
# Create the data pipe.
pipe_bundle = "relax_disp (%s)" % asctime(localtime())
pipe_name = "origin - %s" % pipe_bundle
pipe.create(pipe_name=pipe_name, bundle=pipe_bundle, pipe_type='relax_disp')
 
# Create spin to hold data.
sequence.read(file='fake_sequence.in', dir=data, res_num_col=1, res_name_col=2)
deselect.read(file='unresolved', dir=data+os.sep+'500_MHz', spin_id_col=None, mol_name_col=None, res_num_col=1, boolean='AND', change_all=False)
deselect.read(file='unresolved', dir=data+os.sep+'800_MHz', spin_id_col=None, mol_name_col=None, res_num_col=1, res_name_col=2, boolean='AND', change_all=False)
 
# Give the spins attributes.
spin.isotope(isotope='15N', spin_id='@*', force=True)
spin.name(name='N')
 
# Do for 500.
#############
 
# Change directory.
os.chdir(data + os.sep + '500_MHz')
 
# Get the file list, and sort the file list alphanumeric.
flist500 = glob.glob('*.in_sparky')
flist500 = sort_filenames(filenames=flist500)
 
# Make ID.
ID500 = []
for f in flist500:
ID500.append("500_"+f.split(".in_sparky")[0])
 
# Then read.
spectrum.read_intensities(file=flist500, spectrum_id=ID500)
 
# Repeat for the replicated spectra.
flist500rep = glob.glob('*in.bis_sparky')
flist500rep = sort_filenames(filenames=flist500rep)
 
# Make ID.
ID500rep = []
for f in flist500rep:
ID500rep.append("500_"+f.split(".in.bis_sparky")[0]+'b')
 
# Then read.
spectrum.read_intensities(file=flist500rep, spectrum_id=ID500rep)
 
# Then map replicated.
for b_id in ID500rep:
a_id = b_id[:-1]
spectrum.replicated(spectrum_ids=[a_id, b_id])
 
# Then check.
print(cdp.replicates)
 
# Then repeat for 800.
######################
 
# Change directory.
os.chdir(data + os.sep + '800_MHz')
 
# Get the file list, and sort the file list alphanumeric.
flist800 = glob.glob('*.in_sparky')
flist800 = sort_filenames(filenames=flist800)
 
# Make ID.
ID800 = []
for f in flist800:
ID800.append("800_"+f.split(".in_sparky")[0])
 
# Then read.
spectrum.read_intensities(file=flist800, spectrum_id=ID800)
 
# Repeat for the replicated spectra.
flist800rep = glob.glob('*in.bis_sparky')
flist800rep = sort_filenames(filenames=flist800rep)
 
# Make ID.
ID800rep = []
for f in flist800rep:
ID800rep.append("800_"+f.split(".in.bis_sparky")[0]+'b')
 
# Then read.
spectrum.read_intensities(file=flist800rep, spectrum_id=ID800rep)
 
# Then map replicated.
for b_id in ID800rep:
a_id = b_id[:-1]
spectrum.replicated(spectrum_ids=[a_id, b_id])
 
# Then check.
print(cdp.replicates)
print("%s %s %s %s" % (len(ID500), len(ID500rep), len(ID800), len(ID800rep)))
 
# Then set spectrum properties.
all_ID = ID500 + ID500rep + ID800 + ID800rep
 
for cur_id in all_ID:
# Split from name.
sfrq_str, vcpmg_str = cur_id.split("_")
 
if vcpmg_str == 'reference':
vcpmg = None
else:
vcpmg = float(vcpmg_str.split("b")[0])
print("%s %s %s" % (cur_id, sfrq_str, vcpmg))
 
# Set the current experiment type.
relax_disp.exp_type(spectrum_id=cur_id, exp_type='SQ CPMG')
 
# Set the NMR field strength of the spectrum.
spectrometer.frequency(id=cur_id, frq=float(sfrq_str), units='MHz')
 
# Relaxation dispersion CPMG constant time delay T (in s).
relax_disp.relax_time(spectrum_id=cur_id, time=0.03)
 
# Set the relaxation dispersion CPMG frequencies.
relax_disp.cpmg_setup(spectrum_id=cur_id, cpmg_frq=vcpmg)
}}
 
== Inspect results ==
Go to the '''final''' folder.
 
Execute
<source lang="bash">
cd $HOME/test/final
./grace2images.py
</source>
Go through the PNG images
 
Also open
<source lang="bash">
gedit $HOME/test/log.txt $HOME/test/final/chi2.out $HOME/test/final/models.out
gedit $HOME/test/No_Rex/chi2.out
gedit $HOME/test/CR72/chi2.out $HOME/test/CR72/kex.out
gedit $HOME/test/NS_CPMG_2-site_expanded/chi2.out $HOME/test/NS_CPMG_2-site_expanded/kex.out
</source>
 
== Get info from log.txt ==
See [[Grep_log_file|Grep log file]] for inspiration.
 
Try these different grep commands
<source lang="bash">
egrep -wi --color 'relax>| model -' $HOME/test/log.txt
</source>
 
Find '''eliminate''' function
<source lang="bash">
egrep -wi --color -A 10 'relax> eliminate' $HOME/test/log.txt
</source>
 
Find '''model_selection''' function
<source lang="bash">
egrep -wi --color -A 100 'relax> model_selection' $HOME/test/log.txt
</source>
Trusted, Bureaucrats
4,223

edits