From 802d39aaeb97e028196ebeaa3b406392a8726298 Mon Sep 17 00:00:00 2001 From: zqfang Date: Sat, 29 Dec 2018 13:56:34 +0800 Subject: [PATCH 1/2] fixed NA output when input gene's values are all zeros --- combat.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/combat.py b/combat.py index 9c19e0c..78b4e51 100755 --- a/combat.py +++ b/combat.py @@ -84,6 +84,9 @@ def combat(data, batch, model=None, numerical_covariates=None): for c in numerical_covariates if not c in drop_cols] design = design_mat(model, numerical_covariates, batch_levels) + # remove genes with all zeros, if not, corrected dataframe will be all NAs. + sys.stderr.write("Preprocessing Data across genes.\n") + data = data[data.sum(axis=1) > 0 ] sys.stderr.write("Standardizing Data across genes.\n") B_hat = np.dot(np.dot(la.inv(np.dot(design.T, design)), design.T), data.T) From cc39bd701e1e5c38c0d56e882e01ef17f0f0ae34 Mon Sep 17 00:00:00 2001 From: zqfang Date: Mon, 31 Dec 2018 14:03:31 +0800 Subject: [PATCH 2/2] improved --- combat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/combat.py b/combat.py index 9468310..cb07ad5 100755 --- a/combat.py +++ b/combat.py @@ -86,7 +86,7 @@ def combat(data, batch, model=None, numerical_covariates=None): design = design_mat(model, numerical_covariates, batch_levels) # remove genes with all zeros, if not, corrected dataframe will be all NAs. sys.stderr.write("Preprocessing Data across genes.\n") - data = data[data.sum(axis=1) > 0 ] + data = data[ (data != 0).sum(axis=1) > 0 ] sys.stderr.write("Standardizing Data across genes.\n") B_hat = np.dot(np.dot(la.inv(np.dot(design.T, design)), design.T), data.T)