def stimulus_onset_sess123(sessions, analyspar, sesspar, stimpar, basepar, figpar, parallel=False): """ stimulus_onset_sess123(sessions, analyspar, sesspar, stimpar, basepar, figpar) Retrieves ROI responses to stimulus onset from sessions 1 to 3. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - figpar (dict): dictionary containing figure parameters Optional args: - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info("Compiling stimulus onset sequences from session 1 to 3.", extra={"spacing": "\n"}) split = "stim_onset" trace_df = seq_analys.get_sess_grped_trace_df(sessions, analyspar=analyspar, stimpar=stimpar, basepar=basepar, split=split, parallel=parallel) extrapar = { "split": split, } info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "stimpar": stimpar._asdict(), "basepar": basepar._asdict(), "extrapar": extrapar, "trace_df": trace_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def nrois_sess123(sessions, analyspar, sesspar, figpar): """ nrois_sess123(sessions, analyspar, sesspar, figpar) Retrieves number of ROIs for sessions 1 to 3. Saves results and parameters relevant to analysis in a dictionary. Required args: - session (Session): Session object - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - figpar (dict): dictionary containing figure parameters """ logger.info("Compiling ROI numbers from session 1 to 3.", extra={"spacing": "\n"}) nrois_df = misc_analys.get_check_sess_df(sessions, analyspar=analyspar) extrapar = dict() info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "extrapar": extrapar, "nrois_df": nrois_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def pupil_run_responses(sessions, analyspar, sesspar, stimpar, basepar, figpar, parallel=False): """ pupil_run_responses(sessions, analyspar, sesspar, stimpar, basepar, figpar) Retrieves pupil and running responses to Gabor sequences for session 1. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - figpar (dict): dictionary containing figure parameters Optional args: - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info("Compiling pupil and running sequences for session 1.", extra={"spacing": "\n"}) split = "by_exp" trace_df = behav_analys.get_pupil_run_trace_stats_df(sessions, analyspar=analyspar, stimpar=stimpar, basepar=basepar, split=split, parallel=parallel) extrapar = {"split": split} info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "stimpar": stimpar._asdict(), "basepar": basepar._asdict(), "extrapar": extrapar, "trace_df": trace_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def roi_overlays_sess123_enlarged(sessions, analyspar, sesspar, figpar, parallel=False): """ roi_overlays_sess123_enlarged(sessions, analyspar, sesspar, figpar) Retrieves enlarged ROI mask overlay examples for sessions 1 to 3. Saves results and parameters relevant to analysis in a dictionary. Required args: - session (Session): Session object - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - figpar (dict): dictionary containing figure parameters Optional args: - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info("Compiling enlarged ROI mask overlay examples.", extra={"spacing": "\n"}) if not analyspar.tracked: raise ValueError("analyspar.tracked should be set to True.") # remove incomplete session series and warn sessions = misc_analys.check_sessions_complete(sessions) roi_mask_df = roi_analys.get_roi_tracking_df( sessions, analyspar=analyspar, reg_only=True, proj=False, crop_info="large", parallel=parallel, ) extrapar = dict() info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "extrapar": extrapar, "roi_mask_df": roi_mask_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def mean_signal_sess123(sessions, analyspar, sesspar, figpar, parallel=False): """ mean_signal_sess123(sessions, analyspar, sesspar, figpar) Retrieves ROI mean signal values for sessions 1 to 3. Saves results and parameters relevant to analysis in a dictionary. Required args: - session (Session): Session object - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - figpar (dict): dictionary containing figure parameters Optional args: - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info("Compiling ROI signal means from session 1 to 3.", extra={"spacing": "\n"}) logger.info("Calculating ROI signal means for each session...", extra={"spacing": TAB}) all_signal_means = gen_util.parallel_wrap(misc_analys.get_snr, sessions, [analyspar, "signal_means"], parallel=parallel) sig_mean_df = misc_analys.get_check_sess_df(sessions, analyspar=analyspar) sig_mean_df["signal_means"] = [ sig_mean.tolist() for sig_mean in all_signal_means ] extrapar = dict() info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "extrapar": extrapar, "sig_mean_df": sig_mean_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def roi_corr_sess123(sessions, analyspar, sesspar, figpar, parallel=False): """ roi_corr_sess123(sessions, analyspar, sesspar, figpar) Retrieves ROI correlation values for sessions 1 to 3. Saves results and parameters relevant to analysis in a dictionary. Required args: - session (Session): Session object - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - figpar (dict): dictionary containing figure parameters Optional args: - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info("Compiling ROI correlations from session 1 to 3.", extra={"spacing": "\n"}) logger.info("Calculating ROI correlations for each session...", extra={"spacing": TAB}) rolling_win = 4 corr_df = misc_analys.get_all_correlations(sessions, analyspar=analyspar, rolling_win=rolling_win, parallel=parallel) extrapar = { "rolling_win": rolling_win, } info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "extrapar": extrapar, "corr_df": corr_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def imaging_planes(sessions, sesspar, figpar, parallel=False): """ imaging_planes(sessions, sesspar, figpar) Retrieves imaging plane image examples. Saves results and parameters relevant to analysis in a dictionary. Required args: - session (Session): Session object - sesspar (SessPar): named tuple containing session parameters - figpar (dict): dictionary containing figure parameters Optional args: - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info("Compiling imaging plane projection examples.", extra={"spacing": "\n"}) imaging_plane_df = misc_analys.get_check_sess_df(sessions, roi=False) imaging_plane_df["max_projections"] = [ sess.max_proj.tolist() for sess in sessions ] extrapar = dict() info = { "sesspar": sesspar._asdict(), "extrapar": extrapar, "imaging_plane_df": imaging_plane_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def pupil_run_block_diffs(sessions, analyspar, sesspar, stimpar, permpar, figpar, seed=None, parallel=False): """ pupil_run_block_diffs(sessions, analyspar, sesspar, stimpar, permpar, figpar) Retrieves pupil and running block differences for Gabor sequences for session 1. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - permpar (PermPar): named tuple containing permutation parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info("Compiling pupil and running block differences for session 1.", extra={"spacing": "\n"}) permpar = sess_ntuple_util.get_modif_ntuple(permpar, "multcomp", False) block_df = behav_analys.get_pupil_run_block_stats_df(sessions, analyspar=analyspar, stimpar=stimpar, permpar=permpar, randst=seed, parallel=parallel) extrapar = {"seed": seed} info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "stimpar": stimpar._asdict(), "permpar": permpar._asdict(), "extrapar": extrapar, "block_df": block_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def unexp_resp_stimulus_comp_sess1v3(sessions, analyspar, sesspar, stimpar, permpar, figpar, seed=None, parallel=False): """ unexp_resp_stimulus_comp_sess1v3(sessions, analyspar, sesspar, stimpar, permpar, figpar) Retrieves changes in tracked ROI responses to unexpected sequences for Gabors vs visual flow stimuli. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - permpar (PermPar): named tuple containing permutation parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info( ("Compiling changes in unexpected responses to Gabor vs visual " "flow stimuli."), extra={"spacing": "\n"}) if analyspar.scale: raise ValueError("analyspar.scale should be set to False.") # calculate multiple comparisons dummy_df = misc_analys.get_check_sess_df( sessions, None, analyspar).drop_duplicates(subset=["lines", "planes"]) multcomp = len(dummy_df) + 1 permpar = sess_ntuple_util.get_modif_ntuple(permpar, "multcomp", multcomp) comp_sess = [1, 3] datatype = "rel_unexp_resp" rel_sess = 1 pop_stats = True unexp_comp_df = stim_analys.get_stim_stats_df( sessions, analyspar=analyspar, stimpar=stimpar, permpar=permpar, comp_sess=comp_sess, datatype=datatype, rel_sess=rel_sess, pop_stats=pop_stats, randst=seed, parallel=parallel, ) extrapar = { "comp_sess": comp_sess, "datatype": datatype, "rel_sess": rel_sess, "pop_stats": pop_stats, "seed": seed, } info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "stimpar": stimpar._asdict(), "permpar": permpar._asdict(), "extrapar": extrapar, "unexp_comp_df": unexp_comp_df.to_dict(), } helper_fcts.plot_save_all(info, figpar)
def tracked_roi_usis_stimulus_comp_sess1v3(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar, seed=None, parallel=False): """ tracked_roi_usis_stimulus_comp_sess1v3(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar) Retrieves changes in tracked ROI USIs for Gabors vs visual flow stimuli. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - idxpar (IdxPar): named tuple containing index parameters - permpar (PermPar): named tuple containing permutation parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info( ("Compiling changes in ROI USIs for Gabors vs visual flow stimuli."), extra={"spacing": "\n"}) if not analyspar.tracked: raise ValueError("analyspar.tracked should be set to True.") # remove incomplete session series and warn sessions = misc_analys.check_sessions_complete(sessions) # calculate multiple comparisons dummy_df = misc_analys.get_check_sess_df( sessions, None, analyspar).drop_duplicates(subset=["lines", "planes"]) multcomp = len(dummy_df) + 1 permpar = sess_ntuple_util.get_modif_ntuple(permpar, "multcomp", multcomp) comp_sess = [1, 3] datatype = "usis" pop_stats = True usi_comp_df = stim_analys.get_stim_stats_df( sessions, analyspar=analyspar, stimpar=stimpar, basepar=basepar, idxpar=idxpar, permpar=permpar, comp_sess=comp_sess, datatype=datatype, pop_stats=pop_stats, randst=seed, parallel=parallel, ) extrapar = { "comp_sess": comp_sess, "datatype": datatype, "pop_stats": pop_stats, "seed": seed, } info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "stimpar": stimpar._asdict(), "basepar": basepar._asdict(), "idxpar": idxpar._asdict(), "permpar": permpar._asdict(), "extrapar": extrapar, "usi_comp_df": usi_comp_df.to_dict(), } helper_fcts.plot_save_all(info, figpar)
def gabor_corrs_sess123_comps(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar, seed=None, parallel=False): """ gabor_corrs_sess123_comps(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar) Retrieves tracked ROI Gabor USI correlations for session 1 to 3. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - idxpar (IdxPar): named tuple containing index parameters - permpar (PermPar): named tuple containing permutation parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info( "Compiling tracked ROI Gabor USI correlations for sessions 1 to 3.", extra={"spacing": "\n"}) if not analyspar.tracked: raise ValueError("analyspar.tracked should be set to True.") # remove incomplete session series and warn sessions = misc_analys.check_sessions_complete(sessions) consec_only = True permpar = corr_analys.set_multcomp(permpar, sessions, analyspar, consec_only=consec_only) permute = PERMUTE corr_type = CORR_TYPE sig_only = SIG_ONLY if "R_sqr" in corr_type: permpar = sess_ntuple_util.get_modif_ntuple(permpar, "tails", "hi") idx_corr_df = corr_analys.get_idx_corrs_df(sessions, analyspar=analyspar, stimpar=stimpar, basepar=basepar, idxpar=idxpar, permpar=permpar, consec_only=consec_only, permute=permute, corr_type=corr_type, sig_only=sig_only, randst=seed, parallel=parallel) extrapar = { "consec_only": consec_only, "corr_type": corr_type, "permute": permute, "seed": seed, "sig_only": sig_only, } info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "stimpar": stimpar._asdict(), "basepar": basepar._asdict(), "idxpar": idxpar._asdict(), "permpar": permpar._asdict(), "extrapar": extrapar, "idx_corr_df": idx_corr_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def corr_scatterplots(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar, seed=None, parallel=False): """ corr_scatterplots(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar) Retrieves tracked ROI USI correlation scatterplot data for a session pair. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - idxpar (IdxPar): named tuple containing index parameters - permpar (PermPar): named tuple containing permutation parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ if not analyspar.tracked: raise ValueError("analyspar.tracked should be set to True.") # remove incomplete session series and warn sessions = misc_analys.check_sessions_complete(sessions) permpar = corr_analys.set_multcomp(permpar, sessions, analyspar, factor=2) permute = PERMUTE sig_only = SIG_ONLY if not analyspar.tracked: raise ValueError("analyspar.tracked should be set to True.") idx_corr_df = corr_analys.corr_scatterplots(sessions, analyspar=analyspar, stimpar=stimpar, basepar=basepar, idxpar=idxpar, permpar=permpar, permute=permute, sig_only=sig_only, randst=seed, parallel=parallel) extrapar = { "permute": permute, "seed": seed, "sig_only": sig_only, } info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "stimpar": stimpar._asdict(), "basepar": basepar._asdict(), "idxpar": idxpar._asdict(), "permpar": permpar._asdict(), "extrapar": extrapar, "idx_corr_df": idx_corr_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def gabor_sequence_diffs_sess123(sessions, analyspar, sesspar, stimpar, basepar, permpar, figpar, seed=None, parallel=False): """ gabor_sequence_diffs_sess123(sessions, analyspar, sesspar, stimpar, basepar, permpar, figpar) Retrieves differences in ROI responses to Gabor sequences from sessions 1 to 3. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - permpar (PermPar): named tuple containing permutation parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info("Compiling Gabor sequence differences from session 1 to 3.", extra={"spacing": "\n"}) # calculate multiple comparisons dummy_df = misc_analys.get_check_sess_df( sessions, None, analyspar).drop_duplicates(subset=["lines", "planes", "sess_ns"]) permpar = misc_analys.set_multcomp(permpar, sess_df=dummy_df) split = "by_exp" diffs_df = seq_analys.get_sess_grped_diffs_df( sessions, analyspar=analyspar, stimpar=stimpar, basepar=basepar, permpar=permpar, split=split, randst=seed, parallel=parallel, ) extrapar = { "split": split, "seed": seed, } info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "stimpar": stimpar._asdict(), "basepar": basepar._asdict(), "permpar": permpar._asdict(), "extrapar": extrapar, "diffs_df": diffs_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def visual_flow_rel_resp_sess123(sessions, analyspar, sesspar, stimpar, permpar, figpar, seed=None, parallel=False): """ visual_flow_rel_resp_sess123(sessions, analyspar, sesspar, stimpar, permpar, figpar) Retrieves ROI responses to expected and unexpected visual flow, relative to session 1. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - permpar (PermPar): named tuple containing permutation parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info("Compiling ROI visual flow responses relative to session 1.", extra={"spacing": "\n"}) if analyspar.scale: raise ValueError("analyspar.scale should be set to False.") # calculate multiple comparisons dummy_df = misc_analys.get_check_sess_df( sessions, None, analyspar).drop_duplicates(subset=["lines", "planes", "sess_ns"]) permpar = misc_analys.set_multcomp(permpar, sess_df=dummy_df, CIs=False, factor=2) rel_sess = 1 rel_resp_df = seq_analys.get_rel_resp_stats_df( sessions, analyspar=analyspar, stimpar=stimpar, permpar=permpar, rel_sess=rel_sess, randst=seed, parallel=parallel, ) extrapar = { "rel_sess": rel_sess, "seed": seed, } info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "stimpar": stimpar._asdict(), "permpar": permpar._asdict(), "extrapar": extrapar, "rel_resp_df": rel_resp_df.to_dict(), } helper_fcts.plot_save_all(info, figpar)
def gabor_ex_roi_responses_sess1(sessions, analyspar, sesspar, stimpar, basepar, figpar, seed=None, parallel=False): """ gabor_ex_roi_responses_sess1(sessions, analyspar, sesspar, stimpar, basepar, figpar) Retrieves example ROI Gabor sequence responses from session 1. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info( "Compiling example ROI Gabor sequence responses from session 1.", extra={"spacing": "\n"}) n_ex = 6 rolling_win = 4 ex_traces_df = seq_analys.get_ex_traces_df( sessions, analyspar, stimpar, basepar, n_ex=n_ex, rolling_win=rolling_win, randst=seed, parallel=parallel, ) extrapar = { "n_ex": n_ex, "rolling_win": rolling_win, "seed": seed, } info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "stimpar": stimpar._asdict(), "basepar": basepar._asdict(), "extrapar": extrapar, "ex_traces_df": ex_traces_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def gabor_example_roi_usis(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar, seed=None, parallel=False): """ gabor_example_roi_usis(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar) Retrieves example ROI Gabor USI traces. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - idxpar (IdxPar): named tuple containing index parameters - permpar (PermPar): named tuple containing permutation parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info("Compiling Gabor example ROI USI data.", extra={"spacing": "\n"} ) # check stimpar.pre if (not isinstance(stimpar.pre, list)) or (len(stimpar.pre) == 1): pre_list = gen_util.list_if_not(stimpar.pre) stimpar = sess_ntuple_util.get_modif_ntuple(stimpar, "pre", pre_list) elif len(stimpar.pre) != 2: raise ValueError("Expected 2 values for stimpar.pre: one for " "index calculation and one for traces.") # use first stimpar.pre for idx calculation stimpar_idx = sess_ntuple_util.get_modif_ntuple( stimpar, "pre", stimpar.pre[0] ) chosen_rois_df = usi_analys.get_chosen_roi_df( sessions, analyspar=analyspar, stimpar=stimpar_idx, basepar=basepar, idxpar=idxpar, permpar=permpar, target_idx_vals = [0.5, 0, -0.5], target_idx_sigs = ["sig", "not_sig", "sig"], randst=seed, parallel=parallel ) # use second stimpar.pre for traces stimpar_tr = sess_ntuple_util.get_modif_ntuple( stimpar, "pre", stimpar.pre[1] ) chosen_rois_df = usi_analys.add_chosen_roi_traces( sessions, chosen_rois_df, analyspar=analyspar, stimpar=stimpar_tr, basepar=basepar, split=idxpar.feature, parallel=parallel ) extrapar = {"seed": seed} info = { "analyspar": analyspar._asdict(), "stimpar": stimpar._asdict(), "sesspar": sesspar._asdict(), "basepar": basepar._asdict(), "idxpar": idxpar._asdict(), "permpar": permpar._asdict(), "extrapar": extrapar, "chosen_rois_df": chosen_rois_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def gabor_roi_usi_distr(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar, seed=None, parallel=False): """ gabor_roi_usi_distr(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar) Retrieves ROI Gabor USI percentile distributions. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - idxpar (IdxPar): named tuple containing index parameters - permpar (PermPar): named tuple containing permutation parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info("Compiling Gabor ROI USI distributions.", extra={"spacing": "\n"} ) n_bins = 40 idx_df = usi_analys.get_idx_df( sessions, analyspar=analyspar, stimpar=stimpar, basepar=basepar, idxpar=idxpar, permpar=permpar, n_bins=n_bins, randst=seed, parallel=parallel ) extrapar = { "n_bins" : n_bins, "seed" : seed, } info = {"analyspar": analyspar._asdict(), "sesspar" : sesspar._asdict(), "stimpar" : stimpar._asdict(), "basepar" : basepar._asdict(), "idxpar" : idxpar._asdict(), "permpar" : permpar._asdict(), "extrapar" : extrapar, "idx_df" : idx_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def gabor_roi_usi_sig_by_mouse(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar, seed=None, parallel=False): """ gabor_roi_usi_sig_by_mouse(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar) Retrieves percentage of signifiant ROI Gabor USIs by mouse. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - idxpar (IdxPar): named tuple containing index parameters - permpar (PermPar): named tuple containing permutation parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info( f"Compiling percentages of significant Gabor USIs by mouse.", extra={"spacing": "\n"} ) by_mouse = True idx_df = usi_analys.get_idx_df( sessions, analyspar=analyspar, stimpar=stimpar, basepar=basepar, idxpar=idxpar, permpar=permpar, by_mouse=by_mouse, randst=seed, parallel=parallel, ) permpar = misc_analys.set_multcomp( permpar, sess_df=idx_df, pairs=False, factor=2 ) perc_sig_df = usi_analys.get_perc_sig_df(idx_df, analyspar, permpar, seed) extrapar = { "by_mouse": by_mouse, "seed" : seed, } info = {"analyspar" : analyspar._asdict(), "sesspar" : sesspar._asdict(), "stimpar" : stimpar._asdict(), "basepar" : basepar._asdict(), "idxpar" : idxpar._asdict(), "permpar" : permpar._asdict(), "extrapar" : extrapar, "perc_sig_df": perc_sig_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def gabor_tracked_roi_abs_usi_means_sess123_by_mouse( sessions, analyspar, sesspar, stimpar, basepar, idxpar, figpar, parallel=False): """ gabor_tracked_roi_abs_usi_means_sess123_by_mouse( sessions, analyspar, sesspar, stimpar, basepar, idxpar, figpar) Retrieves mean absolute for tracked ROI Gabor USIs, for each mouse, for session 1 to 3. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - idxpar (IdxPar): named tuple containing index parameters - figpar (dict): dictionary containing figure parameters Optional args: - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info( ("Compiling absolute means per mouse of tracked ROI Gabor USIs for " "sessions 1 to 3."), extra={"spacing": "\n"}) if not analyspar.tracked: raise ValueError("analyspar.tracked should be set to True.") # remove incomplete session series and warn sessions = misc_analys.check_sessions_complete(sessions) absolute = True by_mouse = True idx_stats_df = usi_analys.get_idx_stats_df( sessions, analyspar=analyspar, stimpar=stimpar, basepar=basepar, idxpar=idxpar, absolute=absolute, by_mouse=by_mouse, parallel=parallel, ) extrapar = { "absolute": absolute, "by_mouse": by_mouse, } info = {"analyspar" : analyspar._asdict(), "sesspar" : sesspar._asdict(), "stimpar" : stimpar._asdict(), "basepar" : basepar._asdict(), "idxpar" : idxpar._asdict(), "extrapar" : extrapar, "idx_stats_df": idx_stats_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def visual_flow_tracked_roi_abs_usi_means_sess123( sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar, seed=None, parallel=False): """ visual_flow_tracked_roi_abs_usi_means_sess123( sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar) Retrieves mean absolute for tracked ROI visual flow USIs for session 1 to 3. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - idxpar (IdxPar): named tuple containing index parameters - permpar (PermPar): named tuple containing permutation parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info( ("Compiling absolute means of tracked ROI Gabor USIs for " "sessions 1 to 3."), extra={"spacing": "\n"}) if not analyspar.tracked: raise ValueError("analyspar.tracked should be set to True.") # remove incomplete session series and warn sessions = misc_analys.check_sessions_complete(sessions) # calculate multiple comparisons dummy_df = misc_analys.get_check_sess_df( sessions, None, analyspar).drop_duplicates( subset=["lines", "planes", "sess_ns"]) permpar = misc_analys.set_multcomp(permpar, sess_df=dummy_df, CIs=False) absolute = True by_mouse = False idx_stats_df = usi_analys.get_idx_stats_df( sessions, analyspar=analyspar, stimpar=stimpar, basepar=basepar, idxpar=idxpar, permpar=permpar, absolute=absolute, by_mouse=by_mouse, randst=seed, parallel=parallel, ) extrapar = { "absolute": absolute, "by_mouse": by_mouse, "seed": seed, } info = {"analyspar" : analyspar._asdict(), "sesspar" : sesspar._asdict(), "stimpar" : stimpar._asdict(), "basepar" : basepar._asdict(), "idxpar" : idxpar._asdict(), "permpar" : permpar._asdict(), "extrapar" : extrapar, "idx_stats_df": idx_stats_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def visual_flow_tracked_roi_usis_sess123(sessions, analyspar, sesspar, stimpar, basepar, idxpar, figpar, parallel=False): """ visual_flow_tracked_roi_usis_sess123(sessions, analyspar, sesspar, stimpar, basepar, idxpar, figpar) Retrieves tracked ROI visual flow USIs for session 1 to 3. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - idxpar (IdxPar): named tuple containing index parameters - figpar (dict): dictionary containing figure parameters Optional args: - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ logger.info("Compiling tracked ROI visual flow USIs for sessions 1 to 3.", extra={"spacing": "\n"}) if not analyspar.tracked: raise ValueError("analyspar.tracked should be set to True.") # remove incomplete session series and warn sessions = misc_analys.check_sessions_complete(sessions) idx_only_df = usi_analys.get_idx_only_df( sessions, analyspar=analyspar, stimpar=stimpar, basepar=basepar, idxpar=idxpar, parallel=parallel ) extrapar = dict() info = {"analyspar" : analyspar._asdict(), "sesspar" : sesspar._asdict(), "stimpar" : stimpar._asdict(), "basepar" : basepar._asdict(), "idxpar" : idxpar._asdict(), "extrapar" : extrapar, "idx_only_df": idx_only_df.to_dict() } helper_fcts.plot_save_all(info, figpar)
def gabor_decoding_sess123(sessions, analyspar, sesspar, stimpar, logregpar, permpar, figpar, seed=None, parallel=False): """ gabor_decoding_sess123(sessions, analyspar, sesspar, stimpar, logregpar, permpar, figpar) Runs decoding analyses (D and U orientations). Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - logregpar (LogRegPar): named tuple containing logistic regression parameters - permpar (PermPar): named tuple containing permutation parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None - parallel (bool): if True, some of the analysis is run in parallel across CPU cores default: False """ comp_str = logregpar.comp.replace("ori", " orientation") logger.info( f"Compiling Gabor {comp_str} decoder performances for sessions 1 to 3.", extra={"spacing": "\n"}) if not analyspar.scale: raise ValueError("analyspar.scale should be True.") # calculate multiple comparisons dummy_df = misc_analys.get_check_sess_df( sessions, None, analyspar).drop_duplicates(subset=["lines", "planes", "sess_ns"]) permpar = misc_analys.set_multcomp(permpar, sess_df=dummy_df, pairs=False, factor=2) n_splits = 100 score_df = decoding_analys.run_sess_logregs( sessions, analyspar=analyspar, stimpar=stimpar, logregpar=logregpar, permpar=permpar, n_splits=n_splits, seed=seed, parallel=parallel, ) extrapar = { "n_splits": n_splits, "seed": seed, } info = { "analyspar": analyspar._asdict(), "sesspar": sesspar._asdict(), "stimpar": stimpar._asdict(), "logregpar": logregpar._asdict(), "permpar": permpar._asdict(), "extrapar": extrapar, "scores_df": score_df.to_dict(), } helper_fcts.plot_save_all(info, figpar)
def gabor_example_roi_usi_sig(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar, seed=None): """ gabor_example_roi_usi_sig(sessions, analyspar, sesspar, stimpar, basepar, idxpar, permpar, figpar) Retrieves example ROI Gabor USI null distribution for significance assessment. Saves results and parameters relevant to analysis in a dictionary. Required args: - sessions (list): Session objects (singleton) - analyspar (AnalysPar): named tuple containing analysis parameters - sesspar (SessPar): named tuple containing session parameters - stimpar (StimPar): named tuple containing stimulus parameters - basepar (BasePar): named tuple containing baseline parameters - idxpar (IdxPar): named tuple containing index parameters - permpar (PermPar): named tuple containing permutation parameters - figpar (dict): dictionary containing figure parameters Optional args: - seed (int): seed value to use. (-1 treated as None) default: None """ target_roi_perc = TARGET_ROI_PERC logger.info( ("Compiling Gabor ROI USIs, and identifying an example at or near " f"the {target_roi_perc} percentile."), extra={"spacing": "\n"} ) if len(sessions) != 1: raise ValueError("Expected to receive only 1 session.") ex_idx_df = usi_analys.get_ex_idx_df( sessions[0], analyspar=analyspar, stimpar=stimpar, basepar=basepar, idxpar=idxpar, permpar=permpar, randst=seed, target_roi_perc=target_roi_perc ) extrapar = {"seed": seed} info = { "analyspar": analyspar._asdict(), "stimpar" : stimpar._asdict(), "sesspar" : sesspar._asdict(), "basepar" : basepar._asdict(), "idxpar" : idxpar._asdict(), "permpar" : permpar._asdict(), "extrapar" : extrapar, "ex_idx_df": ex_idx_df.to_dict() } helper_fcts.plot_save_all(info, figpar)