From ab9722aa0f20a3d1d9eeedecc4c5db935be9149e Mon Sep 17 00:00:00 2001 From: johaGL Date: Fri, 22 Mar 2024 00:26:52 +0100 Subject: [PATCH] bivariate: clean code; yaml: change defaults: spearman --- .../config/analysis/method/bivariate_analysis.yaml | 10 +++++----- src/dimet/method/__init__.py | 10 +++++++++- src/dimet/processing/bivariate_analysis.py | 4 ++-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/dimet/config/analysis/method/bivariate_analysis.yaml b/src/dimet/config/analysis/method/bivariate_analysis.yaml index e2b23a0..a4206f5 100644 --- a/src/dimet/config/analysis/method/bivariate_analysis.yaml +++ b/src/dimet/config/analysis/method/bivariate_analysis.yaml @@ -6,16 +6,16 @@ name: Computation of the correlation of MDV profiles, or the metabolite time cou # (**) : automatically will run conditions_MDV_comparison: # (**) if >= 2 conditions and >=1 timepoint (timepoints run separately) - isotopologue_proportions: pearson + isotopologue_proportions: spearman timepoints_MDV_comparison: # (**) if >= 1 condition and >=2 timepoints - isotopologue_proportions: pearson + isotopologue_proportions: spearman conditions_metabolite_time_profiles: # (**) if >= 2 conditions AND >=2 time points in data - abundances: pearson - mean_enrichment: pearson + abundances: spearman + mean_enrichment: spearman -# test modification doable with external config 'statistical_test' +# test modification accessible through external config 'statistical_test' correction_method: fdr_bh diff --git a/src/dimet/method/__init__.py b/src/dimet/method/__init__.py index 9e0aa89..8fc870a 100644 --- a/src/dimet/method/__init__.py +++ b/src/dimet/method/__init__.py @@ -1,7 +1,7 @@ import logging import os import sys -from typing import Union +from typing import Dict, Union import hydra from omegaconf import DictConfig, ListConfig, OmegaConf, open_dict @@ -191,6 +191,14 @@ class BivariateAnalysisConfig(MethodConfig): """ correction_method: str = "fdr_bh" output_include_gmean_arr_columns: bool = True + conditions_MDV_comparison: Dict[str, str] = { + 'isotopologue_proportions': 'spearman'} + timepoints_MDV_comparison: Dict[str, str] = { + 'isotopologue_proportions': 'spearman'} + conditions_metabolite_time_profiles: Dict[str, str] = { + 'abundances': 'spearman', + 'mean_enrichment': 'spearman' + } def build(self) -> "BivariateAnalysis": return BivariateAnalysis(config=self) diff --git a/src/dimet/processing/bivariate_analysis.py b/src/dimet/processing/bivariate_analysis.py index 35eca82..9436589 100644 --- a/src/dimet/processing/bivariate_analysis.py +++ b/src/dimet/processing/bivariate_analysis.py @@ -32,7 +32,7 @@ def compute_statistical_correlation(df: pd.DataFrame, stat_list = [] pvalue_list = [] for i, metabolite in enumerate(list(df['metabolite'])): - # array of n-(timepoints or m+x) geometrical means values + # array of n (timepoints or m+x) geometrical means values array_1 = df.loc[metabolite, "gmean_arr_1"] array_2 = df.loc[metabolite, "gmean_arr_2"] if test == "pearson": @@ -79,7 +79,7 @@ def compute_bivariate_by_behavior( """ performs two steps: 1. calls functions to compute geometric means, obtaining df's inside dict - 2. computes the bivariate statistical test (pearson by default) + 2. computes the bivariate statistical test """ if behavior == "conditions_MDV_comparison": df_dict = conditions_MDV_gmean_df_dict(df, metadata_df, comparison)