From c22ad3fd3690941a9f34da076854e5767eb359ae Mon Sep 17 00:00:00 2001
From: Fontrodona Nicolas <nicolas.fontrodona@ens-lyon.fr>
Date: Mon, 11 Jan 2021 16:56:39 +0100
Subject: [PATCH] src/visu/figure_maker.py: add a warning message if some bed
 feature cannot be reported

---
 src/visu/figure_maker.py | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/visu/figure_maker.py b/src/visu/figure_maker.py
index 4599eca..d8bfd7c 100644
--- a/src/visu/figure_maker.py
+++ b/src/visu/figure_maker.py
@@ -15,6 +15,7 @@ import pyBigWig as pbw
 import seaborn as sns
 import matplotlib.pyplot as plt
 from tqdm import tqdm
+from loguru import logger
 
 
 def load_bed(bed: Path, bed_name: str) -> List[List[Union[int, str]]]:
@@ -111,6 +112,10 @@ def inspect_bigwig_regions(bw: Any, region: List,
     3      2.00    3     cond1        R1  exon2
     4      2.00    4     cond1        R1  exon2
     """
+    r_start = max(region[1], 0)
+    r_end = min(region[2], bw.chroms(region[0]))
+    if r_end - r_start < nb_bin:
+        return pd.DataFrame()
     val = bw.stats(region[0],
                    max(region[1], 0),
                    min(region[2], bw.chroms(region[0])),
@@ -173,6 +178,10 @@ def create_sample_table(bw_file: Path, regions: List[List],
     for region in tqdm(regions, desc="scanning coverage ..."):
         list_df.append(inspect_bigwig_regions(bw, region, replicate, nb_bin,
                                               resize, condition_name))
+    r = sum([df.empty for df in list_df])
+    if r > 0:
+        logger.warning(f"They were {r} bed feature that could not be reported "
+                       f"because of their small size")
     return pd.concat(list_df, axis=0, ignore_index=True)
 
 
-- 
GitLab