ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/osprai/osprai/trunk/ba_class.py
(Generate patch)
# Line 2 | Line 2
2   ba: Biosensor Array class for storing SPRI data.
3   Christopher Lausted, Institute for Systems Biology,
4   Yuhang Wan, OSPRAI developers
5 < Last modified on 100412 (yymmdd)
5 > Last modified on 100421 (yymmdd)
6  
7   Examples:
8   #ba1 = BiosensorArray(800,1500)     ## Allocate object with 800 spots of 1500 time points.
# Line 10 | Line 10
10   #ba1.roi[799].value[1499] = 0.50    ## Set SPR reflectance signal.
11   #ba1.roi[799].name = "anti-IgG"     ## Set name of microarray feature.
12   """
13 < __version__ = "100412"
13 > __version__ = "100421"
14  
15   ## Import libraries.
16   import numpy as np
# Line 95 | Line 95
95          self.injstop = [0.0]     ## One or more injection start times.
96          self.injrind = [0.0]     ## One or more expected refractive index jumps.
97          self.flow = 0            ## Flowrate of injection.
98 +        ## Curve fitting information.  Model and model parameters.
99 +        ## Example model is reference to function like data=simple1to1(times,params)
100 +        ## Example params = {'Rmax': {'value':1, 'min':0, 'max':10, 'fixed':False} }
101 +        self.model = None    ## Model describing this roi. Reference to a function.
102 +        self.params = []     ## Parameters for this model. A dictionary of dictionaries.
103          
104      def time2dp(self, t):
105          """Find datapoint closest to given time."""
106 <        pos2 = self.time.searchsorted(t)  ## Time point just after t.
107 <        pos1 = max(pos2-1,0)
108 <        #TEMP! There is a bug here.
104 <        print pos1, pos2
106 >        pos2 = self.time.searchsorted(t)    ## Time point just after t.
107 >        pos2 = min(pos2, len(self.time)-1)  ## Avoid indexing error.
108 >        pos1 = max(pos2-1,0)                ## Time point just before t.
109          t2 = abs(self.time[pos2] - t)
110          t1 = abs(self.time[pos1] - t)
111 +        ## Decide if time point just before or just after is closer.
112          if (t2<t1):
113              return pos2
114          else:
# Line 112 | Line 117
117      def time2val(self, t1, t2):
118          """Return list of SPR values between t1 and t2"""
119          dp1, dp2 = self.time2dp(t1), self.time2dp(t2)
120 <        return [self.value(i) for i in range(dp1, dp2)]
120 >        return [self.value[i] for i in range(dp1, dp2)]
121      
122      ## End of RegOfInterest definition.
123  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines