首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python (神经科学)中分割成试验的尖峰序列图

在Python (神经科学)中分割成试验的尖峰序列图
EN

Stack Overflow用户
提问于 2021-11-24 22:13:39
回答 1查看 112关注 0票数 0

我想要创建一个在y轴上有多个列车的尖峰序列,这就是任务:将尖峰序列分割成试验--一个更复杂的方法来说明对刺激呈现的神经元反应,分别为每个单元绘制与刺激呈现时间一致的尖峰序列片段。要绘制这种类型的点显示,您需要从原始的尖峰序列中删除时间对齐段。在NumPy中进行这种分段的一种方便方法是使用高级索引,如下所示:

代码语言:javascript
复制
ts_spk = spikes[0]    # spike train of the 0-th unit
t_on = stim_on[0][0]    # the 0-th onset time of stimulus 0
ts_spk_trial = ts_spk[(t_on - 0.2 < ts_spk) & (ts_spk < t_on + 0.3)] - t_on

最后一行中的索引ts_spk(t_on - 0.2 < ts_spk) & (ts_spk < t_on + 0.3)获取满足方括号中给出的条件的ts_spk元素。这里的条件是一个尖峰时间(即ts_spk的一个元素)是否在-0.2秒(即试验开始)到从t_on (即刺激开始)到0.3秒(即试验结束)之间。请注意,t_on是从峰值时间减去的,因此ts_spk_trial存储了相对于刺激开始时间的峰值时间。

让我们使用这个索引来实现一个函数,比如segment_spike_train(),它在给定的一组刺激开始时间内从给定的尖峰序列中删除片段。

Taks1c:完成以下函数segment_spike_train()

代码语言:javascript
复制
def segment_spike_train(ts_spk, trig, t_pre, t_post):
    
    Segment a given spike train around a given set of trigger times.

    Arguments
    ---------
    ts_spk : a list or array containing spike times
    trig : a list or array containing trigger times for segmentation
    t_pre : start time of a segment relative to trigger time
    t_post : end time of a segment relative to trigger time

    Returns
    -------
    segments : a list containing segments cut out from the spike train
               around the trigger times
    
    segments = []

    for t_trig in trig:
        t_on = stim_on[0][0]
        ts_spk = ts_spk[(t_on + t_pre < ts_spk) & (ts_spk < t_on + t_post)] - t_on
        
    segments.append(ts_spk)
       
   
    return segments


    # set parameter values
    t_start = -0.2
    t_end = 0.3

    unitID = 0

    # cut out spike train segments and draw a dot display for each stimulus type
    for stimID in range(len(stim_on)):
        # cut out spike train segments
       spikes_trial = segment_spike_train(spikes[unitID],stim_on[unitID], t_start, t_end)    
    # give appropriate arguments

    # plot spike train segments
    plt.subplot(2, 2, stimID + 1)
    dotdisplay(spikes_trial)    # give an appropriate argument
    
    # decorate the plot
    plt.grid()
    plt.xlabel("Time from stimulus onset (s)")
    plt.ylabel("Trial index")
    plt.title("Stimulus Type {0}".format(stimID))

    plt.suptitle("Dot display: unit {0}".format(unitID))'''

数据格式数据以.npy格式保存(即保存numpy数组的标准文件格式),spikes.npy包含20个同时记录的神经元的尖峰时间(以秒为单位),stim_on.npy包含刺激演示文稿集合的时间戳(以秒为单位),分别用于4种刺激类型。

在试用索引0处,只有一列有此代码的列车。我不知道我怎么能搭上多列火车。有人能帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2021-12-16 00:36:53

不确定这是否有帮助:

https://neuron.yale.edu/neuron/static/docs/neuronpython/spikeplot.html

也许你可以使用他们的代码,或者了解如何去做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70103568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档