ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/osprai/osprai/trunk/test.py
(Generate patch)
# Line 1 | Line 1
1   """
2   Christopher Lausted, Institute for Systems Biology
3 < Last modified on 100408 (yymmdd)
4 < Small script to test ba_class, io_module, etc.
3 > Last modified on 100519 (yymmdd)
4 > Scripts to test various OSPRAI components.
5   """
6  
7 < ## Import modules.
8 < import vu_module as vu
9 < import io_module as io
10 < ## Reload in case code has changed.
11 < reload (vu)
12 < reload(io)
13 <
14 < #ba1 = io.readbiosensor("example-biosensor.txt")
15 < ba1 = io.readicmtxt("example-icm.txt")
16 < #ba1 = io.readsprit("example-sprit.txt")
17 < #ba1 = io.applykey(ba1, "example-key.tsv")
18 < #ba1.set_plot_all()
19 < #ba1.set_plot_list(range(6))
20 < #ba1.plot()
21 <
22 < #io.writesprit(ba1,"testwritesprit.txt")
23 < #io.writeclamp(ba1,"testwriteclamp.txt")
24 < #io.writebiosensor(ba1, "testwritebiosensor.txt")
25 <
26 < vu.linegraph(ba1)
27 < vu.dotgraph(ba1)
28 < vu.dualgraph(ba1, ba1)
7 > ## Import libaries
8 > import ba_class
9 > import vu_module
10 > import io_module
11 > import cal_module
12 > import mdl_module
13 > import fit_module
14 > import osprai_one
15 > ## Reload Osprai libraries in case code has changed.
16 > reload(ba_class)
17 > reload (vu_module)
18 > reload(io_module)
19 > reload(cal_module)
20 > reload(mdl_module)
21 > reload(fit_module)
22 > reload(osprai_one)
23 > ## Or just import this next one...
24 > from osprai_one import *
25  
26 < input("Done with test. Press any key")
26 >
27 > def test_io_module():
28 >    print "Loading SPR data files..."
29 >    ba1 = readbiosensor("example-biosensor.txt")
30 >    ba1 = readicmtxt("example-icm.txt")
31 >    ba1 = readsprit("example-sprit.txt")
32 >    ba1 = applykey(ba1, "example-key.tsv")
33 >    print "Writing SPR data files..."
34 >    writesprit(ba1,"testwritesprit.txt")
35 >    writeclamp(ba1,"testwriteclamp.txt")
36 >    writebiosensor(ba1, "testwritebiosensor.txt")
37 >    print "Done with test_io_module."
38 >    return
39 >    
40 > def test_cal_module_vu_module():
41 >    print "Loading an SPR data file..."
42 >    ba1 = readicmtxt("example-icm.txt")
43 >    
44 >    print "Plotting the raw data file..."
45 >    dotgraph(ba1)
46 >    
47 >    print "Plotting the calibrated data..."
48 >    ba2 = calibrate(ba1, ba1, 2850, 3120)
49 >    linegraph(ba2, "Calibrated SPR Data")
50 >    dualgraph(ba1, ba2, "Uncalibrated and Calibrated SPR Data")
51 >    
52 >    print "Use ROI #16 as background, subtract, and plot..."
53 >    bgset(ba2, 16)
54 >    ba3 = bgsubt(ba2)
55 >    linegraph(ba3, "Calibrated Referenced SPR Data")
56 >    
57 >    print "Test of scatterplot using time points 500, 1000, 1500, 2000"
58 >    scatterplot(ba3, 3600, 4200, 3600, 4700, "Scatterplot")
59 >    
60 >    print "Cutting out an interval..."
61 >    ba3 = copyinterval(ba3, 2800, 6200)
62 >    linegraph(ba3)
63 >    print "Done with test test_cal_module_vu_module."
64 >    return
65 >
66 >
67 > def test_mdl_module_fit_module():
68 >    print "Test the model module..."
69 >    ## Set some default parameters.
70 >    dpar = {'t1':  {'value':30.0, 'min':30.0, 'max':30.0, 'fixed':'fixed'} }
71 >    dpar['rmax'] = {'value':100.0, 'min':1.0, 'max':1000.0, 'fixed':'fixed'}
72 >    dpar['conc'] = {'value':1e-5, 'min':1e-12, 'max':1e1, 'fixed':'fixed'}
73 >    dpar['cofa'] = {'value':1.0, 'min':1e-10, 'max':1e10, 'fixed':'fixed'}
74 >    dpar['kon'] =  {'value':2e4, 'min':1e1, 'max':1e8, 'fixed':'fixed'}
75 >    dpar['t2'] =   {'value':150.0, 'min':10.0, 'max':1000.0, 'fixed':'fixed'}
76 >    dpar['koff'] = {'value':1.0e-2, 'min':1e-8, 'max':1e-1, 'fixed':'fixed'}
77 >    dpar['t3'] =   {'value':270.0, 'min':270.0, 'max':270.0, 'fixed':'fixed'}
78 >    ## Create ba with three ROIs and 300 datapoints.
79 >    ba0 = BiosensorArray(3,300)
80 >    for roi in ba0.roi:
81 >        roi.time = arange(300, dtype=float)  ## Samples every 1 second.
82 >        roi.value = zeros(300, dtype=float) + 20  ## Baseline signal is 20 units.
83 >        roi.params = deepcopy(dpar)
84 >        roi.model = simple1to1
85 >    ## Set the dilution factors
86 >    ba0.roi[0].params['cofa']['value'] = 1.0 / 27
87 >    ba0.roi[1].params['cofa']['value'] = 1.0 / 9
88 >    ba0.roi[2].params['cofa']['value'] = 1.0 / 3
89 >    ## Simulate the data and plot it.
90 >    for roi in ba0.roi:
91 >        roi.value = roi.model(roi.time, roi.value, roi.params)
92 >    linegraph(ba0, "Simulation")
93 >    
94 >    ## Constrain rmax belowtrue value to show what happens.
95 >    print "Testing the fitting..."
96 >    ba1 = deepcopy(ba0)
97 >    ## Set one kon, koff, rmax to float.
98 >    ba1.roi[0].params['koff']['fixed'] = 'float'
99 >    ba1.roi[0].params['kon']['fixed'] = 'float'
100 >    ba1.roi[0].params['rmax'] = {'value':10.0, 'min':1.0, 'max':80.0, 'fixed':'float'}
101 >    ba1.roi[1].params['koff']['fixed'] = 0
102 >    ba1.roi[1].params['kon']['fixed'] = 0
103 >    ba1.roi[1].params['rmax']['fixed'] = 0
104 >    ba1.roi[2].params['koff']['fixed'] = 0
105 >    ba1.roi[2].params['kon']['fixed'] = 0
106 >    ba1.roi[2].params['rmax']['fixed'] = 0
107 >    ## Fit and then plot.
108 >    mclma(ba1.roi)
109 >    for roi in ba1.roi:
110 >        roi.value =roi.model(roi.time, roi.value, roi.params)
111 >    dualgraph(ba0, ba1, "Fitted Data with an incorrect rmax constraint")
112 >    print "Done with test test_mdl_module_fit_module."
113 >    return
114 >    
115 >
116 > def demo_mtl():
117 >    print "Test the model module..."
118 >    ba0 = BiosensorArray(1,300)  ## Create ba1 with one ROI and 300 datapoints.
119 >    roi0 = ba0.roi[0]
120 >    roi0.time = arange(300, dtype=float)  ## Samples every 1 second.
121 >    roi0.value = zeros(300, dtype=float) + 20  ## Baseline signal is 20 units.
122 >    roi0.params = {'t1': {'value':30.0, 'min':30.0, 'max':30.0, 'fixed':True} }
123 >    roi0.params['rmax'] =  {'value': 100.0}
124 >    roi0.params['conc'] =  {'value': 1e-6}
125 >    roi0.params['kon'] =   {'value': 5e4}
126 >    roi0.params['t2'] =    {'value': 150.0}
127 >    roi0.params['koff'] =  {'value': 5e-3}
128 >    roi0.params['t3'] =    {'value': 270.0}
129 >    roi0.params['kmtl'] =  {'value': 2e6}
130 >    roi0.name = "kmtl=2e6"
131 >    roi0.model = simple1to1_mtl
132 >    roi0.value =roi0.model(roi0.time, roi0.value, roi0.params)
133 >    
134 >    ba1 = deepcopy(ba0)
135 >    roi0 = ba1.roi[0]
136 >    roi0.name = "No MTL"
137 >    roi0.model = simple1to1
138 >    roi0.value =roi0.model(roi0.time, roi0.value, roi0.params)
139 >    dualgraph(ba0, ba1, "With and without MTL")
140 >    print "Done with test demo_mtl."
141 >
142 >
143 > ## Run selected test or tests.
144 > #test_io_module()
145 > #test_cal_module_vu_module()
146 > #demo_mtl()
147 > test_mdl_module_fit_module()

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines