extend_sync_timepoints
[source]
extend_sync_timepoints
(timepoints
:ndarray
,signals
:ndarray
,up_bound
,low_bound
=0
)
Extend arrays of timepoints and signals (with identical shape) from the low_bound up to the up_bound. For example, the first timepoint could be 2000, and with a low_bound of 0, it would add the timepoints 0, 500, 1000, 1500 if the timepoint distance is of 500 (obtained by averaging the timepoints distances).
params:
- timepoints: Timepoints to extend
- signals: Signals to extend
- up_bound: Up bound to which to extend both timepoints and signals
- low_bound: Low bound to which to extend both timepoints and signals
returns:
- timepoint: Extended timepoints
- signals: The datachunk array is not modified, but the idx attribute is increased by the number
of frames added with the low_bound.
align_sync_timepoints
[source]
align_sync_timepoints
(timepoints
:DataChunk
,signals
:DataChunk
,ref_timepoints
:DataChunk
,ref_signals
:DataChunk
)
Align the signals of a timepoints timeserie to a reference ref_timepoints with the corresponding ref_signals. ref_timepoints is extended to match ref_timepoints lenght.
params:
- timepoints: timepoints to align
- signals: signals to align
- ref_timepoints: reference timepoints
- ref_signals: reference signals
return:
- Aligned timepoints (DataChunk)
- Aligned signals (DataChunk)
resample_to_timepoints
[source]
resample_to_timepoints
(timepoints
:ndarray
,data
:ndarray
,ref_timepoints
:DataChunk
,group
='data'
)
Resample the data at timepoints to new timepoints given by ref_timepoints. Return a DataChunk of the resampled data belonging to a specified group.
params:
- timepoints: Original timepoints of the data
- data: Data to resample of shape (t, ...)
- ref_timepoints: Target timepoints for the resampling
- group: Group assigned to the returned DataChunk
return:
- Resampled datachunk with appropriate idx.
link_sync_timepoints
[source]
link_sync_timepoints
(frame_tp_1
,frame_sig_1
,frame_tp_2
,frame_sig_2
)
Creates timepoints between two timepoints array sampled at the same rate. This is usefull for the LED dome which cannot generate frames in between stimuli (due to ROM update)
params:
- frame_tp_1: Timepoints of the first part
- frame_sig_1: Signals of the first part
- frame_tp_2: Timepoints of the second part
- frame_sig_2: Signals of the second part
return:
- (concatenated_frame_timepoints, concatenated_frame_signals)
flip_stimulus
[source]
flip_stimulus
(stim_inten
,ud_inv
,lr_inv
)
Flip QDSpy stimuli arrays to match the up/down left/right orientation of the stimulus displayed to the mouse.
params:
- stim_inten: Stimulus matrix to flip of shape (t, color, y, x)
- ud_inv: Up down inversion boolean (1 to make the flip, 0 for no operation)
- lr_inv: Up down inversion boolean (1 to make the flip, 0 for no operation)
return:
- Flipped stimulus array
flip_gratings
[source]
flip_gratings
(stim_shader
,ud_inv
,lr_inv
)
Flip gratings to match the up/down left/right orientation of the stimulus displayed to the mouse. A grating is encoded by an array of shape (t, 3(size, angle, speed)). Therefore the angles of the grating are modified to encode the "flipped" grating.
params:
- stim_shader: Grating matrix to flip of shape (t, 3(size, angle(degree), speed))
- ud_inv: Up down inversion boolean (1 to make the flip, 0 for no operation)
- lr_inv: Up down inversion boolean (1 to make the flip, 0 for no operation)
return:
- Flipped grating array
stim_to_dataChunk
[source]
stim_to_dataChunk
(stim_inten
,stim_start_idx
,reference
:DataChunk
)
Factory function for DataChunk of a stimulus, that squeeze the stim_inten matrix.
params:
- stim_inten: Stimulus matrix of shape (t, ...)
- stim_start_idx: Starting frame index of the stimulus
- reference: DataChunk signal reference used to determine the starting index of the stimulus
return:
- Datachunk of the stimulus
phy_results_dict
[source]
phy_results_dict
(phy_dir
)
Open the result arrays of spike sorting after manual merging with phy.
params:
- phy_dir: path to the phy results
return:
- Dictionnary of the phy arrays (amplitudes, channel_map, channel_positions, spike_clusters,
spike_templates, spike_times, templates)
spike_to_dataChunk
[source]
spike_to_dataChunk
(spike_timepoints
,ref_timepoints
:DataChunk
)
Factory function of a DataChunk for spiking count of cells from spike timepoints.
params:
- spike_timepoints: Dictionnary of the cells spike timepoints (list)
- ref_timepoints: Reference DataChunk to align the newly created spike count Datachunk
return:
- Spike count datachunk of shape (t, n_cell)
get_calcium_stack_lenghts
[source]
get_calcium_stack_lenghts
(folder
)
Function to extract calcium stack lenghts from imageJ macro files associated to the stacks.
params:
- folder: path of the folder containing the IJ macros files
return:
- list of stack lenghts
twoP_dataChunks
[source]
twoP_dataChunks
(ref_timepoints
:DataChunk
,frame_timepoints
,len_epochs
, *args
)
Factory function for two photon data.
params:
- ref_timepoints: Reference timepoints to create the DataChunk
- frame_timepoints: List of frame timepoints for each sequence of two photon frame recorded.
- len_epochs: Lenght of the recorded epochs (<= than the corresponding frame_timepoints). Int of list
- args: matrices of all frames detected by CaImAn. (give as many as you want to synchronise)
return:
- tuple containing the synchronised matrices in the order it was given
img_2d_fit
[source]
img_2d_fit
(shape
,param_d
,f
)
Helper function to generate the 2D image of a fit.
params:
- shape: Shape of the image in (y, x).
- param_d: Fit dictionnary.
- f: Function used of the fit.
fill_nan
[source]
fill_nan
(A
)
Fill nan values with interpolation. Credits to BRYAN WOODS@StackOverflow
stim_inten_norm
[source]
stim_inten_norm
(stim_inten
)
Normalize a stimulus with intensity in the 8bit range (0-255) to -1 to 1 range.
group_direction_response
[source]
group_direction_response
(stim_prop
,spike_counts
,n_repeat
,n_cond
=32
)
Group the cells responses from shuffled grating stimulus repetitions. Retrieves a dictionnary with a key for each condition.
params:
- stim_prop: Grating array of shape (t, 3(size, angle, speed))
- spike_counts: Spike counts response of the cells of shape (t, n_cell)
- n_repeat: Number of repeat of each condition
- n_cond: Total number of condition (speed/size condition * n_angle)
return:
- dictionnary of the spike counts for each condition (speed/size), with shape (n_angle, n_repeat, len, n_cell)
group_chirp_bumps
[source]
group_chirp_bumps
(stim_inten
,spike_counts
,n_repeat
)
Find the cells response to the OFF-ON-OFF initial parts of the chirps.
params:
- stim_inten: Stimulus intensity array
- spike_counts: Spike counts array of shape (t, n_cell)
- n_repeat: Number of repetitions of the chirp stimulus
return:
- Dictionnary of cells response to the different ON or OFF stimuli
get_repeat_corrected
[source]
get_repeat_corrected
(stim_inten
,spike_counts
,n_repeats
=10
)
Apply shifts (detected during synchro) to the chirp repetition.
params:
- stim_inten: Stimulus DataChunk (containing the shifts and frame replacements info)
- spike_counts: Spike count matrix of shape (t, n_cell)
- n_repeats: Number of repeats of the chirp
return:
- aligned cells response to stimulus, of shape (n_repeat, t, n_cell)
- Number of duplicated frame per repetition.
removeSlowDrift
[source]
removeSlowDrift
(traces
,fps
=60
,window
=80
,percentile
=8
)
Remove slow drifts from behavioral temporal traces such as locomotion speed obtained from the treadmill signal or pupil size obtained from the eye_tracking signal, by extracting a specified percentile within moving window from the signal.
params:
- traces: Behavioral temporal traces obtained from reM
- fps: Sampling rate
- window: Moving temporal window in seconds
- percentile: Percentile to be extracted within moving window
return:
- Filtered temporal traces
time_shift_test_corr
[source]
time_shift_test_corr
(spike_counts
,behav_signal
,n_tests
=500
,seed
=1
)
Compute the null distribution of correlation between behavioral signal and spiking signal with a time shift test.
params:
- spike_counts: Array with spike counts for a specific neuron and data chunk from the reM
- behav_signal: Array with behavioral signal for a specific neuron and data chunk from the reM
- n_tests: number of used shifted signals to compute distribution
- seed: seed for numpy function random.randint
return:
- null_dist_corr: Null distribution of correlation values
cross_corr_with_lag
[source]
cross_corr_with_lag
(spike_counts
,behav_signal
,behav
,conversion_factor_treadmill
=None
,removeslowdrift
=True
,fps
=60
,seconds
=30
)
Compute cross-correlation with lag between behavioral signal and spiking signal. Process signals, compute null distribution of the correlation with a time shift test and values . Return cross-correlation array, null-distribution array and values for plotting.
params:
- spike_counts: Array with spike counts for a specific neuron and data chunk from the reM
- behav_signal: Array with behavioral signal for a specific neuron and data chunk from the reM
- behav : String with name of behavioral signal to be analysed
- conversion_factor : The value to convert the treadmill signal into cm/s
- removeslowdrift: Boolean:
False - doesn't remove slow drifts from the signal
True - removes slow drifts by extracting a specified percentile within moving window from the signal
- fps: Sampling rate
- seconds: Window in seconds of the correlation lag
return:
- crosscorr: Cross-correlation with lag array between behavioral signal and spiking signal
- corr_peak: Cross-correlation value at peak synchrony between behavioral signal and spiking signal
- p_value_peak: P-value of the peak cross-correlation value
- offset_peak: Temporal offset of the peak synchrony between behavioral signal and spiking signal in seconds
- null_dist_corr: Null distribution of correlation values (output of 'utils.cross_corr_with_lag')
get_inception_generator
[source]
get_inception_generator
(imageset_folder
,len_set
=25
,width
=500
,height
=281
)
Return a function to obtain inception loop images from their index.
params:
- imageset_folder: Path to the folder of the image sets
- len_set: Number of images concatenated per set
- width: image width
return:
- Function to obtain inception loop images from their index.
group_omitted_epochs
[source]
group_omitted_epochs
(stim_inten
,spike_counts
,n_fr_flash
=4
,n_fr_interflash
=4
,n_fr_isi
=100
)
Group the cells reponse to the different omitted stimulus epochs conditions (n_flashes)
params:
- stim_inten: The intensities of the omitted stimulus in shape (t)
- spike_counts: Spikes counts of the cells in shape (t, n_cell)
- n_fr_flash: Duration of a flash (ON flash during OFF baseline, OFF flash during ON baseline)
- n_fr_interflash: Number of frames between two flashes (during an epoch)
- n_fr_isi: Number of frames between two epochs
return:
- response_d_ON, response_d_OFF: Dictionnaries of the cells responses for different number of flashes repetions. Each contain an array of shape (n_cell, n_repeats, len_epoch+n_fr_isi).
get_shank_channels
[source]
get_shank_channels
(channel_positions
,shank_dist_th
=80
)
Group the channels of a Buzsaki32 silicone probe into their shanks from the channel position.
params:
- channel_positions: List of channel positions
- shank_dist_th: Distance between channels in X to rule if on same shank or not
return:
- array of grouped channel index of shape (n_shank(4), n_channel(8))
format_pval
[source]
format_pval
(pval
,significant_figures
=2
)
Helper function to format pvalue into string.
stim_recap_df
[source]
stim_recap_df
(reM
)
Extract stimuli parameters (originally from the Database) to put them into a dataframe that will be displayed in the recapitulation plot.
params:
- reM: RecordMaster to extract stimuli parameters from
return:
- dataframe with the stimuli important informations