allensdk.brain_observatory.ecephys.stimulus_analysis.stimulus_analysis module¶
-
class
allensdk.brain_observatory.ecephys.stimulus_analysis.stimulus_analysis.StimulusAnalysis(ecephys_session, trial_duration=None, **kwargs)[source]¶ Bases:
object-
METRICS_COLUMNS¶
-
conditionwise_psth¶ For every unit and stimulus-condition construction a PSTH table. ie. the spike-counts at a each time-interval during a stimulus, averaged over all trials of the same stim condition.
Each PSTH will count and average spikes over a time-window as determined by class parameter ‘trial_duration’ which ideally be a similar value as the duration of each stimulus (in seconds). The length of each time-bin is determined by the class parameter ‘psth_resolution’ (in seconds).
Returns: - conditionwise_psth xarray.DataArray
- An 3D table that contains the PSTH for every unit/condition, with the following coordinates
- stimulus_condition_id
- time_relative_to_stimulus_onset
- unit_id
-
conditionwise_statistics¶ Create a table of spike statistics, averaged and indexed by every unit_id, stimulus_condition_id pair.
Returns: - conditionwise_statistics: pd.DataFrame
A dataframe indexed by unit_id and stimulus_condition containing spike_count, spike_mean, spike_sem, spike_std and stimulus_presentation_count information.
-
ecephys_session¶
-
get_intrinsic_timescale(self, unit_ids)[source]¶ Calculates the intrinsic timescale for a subset of units
-
known_spontaneous_keys¶
-
classmethod
known_stimulus_keys()[source]¶ Used for discovering the correct stimulus_name key for a given StimulusAnalysis subclass (when stimulus_key is not explicity set). Should return a list of “stimulus_name” strings.
-
metrics¶ Returns a pandas DataFrame of the stimulus response metrics for each unit.
-
metrics_dtypes¶
-
metrics_names¶
-
name¶ Return the stimulus name.
-
null_condition¶
-
plot_conditionwise_raster(self, unit_id)[source]¶ Plot a matrix of rasters for each condition (orientations x temporal frequencies)
-
presentationwise_spike_times¶ Constructs a table containing all the relevant spike_times plus the stimulus_presentation_id and unit_id for the given spike.
Returns: - presentationwise_spike_times : pd.DataFrame
Indexed by spike_time, each spike containing the corresponding stimulus_presentation_id and unit_id
-
presentationwise_statistics¶ Returns a table of the spike-counts, stimulus-conditions and running speed for every stimulus_presentation_id , unit_id pair.
Returns: - presentationwise_statistics: pd.DataFrame
MultiIndex : unit_id, stimulus_presentation_id Columns : spike_count, stimulus_condition_id, running_speed
-
running_speed¶ Construct a dataframe with the averaged running speed for each stimulus_presenation_id
-
spikes¶ Returns a dictionary of unit_id -> spike-times.
-
stim_table¶
-
stim_table_spontaneous¶ Returns a stimulus table with only ‘spontaneous’ stimulus selected.
-
stimulus_conditions¶ Returns a table of relevant stimulus_conditions.
Returns: - pd.DataFrame :
Index : stimulus_condition_id Columns : stimulus parameter types
-
total_presentations¶ Total nmber of presentations / trials
-
trial_duration¶
-
unit_count¶ Get the number of units.
-
unit_ids¶ Returns a list of unit IDs for which to apply the analysis
-
-
allensdk.brain_observatory.ecephys.stimulus_analysis.stimulus_analysis.calculate_time_delayed_correlation(dataset)[source]¶
-
allensdk.brain_observatory.ecephys.stimulus_analysis.stimulus_analysis.deg2rad(arr)[source]¶ Converts array-like input from degrees to radians
-
allensdk.brain_observatory.ecephys.stimulus_analysis.stimulus_analysis.dsi(orivals, tuning)[source]¶ Computes the direction selectivity of a cell. See Ringbach 2002, Van Hooser 2014
Parameters: - ori_vals : complex array of length N
Each value the oriention of the stimulus.
- tuning : float array of length N
Each value the (averaged) response of the cell at a different orientation.
Returns: - osi : float
An N-dimensional array of the circular variance (scalar value, in radians) of the responses.
-
allensdk.brain_observatory.ecephys.stimulus_analysis.stimulus_analysis.fano_factor(spike_counts)[source]¶ Computers the fano factor (var/mean) for the spike-counts across a series of trials.
Parameters: - spike_counts : array
The spike counts across a series of 2 or more trials
Returns: - fano_factor : float
-
allensdk.brain_observatory.ecephys.stimulus_analysis.stimulus_analysis.fit_exp(rsc_time_matrix)[source]¶
-
allensdk.brain_observatory.ecephys.stimulus_analysis.stimulus_analysis.get_fr(spikes, num_timestep_second=30, sweep_length=3.1, filter_width=0.1)[source]¶ Uses a gaussian convolution to convert the spike-times into a contiguous firing-rate series.
Parameters: - spikes : array
An array of spike times (shifted to start at 0)
- num_timestep_second : float
The sampling frequency
- sweep_length : float
The lenght of the returned array
- filter_width: float
The window of the gaussian method
Returns: - firing_rate : float
A linear-spaced array of length num_timestep_second*sweep_length of the smoothed firing rates series.
-
allensdk.brain_observatory.ecephys.stimulus_analysis.stimulus_analysis.lifetime_sparseness(responses)[source]¶ Computes the lifetime sparseness for one unit. See Olsen & Wilson 2008.
Parameters: - responses : array of floats
An array of a unit’s spike-counts over the duration of multiple trials within a given session
Returns: - lifetime_sparsness : float
The lifetime sparseness for one unit
-
allensdk.brain_observatory.ecephys.stimulus_analysis.stimulus_analysis.osi(orivals, tuning)[source]¶ Computes the orientation selectivity of a cell. The calculation of the orientation is done using the normalized circular variance (CirVar) as described in Ringbach 2002
Parameters: - ori_vals : complex array of length N
Each value the oriention of the stimulus.
- tuning : float array of length N
Each value the (averaged) response of the cell at a different orientation.
Returns: - osi : float
An N-dimensional array of the circular variance (scalar value, in radians) of the responses.
-
allensdk.brain_observatory.ecephys.stimulus_analysis.stimulus_analysis.overall_firing_rate(start_times, stop_times, spike_times)[source]¶ Computes the global firing rate of a series of spikes, for only those values within the given start and stop times.
Parameters: - start_times : array of N floats
A series of stimulus block start times (seconds)
- stop_times : array of N floats
Times when the stimulus block ends
- spike_times : array of floats
A list of spikes for a given unit
Returns: - firing_rate : float
-
allensdk.brain_observatory.ecephys.stimulus_analysis.stimulus_analysis.reliability(unit_sweeps, padding=1.0, num_timestep_second=30, filter_width=0.1, window_beg=0, window_end=None)[source]¶ Computes the trial-to-trial reliability for a set of sweeps for a given cell
Parameters: - unit_sweeps –
- padding –
Returns:
-
allensdk.brain_observatory.ecephys.stimulus_analysis.stimulus_analysis.running_modulation(spike_counts, running_speeds, speed_threshold=1.0)[source]¶ Given a series of trials that include the spike-counts and (averaged) running-speed, does a statistical comparison to see if there was any difference in spike firing while running and while stationary.
Requires at least 2 trials while the mouse is running and two when the mouse is stationary.
Parameters: - spike_counts : array of floats of size N.
The spike counts for each trial
- running_speeds: array floats of size N.
The running velocities (cm/s) of each trial.
- speed_threshold: float
The minimum threshold for which the animal can be considered running (default 1.0).
Returns: - p_value : float or Nan
T-test p-value between the running and stationary trials.
- run_mod : float or Nan
Relative difference between running and stationary mean firing rates.