diff --git a/src/common/functions.py b/src/common/functions.py index bbff77c1..8325049c 100644 --- a/src/common/functions.py +++ b/src/common/functions.py @@ -651,7 +651,7 @@ def order_classes( classes): def sort_classes(a, b): # sort by ensembl/refseq - class_sequence = ['1', '2', '3-', '3', '3+', '4', '5', 'M'] + class_sequence = ['1', '2', '3-', '3', '3+', '4M', '4', '5'] a_importance = class_sequence.index(a) b_importance = class_sequence.index(b) diff --git a/src/common/models.py b/src/common/models.py index 9136539b..39f1c3f7 100644 --- a/src/common/models.py +++ b/src/common/models.py @@ -424,10 +424,12 @@ def class_to_text(self, classification = None): return 'Likely pathogenic' if classification == '5': return 'Pathogenic' - #if classification == '3-': - # return 'Uncertain with tendency to benign' - #if classification == '3+': - # return 'Uncertain with tendency to pathogenic' + if classification == '3-': + return 'Uncertain significance' + if classification == '3+': + return 'Uncertain significance' + if classification == 'M': + return 'Likely pathogenic, low penetrance' def get_header(self, simple = False): if not simple: diff --git a/src/frontend_celery/config.py b/src/frontend_celery/config.py index 47e932b3..fb2c3d9a 100644 --- a/src/frontend_celery/config.py +++ b/src/frontend_celery/config.py @@ -88,6 +88,9 @@ class ProdConfig(Config): CLIENTSECRET = os.environ.get('CLIENT_SECRET') DISCOVERYURL = f'{ISSUER}/.well-known/openid-configuration' + # clinvar + CLINVAR_API_ENDPOINT = "https://submit.ncbi.nlm.nih.gov/api/v1/submissions" # production endpoint + class DevConfig(Config): diff --git a/src/frontend_celery/webapp/static/css/colors.css b/src/frontend_celery/webapp/static/css/colors.css index 1261948f..2964d3e0 100644 --- a/src/frontend_celery/webapp/static/css/colors.css +++ b/src/frontend_celery/webapp/static/css/colors.css @@ -190,6 +190,10 @@ input.invalid { color:rgba(29, 181, 207, 1); } +.classification_4M_col { + color:rgba(255,142,61,1); +} + .classification_4_col { color:rgba(255,142,61,1); } @@ -202,9 +206,7 @@ input.invalid { color:rgb(164, 164, 164); } -.classification_M_col { - color:rgb(218, 113, 218); -} + .classification-gradient { diff --git a/src/frontend_celery/webapp/static/css/styles.css b/src/frontend_celery/webapp/static/css/styles.css index 779e9a84..9112a570 100644 --- a/src/frontend_celery/webapp/static/css/styles.css +++ b/src/frontend_celery/webapp/static/css/styles.css @@ -440,5 +440,5 @@ footer { } .classM_text { white-space: pre; - font-size: 7px; + font-size: 5px; } \ No newline at end of file diff --git a/src/frontend_celery/webapp/static/js/startup.js b/src/frontend_celery/webapp/static/js/startup.js index d0281de1..b45a6977 100644 --- a/src/frontend_celery/webapp/static/js/startup.js +++ b/src/frontend_celery/webapp/static/js/startup.js @@ -63,7 +63,7 @@ $(document).ready(function() // coloring of consensus classification - const possible_classes = ["1", "2", "3-", "3", "3+", "4", "5", "M"] + const possible_classes = ["1", "2", "3-", "3", "3+", "4", "5", "4M"] document.getElementsByName('class-label').forEach(function(obj) { var consensus_classification = obj.getAttribute('classification').trim(); if (!possible_classes.includes(consensus_classification)) { diff --git a/src/frontend_celery/webapp/tasks.py b/src/frontend_celery/webapp/tasks.py index 96a6460a..73a0e81b 100644 --- a/src/frontend_celery/webapp/tasks.py +++ b/src/frontend_celery/webapp/tasks.py @@ -65,7 +65,6 @@ def fetch_consequence_task(self, variant_id): def start_variant_import(user_id, user_roles, conn: Connection): # starts the celery task import_request = conn.get_most_recent_import_request() # get the most recent import request - import_request = None min_date = None if import_request is not None: min_date = import_request.import_variant_list_finished_at diff --git a/src/frontend_celery/webapp/templates/doc/changelog.html b/src/frontend_celery/webapp/templates/doc/changelog.html index 6a5e8d27..2e5caa76 100644 --- a/src/frontend_celery/webapp/templates/doc/changelog.html +++ b/src/frontend_celery/webapp/templates/doc/changelog.html @@ -11,6 +11,56 @@

{% block title %} Changelog {% endblock %}

Changelog

+ +
v 1.4.1 (02.11.2023)
+
+ Bugfixes: + +
+
v 1.4 (27.10.2023)
+
+ General changes: + + Bugfixes: + + Known issues: + +
+
v 1.3 (19.06.2023)
General changes: diff --git a/src/frontend_celery/webapp/templates/index.html b/src/frontend_celery/webapp/templates/index.html index 496b226d..77579a9a 100644 --- a/src/frontend_celery/webapp/templates/index.html +++ b/src/frontend_celery/webapp/templates/index.html @@ -111,6 +111,8 @@

Changelog

  • REVEL annotations are now transcript specific and show the maximal value in the overview. The details list REVEL scores for all annotations
  • Additional warnings added to annotation service
  • User classifications can now be deleted by the user that created it
  • +
  • Renamed class 4 to 4M & changed its color to orange
  • +
  • Renamed PALB2 v1.0.0 & TP53 v1.4.0 classification schemes
  • Bugfixes:
    -
    v 1.4.1 (02.11.2023)
    -
    - Bugfixes: - -
    -
    v 1.4 (27.10.2023)
    -
    - General changes: - - Bugfixes: - - Known issues: -
    previous changelog diff --git a/src/frontend_celery/webapp/templates/macros.html b/src/frontend_celery/webapp/templates/macros.html index a66ca482..c7126fec 100644 --- a/src/frontend_celery/webapp/templates/macros.html +++ b/src/frontend_celery/webapp/templates/macros.html @@ -47,10 +47,10 @@ {% endif %} {% else %} - {% if class == "M" %} + {% if class == "4M" %} - M + 4M {% else %} diff --git a/src/frontend_celery/webapp/variant/variant_routes.py b/src/frontend_celery/webapp/variant/variant_routes.py index 4663778c..2d93951c 100644 --- a/src/frontend_celery/webapp/variant/variant_routes.py +++ b/src/frontend_celery/webapp/variant/variant_routes.py @@ -261,6 +261,7 @@ def classify(variant_id): return abort(404) allowed_classes = conn.get_enumtypes('user_classification', 'classification') + allowed_classes = functions.order_classes(allowed_classes) user_id = session['user']['user_id'] previous_classifications = {user_id: functions.list_of_objects_to_dict(variant.get_user_classifications(user_id), key_func = lambda a : a.scheme.id, val_func = lambda a : a.to_dict())}