Report if the Summary.htm file is missing the Lane Results Summary block.
[htsworkflow.git] / htsworkflow / pipelines / summary.py
index bce8184b7bd126978de6ab8800adf28981cd7a17..c5db2bc5e1bb04de24c99704174809a8b9634bac 100644 (file)
@@ -1,12 +1,15 @@
 """
 Analyze the Summary.htm file produced by GERALD
 """
+import logging
 import types
 from pprint import pprint
 
 from htsworkflow.pipelines.runfolder import ElementTree
 from htsworkflow.util.ethelp import indent, flatten
 
+nan = float('nan')
+
 class Summary(object):
     """
     Extract some useful information from the Summary.htm file
@@ -184,6 +187,8 @@ class Summary(object):
         for name, end in table_names:
           if tables.has_key(name):
             self._extract_lane_results_for_end(tables, name, end)
+        else:
+            logging.warning("No Lane Results Summary Found in %s" % (pathname,))
 
     def _extract_lane_results_for_end(self, tables, table_name, end):
         """
@@ -260,9 +265,16 @@ def parse_mean_range(value):
     Parse values like 123 +/- 4.5
     """
     if value.strip() == 'unknown':
-        return 0, 0
+        return nan, nan
+
+    values = value.split()
+    if len(values) == 1:
+        if values[0] == '+/-':
+            return nan,nan
+        else:
+            return tonumber(values[0])
 
-    average, pm, deviation = value.split()
+    average, pm, deviation = values
     if pm != '+/-':
         raise RuntimeError("Summary.htm file format changed")
     return tonumber(average), tonumber(deviation)