[docs]defsummarize_measurements(adata:AnnData,layer:str=None,var_names:Iterable[str]|None=None,statistics:Iterable[str]=None,)->AnnData:"""Summarizes numerical measurements into minimum, maximum and average values. Args: adata: AnnData object containing measurements that layer: Layer to calculate the expanded measurements for. Defaults to None (use X). var_names: For which measurements to determine the expanded measurements for. Defaults to None (all numerical measurements). statistics: Which expanded measurements to calculate. Possible values are 'min', 'max', 'mean' Defaults to None (calculate minimum, maximum and mean). Returns: A new AnnData object with expanded X containing the specified statistics as additional columns replacing the original values. """ifvar_namesisNone:var_names=adata.var_namesifstatisticsisNone:statistics=["min","max","mean"]aggregation_functions={measurement:statisticsformeasurementinvar_names}grouped=anndata_to_df(adata,layer=layer).groupby(adata.obs.index).agg(aggregation_functions)grouped.columns=[f"{col}_{stat}"forcol,statingrouped.columns]expanded_adata=df_to_anndata(grouped)returnexpanded_adata