njab.stats.ancova module#

Analysis of covariance using pingouin and statsmodels.

class njab.stats.ancova.Ancova(df_proteomics: DataFrame, df_clinic: DataFrame, target: str, covar: list[str], value_name: str = 'intensity')[source]#

Bases: object

Base Ancova class.

ancova(random_seed=123)[source]#
get_scores()[source]#
class njab.stats.ancova.AncovaAll(df_proteomics: DataFrame, df_clinic: DataFrame, target: str, covar: list[str], value_name: str = 'intensity')[source]#

Bases: Ancova

Ancova with FDR on all variables except the constant of the linear regression for each.

ancova(random_seed=123)[source]#
class njab.stats.ancova.AncovaOnlyTarget(df_proteomics: DataFrame, df_clinic: DataFrame, target: str, covar: list[str], value_name: str = 'intensity')[source]#

Bases: Ancova

Ancova with FDR on only the target variables p-values in the set of hypothesis.

ancova(random_seed=123) DataFrame[source]#
njab.stats.ancova.add_fdr_scores(scores: DataFrame, random_seed: int | None = None, alpha: float = 0.05, method: str = 'indep', p_val_column: str = 'p-unc') DataFrame[source]#

Add FDR scores based on p-values in p_val_column.

njab.stats.ancova.ancova_pg(df_long: DataFrame, feat_col: str, dv: str, between: str, covar: list[str] | str, fdr=0.05) DataFrame[source]#

Analysis of covariance (ANCOVA) using pg.ancova https://pingouin-stats.org/generated/pingouin.ancova.html

Adds multiple hypothesis testing correction by Benjamini-Hochberg (qvalue, rejected)

Parameters:
  • df_long (pd.DataFrame) – should be long data format

  • feat_col (str) – feature column (or index) name

  • dv (str) – Name of column containing the dependant variable, passed to pg.ancova

  • between (str) – Name of column containing the between factor, passed to pg.ancova

  • covar (list, str) – Name(s) of column(s) containing the covariate, passed to pg.ancova

  • fdr (float, optional) – FDR treshold to apply, by default 0.05

Returns:

Columns: [ ‘Source’,

’SS’, ‘DF’, ‘F’, ‘p-unc’, ‘np2’, ‘{feat_col}’, ‘-Log10 pvalue’, ‘qvalue’, ‘rejected’]

Return type:

pd.DataFrame

njab.stats.ancova.filter_all_covars_from_scores(scores: DataFrame, filter_for: str) DataFrame[source]#

Only keep feature score from pingouin ANCOVA list.

njab.stats.ancova.filter_residuals_from_scores(scores: DataFrame, filter_for='Residual') DataFrame[source]#

Remove residual from pingouin ANCOVA list.