本文整理汇总了Python中neo.core.SpikeTrain.annotations['channel_index']方法的典型用法代码示例。如果您正苦于以下问题:Python SpikeTrain.annotations['channel_index']方法的具体用法?Python SpikeTrain.annotations['channel_index']怎么用?Python SpikeTrain.annotations['channel_index']使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类neo.core.SpikeTrain
的用法示例。
在下文中一共展示了SpikeTrain.annotations['channel_index']方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: generate_one_simple_segment
# 需要导入模块: from neo.core import SpikeTrain [as 别名]
# 或者: from neo.core.SpikeTrain import annotations['channel_index'] [as 别名]
def generate_one_simple_segment(seg_name='segment 0',
supported_objects=[],
nb_analogsignal=4,
t_start=0.*pq.s,
sampling_rate=10*pq.kHz,
duration=6.*pq.s,
nb_spiketrain=6,
spikerate_range=[.5*pq.Hz, 12*pq.Hz],
event_types={'stim': ['a', 'b',
'c', 'd'],
'enter_zone': ['one',
'two'],
'color': ['black',
'yellow',
'green'],
},
event_size_range=[5, 20],
epoch_types={'animal state': ['Sleep',
'Freeze',
'Escape'],
'light': ['dark',
'lighted']
},
epoch_duration_range=[.5, 3.],
):
if supported_objects and Segment not in supported_objects:
raise ValueError('Segment must be in supported_objects')
seg = Segment(name=seg_name)
if AnalogSignal in supported_objects:
for a in range(nb_analogsignal):
anasig = AnalogSignal(rand(int(sampling_rate * duration)),
sampling_rate=sampling_rate, t_start=t_start,
units=pq.mV, channel_index=a,
name='sig %d for segment %s' % (a, seg.name))
seg.analogsignals.append(anasig)
if SpikeTrain in supported_objects:
for s in range(nb_spiketrain):
spikerate = rand()*np.diff(spikerate_range)
spikerate += spikerate_range[0].magnitude
#spikedata = rand(int((spikerate*duration).simplified))*duration
#sptr = SpikeTrain(spikedata,
# t_start=t_start, t_stop=t_start+duration)
# #, name = 'spiketrain %d'%s)
spikes = rand(int((spikerate*duration).simplified))
spikes.sort() # spikes are supposed to be an ascending sequence
sptr = SpikeTrain(spikes*duration,
t_start=t_start, t_stop=t_start+duration)
sptr.annotations['channel_index'] = s
seg.spiketrains.append(sptr)
if Event in supported_objects:
for name, labels in event_types.items():
evt_size = rand()*np.diff(event_size_range)
evt_size += event_size_range[0]
evt_size = int(evt_size)
labels = np.array(labels, dtype='S')
labels = labels[(rand(evt_size)*len(labels)).astype('i')]
evt = Event(times=rand(evt_size)*duration, labels=labels)
seg.events.append(evt)
if Epoch in supported_objects:
for name, labels in epoch_types.items():
t = 0
times = []
durations = []
while t < duration:
times.append(t)
dur = rand()*np.diff(epoch_duration_range)
dur += epoch_duration_range[0]
durations.append(dur)
t = t+dur
labels = np.array(labels, dtype='S')
labels = labels[(rand(len(times))*len(labels)).astype('i')]
epc = Epoch(times=pq.Quantity(times, units=pq.s),
durations=pq.Quantity([x[0] for x in durations],
units=pq.s),
labels=labels,
)
seg.epochs.append(epc)
# TODO : Spike, Event
seg.create_many_to_one_relationship()
return seg