bmtk.simulator.filternet.lgnmodel package#
Submodules#
bmtk.simulator.filternet.lgnmodel.cellmetrics module#
- class bmtk.simulator.filternet.lgnmodel.cellmetrics.SubclassMetricsCache(saved_metrics_dir=None)[source]#
Bases:
object
Used to calc optimized parameteres for different types of cells using existing data that contains cell responses to different types of stimulus. The existing data should be stored in a single directory with a csv file for reach cell type.
- usage:
subcell_metrics = SubclassMetricsCache(‘/path/to/observations/’)
- get_metrics(subclass_type)[source]#
Calculates various parameters for a given cell class, using observations stored in saved_metrics_dir
- Parameters:
subclass_type – name of cell subclass types
- Returns:
A dictionary of parameters for various types of inputs
- property saved_metrics_dir#
bmtk.simulator.filternet.lgnmodel.cellmodel module#
- class bmtk.simulator.filternet.lgnmodel.cellmodel.LGNOnOffCell(on_filter, off_filter, transfer_function=<bmtk.simulator.filternet.lgnmodel.transferfunction.MultiTransferFunction object>)[source]#
Bases:
MultiLNUnit
A cell model for a OnOff cell
- class bmtk.simulator.filternet.lgnmodel.cellmodel.OffUnit(linear_filter, transfer_function)[source]#
Bases:
LNUnit
- class bmtk.simulator.filternet.lgnmodel.cellmodel.OnUnit(linear_filter, transfer_function)[source]#
Bases:
LNUnit
- class bmtk.simulator.filternet.lgnmodel.cellmodel.TwoSubfieldLinearCell(dominant_filter, nondominant_filter, subfield_separation=10, onoff_axis_angle=45, dominant_subfield_location=(30, 40), transfer_function=<bmtk.simulator.filternet.lgnmodel.transferfunction.MultiTransferFunction object>)[source]#
Bases:
MultiLNUnit
bmtk.simulator.filternet.lgnmodel.cursor module#
- class bmtk.simulator.filternet.lgnmodel.cursor.FilterCursor(spatiotemporal_filter, movie, threshold=0)[source]#
Bases:
KernelCursor
- class bmtk.simulator.filternet.lgnmodel.cursor.KernelCursor(kernel, movie)[source]#
Bases:
object
A class that takes care of the convolution of the (non-separable) spatial-temporal linear filter with the move.
- property col_range#
- property frame_rate#
- property row_range#
- property t_range#
- class bmtk.simulator.filternet.lgnmodel.cursor.LNUnitCursor(lnunit, movie, threshold=0)[source]#
Bases:
KernelCursor
A class that takes care of applying a linear-nonlinear filter to a movie. Parent class is used to apply the spatial-termporal filter convolution to the movie, when then the lnunit non-linear transfer function is applied.
- class bmtk.simulator.filternet.lgnmodel.cursor.MultiLNUnitCursor(multi_lnunit, movie, threshold=0)[source]#
Bases:
object
- class bmtk.simulator.filternet.lgnmodel.cursor.MultiLNUnitMultiMovieCursor(multi_lnunit, movie_list, threshold=0.0)[source]#
Bases:
MultiLNUnitCursor
- class bmtk.simulator.filternet.lgnmodel.cursor.SeparableKernelCursor(spatial_kernel, temporal_kernel, movie)[source]#
Bases:
object
A class for applying a spatial-temporal convolution to a movie. Unlike the KernelCursor the spatial-temporal filter is broken up into its components, spatial filter is applied then followed by a temporal filter convolution.
- class bmtk.simulator.filternet.lgnmodel.cursor.SeparableMultiLNUnitCursor(multilnunit, movie)[source]#
Bases:
object
- class bmtk.simulator.filternet.lgnmodel.cursor.SeparableSpatioTemporalFilterCursor(spatiotemporal_filter, movie)[source]#
Bases:
SeparableKernelCursor
bmtk.simulator.filternet.lgnmodel.fitfuns module#
bmtk.simulator.filternet.lgnmodel.gaborfilter module#
- class bmtk.simulator.filternet.lgnmodel.gaborfilter.GaborFilter(translate=4.0, sigma_f=1.0, sigma_t=1.0, theta=0.0, Lambda=1.0, psi=0.0, amplitude=1.0, direction=1)[source]#
Bases:
object
- get_kernel(row_range, col_range, threshold_rel=0.05)[source]#
Creates a 2D gaussian filter (kernel) for the given dimensions which can be used
- Parameters:
row_range – array of times
col_range – array of frequency centers
threshold_rel – crop filter to region with amplitudes greater than threshold_rel * max value
- Returns:
A Kernel2D object
bmtk.simulator.filternet.lgnmodel.kernel module#
- class bmtk.simulator.filternet.lgnmodel.kernel.Kernel1D(t_range, kernel_array, threshold=0.0, reverse=False)[source]#
Bases:
object
- class bmtk.simulator.filternet.lgnmodel.kernel.Kernel2D(row_range, col_range, row_inds, col_inds, kernel)[source]#
Bases:
object
- class bmtk.simulator.filternet.lgnmodel.kernel.Kernel3D(row_range, col_range, t_range, row_inds, col_inds, t_inds, kernel)[source]#
Bases:
object
bmtk.simulator.filternet.lgnmodel.lattice_unit_constructor module#
- bmtk.simulator.filternet.lgnmodel.lattice_unit_constructor.make_lattice_unit(lattice_unit_center=None)[source]#
- bmtk.simulator.filternet.lgnmodel.lattice_unit_constructor.make_overlapping_onoff_cell_list(lattice_unit_center)[source]#
- bmtk.simulator.filternet.lgnmodel.lattice_unit_constructor.make_sOFF_cell_list(lattice_unit_center)[source]#
- bmtk.simulator.filternet.lgnmodel.lattice_unit_constructor.make_sON_cell_list(lattice_unit_center)[source]#
- bmtk.simulator.filternet.lgnmodel.lattice_unit_constructor.make_separate_onoff_cell_list(lattice_unit_center)[source]#
bmtk.simulator.filternet.lgnmodel.lgnmodel1 module#
bmtk.simulator.filternet.lgnmodel.linearfilter module#
- class bmtk.simulator.filternet.lgnmodel.linearfilter.SpatioTemporalFilter(spatial_filter, temporal_filter, amplitude=1.0)[source]#
Bases:
object
bmtk.simulator.filternet.lgnmodel.lnunit module#
- class bmtk.simulator.filternet.lgnmodel.lnunit.LNUnit(linear_filter, transfer_function, amplitude=1.0)[source]#
Bases:
object
bmtk.simulator.filternet.lgnmodel.make_cell_list module#
- bmtk.simulator.filternet.lgnmodel.make_cell_list.evaluate_cell_and_plot(input_cell, input_movie, ax, show=False)[source]#
- bmtk.simulator.filternet.lgnmodel.make_cell_list.make_on_off_cell_list(number_of_cells=None, lattice_unit_center=None, weights_on=None, weights_off=None, kpeaks_on=None, kpeaks_off=None, delays_on=None, delays_off=None, amplitude_on=None, amplitude_off=None, sigma_on=None, sigma_off=None, subfield_separation=None, ang=None, dominant_subunit=None, width=5, transfer_function_str='Heaviside(x)*x + Heaviside(y)*y')[source]#
bmtk.simulator.filternet.lgnmodel.movie module#
- class bmtk.simulator.filternet.lgnmodel.movie.FullFieldFlashMovie(row_range, col_range, t_on, t_off, max_intensity=1, frame_rate=24, y_dir='down')[source]#
Bases:
FullFieldMovie
- class bmtk.simulator.filternet.lgnmodel.movie.FullFieldMovie(f, rows, cols, frame_rate=24.0, y_dir='down')[source]#
Bases:
Movie
- property data#
- property frame_rate#
- class bmtk.simulator.filternet.lgnmodel.movie.GratingMovie(row_size, col_size, frame_rate=1000.0, y_dir='down')[source]#
Bases:
Movie
- create_movie(t_min=0, t_max=1, gray_screen_dur=0, cpd=0.05, temporal_f=4, theta=45, phase=0.0, contrast=1.0, degrees_per_pixel=None, row_size_new=None, col_size_new=None)[source]#
Create the grating movie with the desired parameters
- Parameters:
t_min – start time in seconds
t_max – end time in seconds
gray_screen_dur – Duration of gray screen before grating stimulus starts
cpd – cycles per degree
temporal_f – in Hz
theta – orientation angle, in degrees
phase – temporal phase, in degrees
contrast – the maximum constrast, must be between 0 and 1.0
degrees_per_pixel – pixel pitch of the movie in degrees (default (if None) is 1.0/(cpd*10))
row_size_new – Use to truncate screen, by default leaves original row dimension
col_size_new – Use to truncate screen, by default leaves original col dimension
- Returns:
Movie object of grating with desired parameters
- class bmtk.simulator.filternet.lgnmodel.movie.LoomingMovie(row_size, col_size, frame_rate=1000.0, y_dir='down')[source]#
Bases:
Movie
- class bmtk.simulator.filternet.lgnmodel.movie.Movie(data, row_range=None, col_range=None, labels=('time', 'y', 'x'), units=('second', 'pixel', 'pixel'), frame_rate=None, t_range=None, padding=False, y_dir='down', flip_y=False)[source]#
Bases:
object
- static normalize_matrix(m_data, domain=None)[source]#
Attempts to take a numpy matrix “movie” and normalize the contrast values to range [-1.0, 1.0].
- Parameters:
m_data – A numpy matrix TxRxC containing an original “movie” data
domain – If A tuple of values [min_contrast, max_contrast], will use those values to normalize. Otherwise will attempt to determine original contrast range from the m_data.
- Returns:
m_data that has been normalized
- play(interval=None, skip=None, playback_speed=1.0, cmap=None, vmin=-1.0, vmax=1.0, save_as=None, show=True)[source]#
- Parameters:
interval
skip – skip every Nth frame, useful for very large data sets
playback_speed
cmap – color map, default to gray
save_as – If set to a valid (mp4 file) path animation will be saved. Otherwise it won’t
show – display the animation, default True
- property ranges#
bmtk.simulator.filternet.lgnmodel.poissongeneration module#
- bmtk.simulator.filternet.lgnmodel.poissongeneration.generate_inhomogenous_poisson(t_range, y_range, seed=None)[source]#
- bmtk.simulator.filternet.lgnmodel.poissongeneration.generate_poisson_rescaling(t, y, seed=None)[source]#
bmtk.simulator.filternet.lgnmodel.singleunitcell module#
bmtk.simulator.filternet.lgnmodel.spatialfilter module#
- class bmtk.simulator.filternet.lgnmodel.spatialfilter.GaussianSpatialFilter(translate=(0.0, 0.0), sigma=(1.0, 1.0), rotation=0, origin='center')[source]#
Bases:
object
bmtk.simulator.filternet.lgnmodel.temporalfilter module#
- class bmtk.simulator.filternet.lgnmodel.temporalfilter.ArrayTemporalFilter(mask, t_support)[source]#
Bases:
TemporalFilter
bmtk.simulator.filternet.lgnmodel.transferfunction module#
bmtk.simulator.filternet.lgnmodel.util_fns module#
- bmtk.simulator.filternet.lgnmodel.util_fns.check_optim_results_against_bounds(bounds, opt_wts, opt_kpeaks)[source]#
- bmtk.simulator.filternet.lgnmodel.util_fns.chunks(l, n)[source]#
Yield successive n-sized chunks from l.
- bmtk.simulator.filternet.lgnmodel.util_fns.create_ff_mov(frame_rate, tst, tend, xrng, yrng)[source]#
bmtk.simulator.filternet.lgnmodel.utilities module#
- bmtk.simulator.filternet.lgnmodel.utilities.convert_tmin_tmax_framerate_to_trange(t_min, t_max, frame_rate)[source]#
- bmtk.simulator.filternet.lgnmodel.utilities.get_convolution(t, frame_rate, flipped_t_inds, kernel, data)[source]#
- bmtk.simulator.filternet.lgnmodel.utilities.get_convolution_ind(curr_fi, flipped_t_inds, kernel, data)[source]#
bmtk.simulator.filternet.lgnmodel.waveletfilter module#
- class bmtk.simulator.filternet.lgnmodel.waveletfilter.WaveletFilter(translate=4.0, sigma_f=1.0, b_t=1.0, order_t=3, theta=0.0, Lambda=1.0, psi=0.0, delay=0.0, amplitude=1.0, direction=1)[source]#
Bases:
object
- get_kernel(row_range, col_range, threshold_rel=0.05, show_plot=False, plot_ax=None)[source]#
Creates a 2D gaussian filter (kernel) for the given dimensions which can be used
- Parameters:
row_range – array of times
col_range – array of frequency centers
threshold_rel – crop filter to region with amplitudes greater than threshold_rel * max value
plot_ax – plot handle if plot of filter is desired
- Returns:
A Kernel2D object