diff --git a/programming/lectures/Makefile b/programming/lectures/Makefile index dec2459..355432d 100644 --- a/programming/lectures/Makefile +++ b/programming/lectures/Makefile @@ -1,5 +1,5 @@ TEXFILES=$(wildcard *.tex) -TEXFILES=boolean_logical_indexing.tex control_structures.tex data_structures.tex plotting_spike_trains.tex programming_basics.tex scripts_functions.tex sta_stc.tex variables_datatypes.tex vectors_matrices.tex +TEXFILES=boolean_logical_indexing.tex control_structures.tex data_structures.tex plotting.tex programming_basics.tex scripts_functions.tex sta_stc.tex variables_datatypes.tex vectors_matrices.tex PDFFILES=$(TEXFILES:.tex=.pdf) diff --git a/spike_trains/lecture/plotting.tex b/programming/lectures/plotting.tex similarity index 100% rename from spike_trains/lecture/plotting.tex rename to programming/lectures/plotting.tex diff --git a/programming/code/firing_rates.py b/spike_trains/code/firing_rates.py similarity index 78% rename from programming/code/firing_rates.py rename to spike_trains/code/firing_rates.py index b38dac8..4871e5b 100644 --- a/programming/code/firing_rates.py +++ b/spike_trains/code/firing_rates.py @@ -62,7 +62,7 @@ def plot_isi_rate(spike_times, max_t=30, dt=1e-4): ax1.vlines(times[times < (50000*dt)], ymin=0, ymax=1, color="dodgerblue", lw=1.5) ax1.set_ylabel("skpikes", fontsize=12) set_axis_fontsize(ax1, 12) - + ax1.set_xlim([0, 5]) ax2.plot(time, rate, label="instantaneous rate, trial 1") ax2.set_ylabel("firing rate [Hz]", fontsize=12) ax2.legend(fontsize=12) @@ -191,8 +191,61 @@ def plot_conv_rate(spike_times, sigma=0.05, max_t=30, dt=1e-4): plt.close() +def plot_comparison(spike_times, bin_width, sigma, max_t=30., dt=1e-4): + times = np.squeeze(spike_times[0][0]) + time, conv_rate = get_convolved_rate(times, sigma) + time, inst_rate = get_instantaneous_rate(times) + time, binn_rate = get_binned_rate(times, bin_width) + + fig = plt.figure() + ax1 = fig.add_subplot(411) + ax2 = fig.add_subplot(412) + ax3 = fig.add_subplot(413) + ax4 = fig.add_subplot(414) + + ax1.vlines(times[times < (100000*dt)], ymin=0, ymax=1, color="dodgerblue", lw=1.5) + ax1.set_ylabel("spikes", fontsize=10) + ax1.set_xlim([1.5, 3.5]) + ax1.set_ylim([0, 1]) + ax1.set_yticks([0, 1]) + set_axis_fontsize(ax1, 10) + ax1.set_xticklabels([]) + + ax2.plot(time, inst_rate, label="instantaneous rate") + ax2.set_ylabel("firing rate [Hz]", fontsize=10) + ax2.legend(fontsize=10) + ax2.set_xlim([1.5, 3.5]) + ax2.set_ylim([0, 300]) + set_axis_fontsize(ax2, 10) + ax2.set_xticklabels([]) + + ax3.plot(time, binn_rate, label="binned rate") + ax3.set_ylabel("firing rate [Hz]", fontsize=10) + ax3.legend(fontsize=10) + ax3.set_xlim([1.5, 3.5]) + ax3.set_ylim([0, 300]) + set_axis_fontsize(ax3, 10) + ax3.set_xticklabels([]) + + ax4.plot(time, conv_rate, label="convolved rate") + ax4.set_xlabel("times [s]", fontsize=10) + ax4.set_ylabel("firing rate [Hz]", fontsize=10) + ax4.legend(fontsize=10) + ax4.set_xlim([1.5, 3.5]) + ax4.set_ylim([0, 300]) + set_axis_fontsize(ax4, 10) + + fig.set_size_inches(7.5, 5) + fig.subplots_adjust(left=0.1, bottom=0.125, top=0.95, right=0.95, ) + fig.set_facecolor("white") + fig.savefig("../lecture/images/psth_comparison.pdf") + plt.close() + + if __name__ == "__main__": spike_times = spio.loadmat('lifoustim.mat')["spikes"] - plot_isi_rate(spike_times) - plot_bin_rate(spike_times, 0.05) - plot_conv_rate(spike_times, 0.025) + # plot_isi_rate(spike_times) + # plot_bin_rate(spike_times, 0.05) + # plot_conv_rate(spike_times, 0.025) + plot_comparison(spike_times, 0.05, 0.025) + diff --git a/programming/exercises/plotting_psth.tex b/spike_trains/exercises/psth.tex similarity index 100% rename from programming/exercises/plotting_psth.tex rename to spike_trains/exercises/psth.tex diff --git a/spike_trains/lecture/psth_sta.tex b/spike_trains/lecture/psth_sta-slides.tex similarity index 99% rename from spike_trains/lecture/psth_sta.tex rename to spike_trains/lecture/psth_sta-slides.tex index a89676a..668716d 100644 --- a/spike_trains/lecture/psth_sta.tex +++ b/spike_trains/lecture/psth_sta-slides.tex @@ -383,7 +383,7 @@ \item Tuningkurven. \item Stimulusrekonstruktion mittels STA. \item Kreuzkorrelation. - \item Fourier Analyse, Transferfunktion, Kohärenz. + \item Fourier Analyse, Transferfunktion, Kohärenz. \item Reverse Rekonstruktion. \end{enumerate} \end{frame} \ No newline at end of file