From a763c9a0766c05b9ae80da5f18b59afe2c02b691 Mon Sep 17 00:00:00 2001
From: Blaise Li <blaise.li__git@nsup.org>
Date: Thu, 24 Sep 2020 09:45:09 +0200
Subject: [PATCH] Catch stats numeric error.

---
 libhts/libhts.py | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/libhts/libhts.py b/libhts/libhts.py
index bb4cdda..a68c2d6 100644
--- a/libhts/libhts.py
+++ b/libhts/libhts.py
@@ -456,7 +456,17 @@ def size_factor_correlations(counts_data, summaries, normalizer):
     # by_norm = counts_data / size_factors
 
     def compute_pearsonr_with_size_factor(row):
-        return pearsonr(row, size_factors)[0]
+        try:
+            return pearsonr(row, size_factors)[0]
+        except ValueError as err:
+            if str(err) == "array must not contain infs or NaNs":
+                msg = (
+                    f"Cannot compute Pearson correlation with size factors "
+                    f"when normalizing using {normaliser}")
+                warnings.warn(msg)
+                return np.nan
+            else:
+                raise
     # return by_norm.apply(compute_pearsonr_with_size_factor, axis=1)
     return (counts_data / size_factors).apply(compute_pearsonr_with_size_factor, axis=1)
 
-- 
GitLab