Changeset 476
- Timestamp:
- 01/17/11 15:20:04 (16 months ago)
- Location:
- trunk/src
- Files:
-
- 2 modified
-
io.py (modified) (2 diffs)
-
signals/spikes.py (modified) (34 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/io.py
r452 r476 116 116 """ 117 117 cmd = '' 118 tmp = None 118 variable = None 119 label = None 119 120 f = open(self.filename, 'r') 120 121 for line in f.readlines(): 121 122 if line[0] == '#': 122 if line[1:].strip().find('variable') == -1: 123 if line[1:].strip().find('variable') != -1: 124 variable = line[1:].strip().split(" = ") 125 elif line[1:].strip().find('label') != -1: 126 label = line[1:].strip().split(" = ") 127 else: 123 128 cmd += line[1:].strip() + ';' 124 else:125 tmp = line[1:].strip().split(" = ")126 129 else: 127 130 break 128 131 f.close() 129 132 exec cmd in None, self.metadata 130 if not tmp is None: 131 self.metadata[tmp[0]] = tmp[1] 133 if not variable is None: 134 self.metadata[variable[0]] = variable[1] 135 if not variable is None: 136 self.metadata[label[0]] = label[1] 137 132 138 133 139 def __fill_metadata(self, object): … … 165 171 params['dims'] = self.metadata['dimensions'] 166 172 else: 167 raise Exception("dims can not be infered while reading %s" %self.filename)173 params['dims'] = len(params['id_list']) 168 174 return params 169 175 -
trunk/src/signals/spikes.py
r470 r476 857 857 pass 858 858 859 @property 859 860 def id_list(self): 860 861 """ … … 863 864 864 865 Examples 865 >> spklist.id_list ()866 >> spklist.id_list 866 867 [0,1,2,3,....,9999] 867 868 """ … … 873 874 """ 874 875 spklist = SpikeList([], [], self.t_start, self.t_stop, self.dimensions) 875 for id in self.id_list ():876 for id in self.id_list: 876 877 spklist.append(id, self.spiketrains[id]) 877 878 return spklist … … 885 886 if len(self) > 0: 886 887 if self.t_start is None: 887 start_times = numpy.array([self.spiketrains[idx].t_start for idx in self.id_list ()], numpy.float32)888 start_times = numpy.array([self.spiketrains[idx].t_start for idx in self.id_list], numpy.float32) 888 889 self.t_start = numpy.min(start_times) 889 890 logging.debug("Warning, t_start is infered from the data : %f" %self.t_start) … … 891 892 self.spiketrains[id].t_start = self.t_start 892 893 if self.t_stop is None: 893 stop_times = numpy.array([self.spiketrains[idx].t_stop for idx in self.id_list ()], numpy.float32)894 stop_times = numpy.array([self.spiketrains[idx].t_stop for idx in self.id_list], numpy.float32) 894 895 self.t_stop = numpy.max(stop_times) 895 896 logging.debug("Warning, t_stop is infered from the data : %f" %self.t_stop) … … 900 901 901 902 def __getitem__(self, id): 902 if id in self.id_list ():903 if id in self.id_list: 903 904 return self.spiketrains[id] 904 905 else: 905 raise Exception("id %d is not present in the SpikeList. See id_list ()" %id)906 raise Exception("id %d is not present in the SpikeList. See id_list" %id) 906 907 907 908 def __getslice__(self, i, j): … … 909 910 Return a new SpikeList object with all the ids between i and j 910 911 """ 911 ids = numpy.where((self.id_list () >= i) & (self.id_list()< j))[0]912 ids = numpy.where((self.id_list >= i) & (self.id_list < j))[0] 912 913 return self.id_slice(ids) 913 914 … … 931 932 Inputs: 932 933 sublist - can be an int (and then N random cells are selected). Otherwise 933 sub_list is a list of cell in self.id_list (). If None, id_list is returned934 sub_list is a list of cell in self.id_list. If None, id_list is returned 934 935 935 936 Examples: … … 937 938 """ 938 939 if sub_list == None: 939 return self.id_list ()940 return self.id_list 940 941 elif type(sub_list) == int: 941 return numpy.random.permutation(self.id_list ())[0:sub_list]942 return numpy.random.permutation(self.id_list)[0:sub_list] 942 943 else: 943 944 return sub_list … … 984 985 """ 985 986 assert isinstance(spktrain, SpikeTrain), "A SpikeList object can only contain SpikeTrain objects" 986 if id in self.id_list ():987 if id in self.id_list: 987 988 raise Exception("id %d already present in SpikeList. Use __setitem__ (spk[id]=...) instead()" %id) 988 989 else: … … 1031 1032 raise Exception("Spike Lists should have similar time_axis") 1032 1033 for sl in spklists: 1033 for id in sl.id_list ():1034 for id in sl.id_list: 1034 1035 self.append(id, sl.spiketrains[id]) 1035 1036 … … 1052 1053 """ 1053 1054 for id, spiketrain in spikelist.spiketrains.items(): 1054 if id in self.id_list ():1055 if id in self.id_list: 1055 1056 self.spiketrains[id].merge(spiketrain, relative) 1056 1057 else: … … 1076 1077 """ 1077 1078 id_list = set(id_list) 1078 missing_ids = id_list.difference(set(self.id_list ()))1079 missing_ids = id_list.difference(set(self.id_list)) 1079 1080 for id in missing_ids: 1080 1081 self.append(id, SpikeTrain([],self.t_start, self.t_stop)) … … 1092 1093 1093 1094 Examples: 1094 >> spklist.id_list ()1095 >> spklist.id_list 1095 1096 [830, 1959, 1005, 416, 1011, 1240, 729, 59, 1138, 259] 1096 1097 >> new_spklist = spklist.id_slice(5) 1097 >> new_spklist.id_list ()1098 >> new_spklist.id_list 1098 1099 [1011, 729, 1138, 416, 59] 1099 1100 … … 1122 1123 """ 1123 1124 new_SpkList = SpikeList([], [], t_start, t_stop, self.dimensions) 1124 for id in self.id_list ():1125 for id in self.id_list: 1125 1126 new_SpkList.append(id, self.spiketrains[id].time_slice(t_start, t_stop)) 1126 1127 new_SpkList.__calc_startstop() … … 1140 1141 t_start, t_stop = interval.time_parameters() 1141 1142 new_SpkList = SpikeList([], [], t_start, t_stop, self.dimensions) 1142 for id in self.id_list ():1143 for id in self.id_list: 1143 1144 new_SpkList.append(id, self.spiketrains[id].interval_slice(interval)) 1144 1145 return new_SpkList … … 1161 1162 self.t_start += offset 1162 1163 self.t_stop += offset 1163 for id in self.id_list ():1164 for id in self.id_list: 1164 1165 self.spiketrains[id].time_offset(offset) 1165 1166 … … 1173 1174 1174 1175 Examples: 1175 >> spklist.id_list ()1176 >> spklist.id_list 1176 1177 [0,1,2,3,4] 1177 1178 >> spklist.id_offset(10) 1178 >> spklist.id_list ()1179 >> spklist.id_list 1179 1180 [10,11,12,13,14] 1180 1181 """ 1181 id_list = numpy.sort(self.id_list ())1182 id_list = numpy.sort(self.id_list) 1182 1183 N = len(id_list) 1183 1184 … … 1193 1194 first_spike = self.t_stop 1194 1195 is_empty = True 1195 for id in self.id_list ():1196 for id in self.id_list: 1196 1197 if len(self.spiketrains[id]) > 0: 1197 1198 is_empty = False … … 1209 1210 last_spike = self.t_start 1210 1211 is_empty = True 1211 for id in self.id_list ():1212 for id in self.id_list: 1212 1213 if len(self.spiketrains[id]) > 0: 1213 1214 is_empty = False … … 1236 1237 """ 1237 1238 selected_ids = [] 1238 for id in self.id_list ():1239 for id in self.id_list: 1239 1240 cell = self.spiketrains[id] 1240 1241 if eval(criteria): … … 1259 1260 """ 1260 1261 criterias = numpy.zeros(len(self), float) 1261 for count, id in enumerate(self.id_list ()):1262 for count, id in enumerate(self.id_list): 1262 1263 cell = self.spiketrains[id] 1263 1264 criterias[count] = eval(criteria) 1264 result = self.id_list ()[numpy.argsort(criterias)]1265 result = self.id_list[numpy.argsort(criterias)] 1265 1266 if descending: 1266 1267 return result[numpy.arange(len(result)-1, -1, -1)] … … 1304 1305 """ 1305 1306 isis = [] 1306 for id in self.id_list ():1307 for id in self.id_list: 1307 1308 isis.append(self.spiketrains[id].isi()) 1308 1309 return isis … … 1365 1366 1366 1367 """ 1367 ids = self.id_list ()1368 ids = self.id_list 1368 1369 N = len(ids) 1369 1370 cvs_isi = numpy.empty(N) … … 1395 1396 cv_isi_hist, cv_local, cv_isi, SpikeTrain.cv_kl 1396 1397 """ 1397 ids = self.id_list ()1398 ids = self.id_list 1398 1399 N = len(ids) 1399 1400 cvs_kl = numpy.empty(N) … … 1475 1476 vLocCV = numpy.zeros(maxBin) 1476 1477 vCnt = numpy.zeros(maxBin) 1477 N = len(self.id_list ())1478 N = len(self.id_list) 1478 1479 for i in xrange(N): 1479 1480 if len(self.spiketrains[i])>15 : … … 1550 1551 """ 1551 1552 rates = [] 1552 for id in self.id_list ():1553 for id in self.id_list: 1553 1554 rates.append(self.spiketrains[id].mean_rate(t_start, t_stop)) 1554 1555 return rates … … 1611 1612 spike_hist = numpy.zeros((N, M), numpy.float32) 1612 1613 subplot = get_display(display) 1613 for idx,id in enumerate(self.id_list ()):1614 for idx,id in enumerate(self.id_list): 1614 1615 spike_hist[idx,:] = self.spiketrains[id].time_histogram(time_bin, normalized) 1615 1616 if not subplot or not HAVE_PYLAB: … … 1680 1681 """ 1681 1682 fano_factors = [] 1682 for id in self.id_list ():1683 for id in self.id_list: 1683 1684 try: 1684 1685 fano_factors.append(self.spiketrains[id].fano_factor_isi()) … … 1785 1786 activity_map = numpy.zeros(self.dimensions, float) 1786 1787 rates = spklist.mean_rates() 1787 #id_offset = min(self.id_list ())1788 #x,y = spklist.id2position(spklist.id_list (), id_offset)1789 x,y = spklist.id2position(spklist.id_list ())1788 #id_offset = min(self.id_list) 1789 #x,y = spklist.id2position(spklist.id_list, id_offset) 1790 x,y = spklist.id2position(spklist.id_list) 1790 1791 #j,i = x, self.dimensions[0] - 1 - y 1791 for count, id in enumerate(spklist.id_list ()):1792 for count, id in enumerate(spklist.id_list): 1792 1793 #activity_map[i[count],j[count]] = rates[count] 1793 1794 activity_map[x[count],y[count]] = rates[count] … … 1799 1800 pylab.draw() 1800 1801 elif isinstance(float_positions, numpy.ndarray): 1801 if not len(spklist.id_list ()) == len(float_positions[0]):1802 if not len(spklist.id_list) == len(float_positions[0]): 1802 1803 raise Exception("Error, the number of flotting positions does not match the number of cells in the SpikeList") 1803 1804 rates = spklist.mean_rates() … … 1932 1933 times2, ids2 = spk2.convert("times, ids") 1933 1934 1934 cells_id = spk1.id_list ()1935 cells_id = spk1.id_list 1935 1936 for idx in xrange(len(cells_id)): 1936 1937 ids1[numpy.where(ids1 == cells_id[idx])[0]] = idx 1937 cells_id = spk2.id_list ()1938 cells_id = spk2.id_list 1938 1939 for idx in xrange(len(cells_id)): 1939 1940 ids2[numpy.where(ids2 == cells_id[idx])[0]] = idx … … 2092 2093 subplot = get_display(display) 2093 2094 if id_list == None: 2094 id_list = self.id_list ()2095 id_list = self.id_list 2095 2096 spk = self 2096 2097 else: … … 2112 2113 ylabel = "Neuron #" 2113 2114 set_labels(subplot, xlabel, ylabel) 2114 min_id = numpy.min(spk.id_list ())2115 max_id = numpy.max(spk.id_list ())2115 min_id = numpy.min(spk.id_list) 2116 max_id = numpy.max(spk.id_list) 2116 2117 length = t_stop - t_start 2117 2118 set_axis_limits(subplot, t_start-0.05*length, t_stop+0.05*length, min_id-2, max_id+2)
