From 4ce5695a35e92a704add8d497266bb2986a593f6 Mon Sep 17 00:00:00 2001 From: Muriithi Frederick Muriuki Date: Mon, 6 Sep 2021 06:47:52 +0300 Subject: Handle type-coercion exceptions * gn3/computations/qtlreaper.py: handle exceptions Sometimes, the values being parsed are plain strings and cannot be cast to the float types. This commit handles that by casting only those values that can be cast to float, and returning the others as strings. --- gn3/computations/qtlreaper.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gn3/computations/qtlreaper.py b/gn3/computations/qtlreaper.py index 30c7051..eff2a80 100644 --- a/gn3/computations/qtlreaper.py +++ b/gn3/computations/qtlreaper.py @@ -94,9 +94,15 @@ def parse_reaper_main_results(results_file): with open(results_file, "r") as infile: lines = infile.readlines() + def __parse_column_value(value): + try: + return float(value) + except: + return value + def __parse_line(line): items = line.strip().split("\t") - return items[0:2] + [float(item) for item in items[2:]] + return items[0:2] + [__parse_column_value(item) for item in items[2:]] header = lines[0].strip().split("\t") return [dict(zip(header, __parse_line(line))) for line in lines[1:]] -- cgit v1.2.3