Difference between revisions of "Matplotlib example"

From relax wiki
Jump to navigation Jump to search
Line 39: Line 39:
  
 
plt.plot(resi_data, kex_data, 'ro')
 
plt.plot(resi_data, kex_data, 'ro')
 +
plt.show()
 +
</source>
 +
 +
== Example 2 ==
 +
 +
File: '''mat_example.py'''
 +
<source lang="python">
 +
# Get the OS path separator
 +
from os import sep
 +
# Plotting facility.
 +
import matplotlib.pyplot as plt
 +
 +
# Import some tools to loop over the spins.
 +
from pipe_control.mol_res_spin import return_spin, spin_loop
 +
 +
# Load the state
 +
#state.load('final_state.bz2', force=True)
 +
 +
outfile = open("test.txt", "w")
 +
 +
# Ini
 +
spectrometer_frq = cdp.spectrometer_frq_list[0]
 +
cpmg_frqs_list = cdp.cpmg_frqs_list
 +
sel_point = cpmg_frqs_list[1]
 +
 +
resi_data = []
 +
Rex_data = []
 +
Model_data = []
 +
for resiob in cdp.mol[0].res:
 +
    cur_model = resiob.spin[0].model
 +
    if cur_model == "TSMFK01" :
 +
        r2dic=resiob.spin[0].r2a
 +
        for key, value in r2dic.iteritems():
 +
            r2a = value
 +
    elif cur_model == "CR72 full":
 +
        r2dic=resiob.spin[0].r2a
 +
        for key, value in r2dic.iteritems():
 +
            r2a = value
 +
    else:
 +
        r2dic=resiob.spin[0].r2
 +
        for key, value in r2dic.iteritems():
 +
            r2a = value
 +
 +
    r2effdic = resiob.spin[0].r2eff
 +
    for key, value in r2effdic.iteritems():
 +
        curcpmg = float(key.split("_")[-1])
 +
        if curcpmg == sel_point:
 +
            r2eff = value
 +
 +
    Rex = r2eff - r2a
 +
 +
    print(resiob.name, resiob.num, cur_model, r2a, r2eff, Rex)
 +
    outfile.write("%s %s %s %s %s %s\n"%(resiob.name, resiob.num, cur_model.replace (" ", "_"), r2a, r2eff, Rex))
 +
 +
    resi_data.append(resiob.num)
 +
    Rex_data.append(Rex)
 +
    Model_data.append(cur_model)
 +
 +
outfile.close()
 +
 +
plt.plot(resi_data, Rex_data, 'ro')
 +
for i in range(len(resi_data)):
 +
    resi = resi_data[i]
 +
    Rex = Rex_data[i]
 +
    Model = Model_data[i]
 +
    if Model == "No Rex":
 +
        textcolor = 'k'
 +
    elif Model == "TSMFK01":
 +
        textcolor = 'r'
 +
    else:
 +
        textcolor = 'b'
 +
 +
    plt.annotate('%s'%(resi), xy=(resi,Rex), xytext=(resi, Rex), size=8, color=textcolor)
 +
plt.plot([min(resi_data), max(resi_data)], [0, 0], 'k-', lw=2)
 +
 
plt.show()
 
plt.show()
 
</source>
 
</source>

Revision as of 17:07, 14 January 2014

Example

File: mat_example.py

# Get the OS path separator
from os import sep
# Find relax installation dir
from status import Status; status = Status()

# Import some tools to loop over the spins.
from pipe_control.mol_res_spin import return_spin, spin_loop

# Extra tools fo
import specific_analyses.relax_disp.disp_data as dtools

# Plotting facility.
import matplotlib.pyplot as plt

# Path to data
data_path = status.install_path + sep+'test_suite'+sep+'shared_data'+sep+'dispersion'+sep+'Hansen'+sep+'relax_results'

# Load the state
state.load(data_path+sep+'final_state.bz2', force=True)

# Loop over the spins
for spin, spin_id in spin_loop(return_id=True):
    print spin, spin_id

# Get the available data for a spin.
print(dir(spin))

resi_data = []
kex_data = []
for resiob in cdp.mol[0].res:
    print resiob.name, resiob.num, resiob.spin[0].kex, resiob.spin[0].model
    resi_data.append(resiob.num), kex_data.append(resiob.spin[0].kex)

print(dir(resiob))

plt.plot(resi_data, kex_data, 'ro')
plt.show()

Example 2

File: mat_example.py

# Get the OS path separator
from os import sep
# Plotting facility.
import matplotlib.pyplot as plt

# Import some tools to loop over the spins.
from pipe_control.mol_res_spin import return_spin, spin_loop
 
# Load the state
#state.load('final_state.bz2', force=True)

outfile = open("test.txt", "w")

# Ini
spectrometer_frq = cdp.spectrometer_frq_list[0]
cpmg_frqs_list = cdp.cpmg_frqs_list
sel_point = cpmg_frqs_list[1]

resi_data = []
Rex_data = []
Model_data = []
for resiob in cdp.mol[0].res:
    cur_model = resiob.spin[0].model
    if cur_model == "TSMFK01" :
        r2dic=resiob.spin[0].r2a
        for key, value in r2dic.iteritems():
            r2a = value
    elif cur_model == "CR72 full":
        r2dic=resiob.spin[0].r2a
        for key, value in r2dic.iteritems():
            r2a = value
    else:
        r2dic=resiob.spin[0].r2
        for key, value in r2dic.iteritems():
            r2a = value

    r2effdic = resiob.spin[0].r2eff
    for key, value in r2effdic.iteritems():
        curcpmg = float(key.split("_")[-1])
        if curcpmg == sel_point:
            r2eff = value

    Rex = r2eff - r2a

    print(resiob.name, resiob.num, cur_model, r2a, r2eff, Rex)
    outfile.write("%s %s %s %s %s %s\n"%(resiob.name, resiob.num, cur_model.replace (" ", "_"), r2a, r2eff, Rex))

    resi_data.append(resiob.num)
    Rex_data.append(Rex)
    Model_data.append(cur_model)

outfile.close()

plt.plot(resi_data, Rex_data, 'ro')
for i in range(len(resi_data)):
    resi = resi_data[i]
    Rex = Rex_data[i]
    Model = Model_data[i]
    if Model == "No Rex":
        textcolor = 'k'
    elif Model == "TSMFK01":
        textcolor = 'r'
    else:
        textcolor = 'b'

    plt.annotate('%s'%(resi), xy=(resi,Rex), xytext=(resi, Rex), size=8, color=textcolor)
plt.plot([min(resi_data), max(resi_data)], [0, 0], 'k-', lw=2)

plt.show()

To run

relax mat_example.py

Or

$ relax
relax> script('mat_example.py')

See also