group_orchestrators#

class DensityGroupAnalysisOrchestrator(*, group_controller, pipeline: str, groups=None, channel=None)[source]#

Bases: GroupOrchestratorBase

Group-level statistics & plots for density maps.

check_ids_are_unique(gp1_dirs, gp2_dirs) None[source]#
compute_p_values(comparisons: List[Tuple[str, str]], *, channels: Iterable[str], advanced: bool, density_files_suffix: str) None[source]#
compute_stats_tables(comparisons, *, channel: str | None = None, density_suffix: str | None = None, save=True)[source]#
Moves the heavy lifting out of the tab:
  • runs make_summary per pair (threaded if a wrapper is set)

  • returns { (gp1, gp2): { channel: DataFrame } }

density_files_are_comparable(gp1_dirs, gp2_dirs, channel: str, suffix: str = '') bool[source]#

Raise GroupStatsError if density file sizes differ across groups.

find_analysable_channels(*, density_suffix: str | None) List[str][source]#

Inspects the first sample of the first group to infer which channels have density maps.

find_available_density_suffixes() List[str][source]#

Scan the first sample’s workspace to find available density suffixes.

plot_density_maps(group_folders: List[str], *, channel: str, density_suffix: str, parent=None)[source]#
plot_p_value_maps(comparisons: List[Tuple[str, str]], *, channel: str, suffix: str, advanced: bool = False, parent=None)[source]#
run_plots(plot_function, comparisons: List[Tuple[str, str]], *, channel: str, plot_kw_args: Dict) list[QWebEngineView][source]#
property assets: GroupResultsAssets#