Changeset 344

Show
Ignore:
Timestamp:
11/15/08 18:03:03 (2 months ago)
Author:
JensKremkow
Message:

more details in the sfn example

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/examples/sfn2008/sfn_example1.py

    r343 r344  
    11import NeuroTools.stgen as stgen 
    22sg = stgen.StGen() 
    3 duration = 1000. 
    4 st1 = sg.poisson_generator(rate=100., t_stop = duration)  
     3duration = 10000. 
     4nu = 20. 
     5c = 0.0 # correlation 
     6rate_independent = (1-c)*nu 
     7rate_shared = c*nu 
     8 
     9st1 = sg.poisson_generator(rate=rate_independent, t_stop = duration)  
    510print "Spiketrain 1:" 
    611print "mean rate: %f" % st1.mean_rate() 
     
    813print "fano factor: %f" % st1.fano_factor_isi() 
    914 
    10 st2 = sg.poisson_generator(rate=100., t_stop = duration)  
     15st2 = sg.poisson_generator(rate=rate_independent, t_stop = duration)  
    1116print "Spiketrain 2:" 
    1217print "mean rate: %f" % st2.mean_rate() 
     
    2429 
    2530# inject correlation into st1 and st2 
    26 st3 = sg.poisson_generator(rate=100., t_stop = duration)  
     31st3 = sg.poisson_generator(rate=rate_shared, t_stop = duration)  
    2732st1.merge(st3) 
    2833st2.merge(st3) 
     
    4550 
    4651# spike triggered average reveals the original shot-noise kernel 
    47 sta = st1_shot.event_triggered_average(st1, display = True, average = True, ylim = [0.,3.]) 
     52sta = st1_shot.event_triggered_average(st1, display = True, average = True) 
     53 
     54 
     55# example parameter space range etc. 
     56# parameter scan, c vs. jitter 
     57 
     58 
     59def calc_cc(p): 
     60    rate_independent = (1-p.c)*p.nu 
     61    rate_shared = p.c*p.nu 
     62     
     63    st1 = sg.poisson_generator(rate=rate_independent, t_stop = p.duration)  
     64    st2 = sg.poisson_generator(rate=rate_independent, t_stop = p.duration) 
     65    if p.c >0: 
     66        st3 = sg.poisson_generator(rate=rate_shared, t_stop = duration)  
     67        st1.merge(st3.jitter(p.jitter)) 
     68        st2.merge(st3.jitter(p.jitter)) 
     69     
     70    cc = numpy.correlate(st1.time_histogram(time_bin = 1.0),st2.time_histogram(time_bin = 1.),mode = 'same') 
     71    corrcoef = numpy.corrcoef(st1.time_histogram(time_bin = 1.0),st2.time_histogram(time_bin = 1.)) 
     72    return cc, corrcoef[0][1] 
     73 
     74 
     75 
     76from NeuroTools.parameters import ParameterSpace 
     77from NeuroTools.parameters import ParameterRange 
     78 
     79p = ParameterSpace({}) 
     80p.nu = 20. # Hz 
     81p.c = ParameterRange([0.0,0.01,0.1,0.5]) 
     82p.jitter = ParameterRange([0.0,1.0,5.0,]) 
     83p.duration = 10000. 
     84 
     85dims, labels = p.parameter_space_dimension_labels() 
     86 
     87corrcoef_results = numpy.empty(dims) 
     88 
     89 
     90subplot_index = 1 
     91for experiment in p.iter_inner(): 
     92    index = p.parameter_space_index(experiment) 
     93    cc, corrcoef = calc_cc(experiment) 
     94    corrcoef_results[index] = corrcoef 
     95    subplot_index = (dims[1]*index[0])+index[1] 
     96    pylab.subplot(dims[0],dims[1],subplot_index+1) 
     97    pylab.plot(cc) 
     98    pylab.title(str(index)) 
     99    # 
     100    #subplot_index += 1 
     101     
     102 
     103