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)
Example #4
0
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)
Example #7
0
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)
Example #9
0
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)
Example #10
0
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)
Example #16
0
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)
Example #17
0
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)
Example #18
0
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)
Example #19
0
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)
Example #20
0
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)
Example #21
0
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)
Example #23
0
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)