From 5614a9eb69916c4d93ecf64d6ddc3540fda74d4a Mon Sep 17 00:00:00 2001 From: MarvinDo Date: Fri, 17 Nov 2023 13:40:41 +0100 Subject: [PATCH] renamed class M to 4M & minor bugfixes --- src/common/functions.py | 2 +- src/common/models.py | 10 ++-- src/frontend_celery/config.py | 3 ++ .../webapp/static/css/colors.css | 8 +-- .../webapp/static/css/styles.css | 2 +- .../webapp/static/js/startup.js | 2 +- src/frontend_celery/webapp/tasks.py | 1 - .../webapp/templates/doc/changelog.html | 50 ++++++++++++++++++ .../webapp/templates/index.html | 51 ++----------------- .../webapp/templates/macros.html | 4 +- .../webapp/variant/variant_routes.py | 1 + 11 files changed, 73 insertions(+), 61 deletions(-) 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: +
    +
  • Fixed a bug where the user was unable to insert classifications by the new ClinGen criteria
  • +
+
+
v 1.4 (27.10.2023)
+
+ General changes: +
    +
  • Update landing page
  • +
  • Moved previous changelog announcements to a new page
  • +
  • The admin dashboard now allows reannotation of a user defined set of databases
  • +
  • The admin dashboard now shows an overview of all annotations and annotation errors / warnings
  • +
  • Added a contact form where unregistered people can ask a question about a variant
  • +
  • Added suffix to criteria names if the selected strength is not the default strength
  • +
  • Variants can now be hidden
  • +
  • The variant list can now be sorted by chromosomal position and insertion date
  • +
  • The page size in the variant list can now be adjusted
  • +
  • Consensus classifications are now preselected from the most recent consensus classification for each scheme
  • +
  • Added four new ClinGen ENIGMA schemes for specific genes: BRCA1 (v.1.0.0), BRCA2(v.1.0.0), TP53 (v.1.4.0), PALB2 (v.1.0.0)
  • +
  • Changed SpliceAI annotations to masked ones
  • +
  • Added variant import from HerediCare
  • +
  • Added HerediCare number of families and heredicare number of cases annotations
  • +
  • Improved criteria popover
  • +
  • Added variant import history page
  • +
  • Enabled HerediCare annotations in admin dashboard
  • +
  • Added downloads page
  • +
  • Added variant check page
  • +
+ Bugfixes: +
    +
  • Variants are now not selected by default on the search variants page
  • +
  • Abbreviations for criteria are now written with upper case letters
  • +
  • Disabled criteria were not shown correctly
  • +
  • Popovers now stay open when clicked and close when the user does not click inside the popover
  • +
  • Fixed a bug where the ClinVar annotation was erroneous which happened when there were missing submissions
  • +
  • Fixed a bug where the consequence annotation was erroneous which happened when the variant was large and spanned multiple exons / introns
  • +
  • Fixed a bug where the user was unable to download variants which are not annotated
  • +
  • Fixed a bug where the user could not search for class 3+
  • +
  • The date is now inserted correctly when classifying variants. Preexisting classifications did not change (this is fixed starting from 24.10.23).
  • +
+ Known issues: +
    +
  • COSMIC links do not work sometimes
  • +
+
+
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:
      @@ -125,54 +127,7 @@

      Changelog

      Known issues:
      • HerediCare Center specific classifications are not available
      • -
      -
    -
    v 1.4.1 (02.11.2023)
    -
    - Bugfixes: -
      -
    • Fixed a bug where the user was unable to insert classifications by the new ClinGen criteria
    • -
    -
    -
    v 1.4 (27.10.2023)
    -
    - General changes: -
      -
    • Update landing page
    • -
    • Moved previous changelog announcements to a new page
    • -
    • The admin dashboard now allows reannotation of a user defined set of databases
    • -
    • The admin dashboard now shows an overview of all annotations and annotation errors / warnings
    • -
    • Added a contact form where unregistered people can ask a question about a variant
    • -
    • Added suffix to criteria names if the selected strength is not the default strength
    • -
    • Variants can now be hidden
    • -
    • The variant list can now be sorted by chromosomal position and insertion date
    • -
    • The page size in the variant list can now be adjusted
    • -
    • Consensus classifications are now preselected from the most recent consensus classification for each scheme
    • -
    • Added four new ClinGen ENIGMA schemes for specific genes: BRCA1 (v.1.0.0), BRCA2(v.1.0.0), TP53 (v.1.4.0), PALB2 (v.1.0.0)
    • -
    • Changed SpliceAI annotations to masked ones
    • -
    • Added variant import from HerediCare
    • -
    • Added HerediCare number of families and heredicare number of cases annotations
    • -
    • Improved criteria popover
    • -
    • Added variant import history page
    • -
    • Enabled HerediCare annotations in admin dashboard
    • -
    • Added downloads page
    • -
    • Added variant check page
    • -
    - Bugfixes: -
      -
    • Variants are now not selected by default on the search variants page
    • -
    • Abbreviations for criteria are now written with upper case letters
    • -
    • Disabled criteria were not shown correctly
    • -
    • Popovers now stay open when clicked and close when the user does not click inside the popover
    • -
    • Fixed a bug where the ClinVar annotation was erroneous which happened when there were missing submissions
    • -
    • Fixed a bug where the consequence annotation was erroneous which happened when the variant was large and spanned multiple exons / introns
    • -
    • Fixed a bug where the user was unable to download variants which are not annotated
    • -
    • Fixed a bug where the user could not search for class 3+
    • -
    • The date is now inserted correctly when classifying variants. Preexisting classifications did not change (this is fixed starting from 24.10.23).
    • -
    - Known issues: -
      -
    • COSMIC links do not work sometimes
    • +
    • HerediCare priors, log likelihood, segregation & cooccurance are not available
    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())}