From 92f305d990f5ef15bc8bea20dc76206d3763fb9f Mon Sep 17 00:00:00 2001 From: Sebastian Proost Date: Thu, 25 Jan 2018 04:52:58 +0100 Subject: [PATCH] heatmap now throws warning if genes are skipped --- conekt/models/expression/profiles.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/conekt/models/expression/profiles.py b/conekt/models/expression/profiles.py index 80ce851..305b87c 100644 --- a/conekt/models/expression/profiles.py +++ b/conekt/models/expression/profiles.py @@ -9,6 +9,7 @@ from math import log from sqlalchemy.orm import joinedload, undefer +from flask import flash SQL_COLLATION = 'NOCASE' if db.engine.name == 'sqlite' else '' @@ -160,12 +161,26 @@ def get_heatmap(species_id, probes, zlog=True, raw=False): output = [] + not_found = [p.lower() for p in probes] + for profile in profiles: name = profile.probe data = json.loads(profile.profile) order = data['order'] experiments = data['data'] + try: + not_found.remove(profile.probe.lower()) + except ValueError as _: + # Element not in list + pass + + try: + not_found.remove(profile.sequence.name.lower()) + except ValueError as _: + # Element not in list + pass + values = {} for o in order: @@ -189,6 +204,9 @@ def get_heatmap(species_id, probes, zlog=True, raw=False): "sequence_id": profile.sequence_id, "shortest_alias":profile.sequence.shortest_alias}) + if len(not_found) > 0: + flash("Couldn't fine profile for: %s" % ",".join(not_found), "warning") + return {'order': order, 'heatmap_data': output} @staticmethod