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