Difference between revisions of "Spin loop"
Jump to navigation
Jump to search
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | The spin loop is a powerful concept built into the relax data model for allowing for programmatic access to the spin system information for power users. | ||
+ | |||
+ | |||
== View results per spin == | == View results per spin == | ||
# Looking at the contents of the '''spin viewer''' window in the GUI, | # Looking at the contents of the '''spin viewer''' window in the GUI, | ||
# Opening a relax results or state XML file in a text editor, | # Opening a relax results or state XML file in a text editor, | ||
# Looking at the cdp.mol[i].res[j].spin[k] data structure. | # Looking at the cdp.mol[i].res[j].spin[k] data structure. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Looping over spin === | === Looping over spin === | ||
+ | The automated looping over all spin systems is provided by the <code>pipe_control.mol_res_spin.spin_loop()</code> function. | ||
<source lang="python"> | <source lang="python"> | ||
from pipe_control.mol_res_spin import spin_loop | from pipe_control.mol_res_spin import spin_loop | ||
− | for | + | for cur_spin, cur_spin_id in spin_loop(return_id=True, skip_desel=True): |
− | print("Spin '%s', model '%s'" % ( | + | print("Spin '%s', model '%s'" % (cur_spin_id, cur_spin.model)) |
</source> | </source> | ||
Line 35: | Line 25: | ||
'isotope', 'iter', 'iter_sim', 'kex', 'kex_err', 'kex_sim', 'model', 'name', 'num', 'params', 'phi_ex', 'phi_ex_err', | 'isotope', 'iter', 'iter_sim', 'kex', 'kex_err', 'kex_sim', 'model', 'name', 'num', 'params', 'phi_ex', 'phi_ex_err', | ||
'phi_ex_sim', 'r2', 'r2_err', 'r2_sim', 'r2eff', 'r2eff_bc', 'r2eff_err', 'r2eff_sim', 'select', 'select_sim', 'warning', 'warning_sim'] | 'phi_ex_sim', 'r2', 'r2_err', 'r2_sim', 'r2eff', 'r2eff_bc', 'r2eff_err', 'r2eff_sim', 'select', 'select_sim', 'warning', 'warning_sim'] | ||
+ | </source> | ||
+ | |||
+ | === Looping over cdp === | ||
+ | <source lang="python"> | ||
+ | print cdp.mol | ||
+ | for resiob in cdp.mol[0].res: | ||
+ | print resiob.name, resiob.num, resiob.spin[0].kex, resiob.spin[0].model | ||
+ | |||
+ | print dir(resiob) | ||
+ | ['__class__', '__clone__', '__deepcopy__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', | ||
+ | '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', | ||
+ | '__subclasshook__', '__weakref__', '_mol_index', '_mol_name', '_res_index', '_spin_name_count', '_spin_num_count', | ||
+ | 'is_empty', 'name', 'num', 'spin'] | ||
+ | |||
+ | print resiob.spin[0] | ||
+ | Class containing all the spin system specific data. | ||
+ | |||
+ | |||
+ | Objects: | ||
+ | chi2: 11.874300873564689 | ||
+ | chi2_sim: [14.523790384116937, 10.421984394434467, 5.782991669673739] | ||
+ | f_count: 4346 | ||
+ | f_count_sim: [3091, 3066, 3088] | ||
+ | g_count: 0 | ||
+ | g_count_sim: [0, 0, 0] | ||
+ | h_count: 0 | ||
+ | h_count_sim: [0, 0, 0] | ||
+ | intensities: {...} | ||
+ | intensity_err: {...} | ||
+ | isotope: '15N' | ||
+ | iter: 2321 | ||
+ | iter_sim: [1445, 1489, 1499] | ||
+ | kex: 1518.3336310465504 | ||
+ | kex_err: 24.718400260552574 | ||
+ | kex_sim: [1547.3705743455107, 1500.7295092586053, 1509.8565144042634] | ||
+ | model: 'LM63' | ||
+ | name: 'N' | ||
+ | num: 299 | ||
+ | params: ['r2', 'phi_ex', 'kex'] | ||
+ | phi_ex: 0.03280687317441723 | ||
+ | phi_ex_err: 0.0010729815517414483 | ||
+ | phi_ex_sim: [0.032435172864419055, 0.03258987358910283, 0.0343661464342843] | ||
+ | r2: [4.368523460822981] | ||
+ | r2_err: [0.08171058470725454] | ||
+ | r2_sim: [[4.435626855491755], [4.4791162202194625], [4.320948059941103]] | ||
+ | r2eff: {...} | ||
+ | r2eff_bc: {...} | ||
+ | r2eff_err: {...} | ||
+ | r2eff_sim: [{...}] | ||
+ | select: True | ||
+ | select_sim: [True, True, True] | ||
+ | tex: 0.0003293083876798291 | ||
+ | tex_err: 5.312950569801097e-06 | ||
+ | tex_sim: [0.00032312880203986323, 0.0003331712989684673, 0.00033115729556413014] | ||
+ | warning: None | ||
+ | warning_sim: [None, None, None] | ||
+ | |||
</source> | </source> | ||
== See also == | == See also == | ||
[[Category:Results]] | [[Category:Results]] | ||
+ | [[Category: List objects]] |
Latest revision as of 06:26, 16 October 2017
The spin loop is a powerful concept built into the relax data model for allowing for programmatic access to the spin system information for power users.
View results per spin
- Looking at the contents of the spin viewer window in the GUI,
- Opening a relax results or state XML file in a text editor,
- Looking at the cdp.mol[i].res[j].spin[k] data structure.
Looping over spin
The automated looping over all spin systems is provided by the pipe_control.mol_res_spin.spin_loop()
function.
from pipe_control.mol_res_spin import spin_loop
for cur_spin, cur_spin_id in spin_loop(return_id=True, skip_desel=True):
print("Spin '%s', model '%s'" % (cur_spin_id, cur_spin.model))
To see available information in the spin class
dir(spin)
['__class__', '__clone__', '__deepcopy__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__',
'__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', '__weakref__', '_back_compat_hook', '_back_compat_hook_mf_data', '_back_compat_hook_ri_data',
'_mol_index', '_mol_name', '_res_index', '_res_name', '_res_num', '_spin_ids', '_spin_index',
'chi2', 'chi2_sim', 'f_count', 'f_count_sim', 'g_count', 'g_count_sim', 'h_count', 'h_count_sim', 'intensities', 'intensity_err', 'is_empty',
'isotope', 'iter', 'iter_sim', 'kex', 'kex_err', 'kex_sim', 'model', 'name', 'num', 'params', 'phi_ex', 'phi_ex_err',
'phi_ex_sim', 'r2', 'r2_err', 'r2_sim', 'r2eff', 'r2eff_bc', 'r2eff_err', 'r2eff_sim', 'select', 'select_sim', 'warning', 'warning_sim']
Looping over cdp
print cdp.mol
for resiob in cdp.mol[0].res:
print resiob.name, resiob.num, resiob.spin[0].kex, resiob.spin[0].model
print dir(resiob)
['__class__', '__clone__', '__deepcopy__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__',
'__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', '__weakref__', '_mol_index', '_mol_name', '_res_index', '_spin_name_count', '_spin_num_count',
'is_empty', 'name', 'num', 'spin']
print resiob.spin[0]
Class containing all the spin system specific data.
Objects:
chi2: 11.874300873564689
chi2_sim: [14.523790384116937, 10.421984394434467, 5.782991669673739]
f_count: 4346
f_count_sim: [3091, 3066, 3088]
g_count: 0
g_count_sim: [0, 0, 0]
h_count: 0
h_count_sim: [0, 0, 0]
intensities: {...}
intensity_err: {...}
isotope: '15N'
iter: 2321
iter_sim: [1445, 1489, 1499]
kex: 1518.3336310465504
kex_err: 24.718400260552574
kex_sim: [1547.3705743455107, 1500.7295092586053, 1509.8565144042634]
model: 'LM63'
name: 'N'
num: 299
params: ['r2', 'phi_ex', 'kex']
phi_ex: 0.03280687317441723
phi_ex_err: 0.0010729815517414483
phi_ex_sim: [0.032435172864419055, 0.03258987358910283, 0.0343661464342843]
r2: [4.368523460822981]
r2_err: [0.08171058470725454]
r2_sim: [[4.435626855491755], [4.4791162202194625], [4.320948059941103]]
r2eff: {...}
r2eff_bc: {...}
r2eff_err: {...}
r2eff_sim: [{...}]
select: True
select_sim: [True, True, True]
tex: 0.0003293083876798291
tex_err: 5.312950569801097e-06
tex_sim: [0.00032312880203986323, 0.0003331712989684673, 0.00033115729556413014]
warning: None
warning_sim: [None, None, None]