From 805f2f781f7630ef834f1fd4aa00971dc0b78e9a Mon Sep 17 00:00:00 2001 From: haibo-huang98 <haibo.huang@etu.u-paris.fr> Date: Thu, 9 Jan 2025 15:28:35 +0100 Subject: [PATCH] replace inf computed_Z score by real Z score or maximum value --- .../__pycache__/__main__.cpython-311.pyc | Bin 0 -> 8113 bytes jass_preprocessing/compute_score.py | 24 +++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 jass_preprocessing/__pycache__/__main__.cpython-311.pyc diff --git a/jass_preprocessing/__pycache__/__main__.cpython-311.pyc b/jass_preprocessing/__pycache__/__main__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7d78df709c338e0890b17ec874d692c45bc347f5 GIT binary patch literal 8113 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 IknyDcAF^<t-T(jq literal 0 HcmV?d00001 diff --git a/jass_preprocessing/compute_score.py b/jass_preprocessing/compute_score.py index 8bca34d..7e026c0 100644 --- a/jass_preprocessing/compute_score.py +++ b/jass_preprocessing/compute_score.py @@ -12,18 +12,36 @@ def compute_z_score(mgwas): """ Compute zscore value and sign1 add the corresponding column to the mgwas dataframe + + the smallest positive value of float + sys.float_info.min + 2.2250738585072014e-308 + + the biggest Z score + np.sqrt(ss.chi2.isf(sys.float_info.min, 1)) + 37.537836095576054 """ + + print(mgwas.columns) + mgwas["computed_z"] = np.sqrt(ss.chi2.isf(mgwas['pval'], 1)) + + if 'z' in mgwas.columns: + sign_vect = np.sign(mgwas.z) + + mgwas.loc[mgwas["computed_z"].isin([np.inf]), 'computed_z'] = mgwas["z"] - if 'beta_or_Z' in mgwas.columns: - sign_vect = np.sign(mgwas.beta_or_Z) + elif 'beta' in mgwas.columns: + sign_vect = np.sign(mgwas.beta) + mgwas["computed_z"] = mgwas["computed_z"].replace(np.inf, 37.537836095576054) else: if "OR" in mgwas.columns: sign_vect = np.sign(mgwas["OR"] - 1.0 + 10**(-8)) + mgwas["computed_z"] = mgwas["computed_z"].replace(np.inf, 37.537836095576054) else: raise ValueError( 'The gwas data frame doesn"t contain effect column') - mgwas["computed_z"] = np.sqrt(ss.chi2.isf(mgwas['pval'], 1)) * sign_vect * mgwas["sign_flip"] + mgwas["computed_z"] = mgwas["computed_z"] * sign_vect * mgwas["sign_flip"] return mgwas -- GitLab