Source code for bmtk.simulator.filternet.lgnmodel.lgnmodel1
import numpy as np
import matplotlib.pyplot as plt
[docs]def line_plot(evaluate_result, ax=None, show=True, save_file_name=None, xlabel=None, plotstyle=None):
if ax is None:
_, ax = plt.subplots(1,1)
if not plotstyle is None:
for ((t_range, y_vals), curr_plotstyle) in zip(evaluate_result, plotstyle):
ax.plot(t_range, y_vals, curr_plotstyle)
else:
for t_range, y_vals in evaluate_result:
ax.plot(t_range, y_vals)
if xlabel is None:
ax.set_xlabel('Time (Seconds)')
else:
ax.set_xlabel(xlabel)
if xlabel is None:
ax.set_xlabel('Firing Rate (Hz)')
else:
ax.set_xlabel(xlabel)
if not save_file_name is None:
plt.savefig(save_file_name, transparent=True)
if show == True:
plt.show()
[docs]def heat_plot(evaluate_result, ax=None, show=True, save_file_name=None, colorbar=True, **kwargs):
if ax is None:
_, ax = plt.subplots(1,1)
data = np.empty((len(evaluate_result), len(evaluate_result[0][0])))
for ii, (t_vals, y_vals) in enumerate(evaluate_result):
data[ii,:] = y_vals
cax = ax.pcolor(t_vals, np.arange(len(evaluate_result)), data, **kwargs)
ax.set_ylim([0,len(evaluate_result)-1])
ax.set_xlim([t_vals[0], t_vals[-1]])
ax.set_ylabel('Neuron id')
ax.set_xlabel('Time (Seconds)')
if colorbar == True:
plt.colorbar(cax)
if not save_file_name is None:
plt.savefig(save_file_name, transparent=True)
if show == True:
plt.show()
[docs]class LGNModel(object):
def __init__(self, cell_list):
self.cell_list = cell_list
[docs] def evaluate(self, movie, **kwargs):
return [cell.evaluate(movie, **kwargs) for cell in self.cell_list]
def __len__(self):
return len(self.cell_list)