From 594f8a8b9401021616e434cbac68d6fea2a696fa Mon Sep 17 00:00:00 2001 From: Manuel Holtgrewe Date: Fri, 22 Dec 2023 15:33:37 +0100 Subject: [PATCH 1/2] feat: deprecation warning for PP3_strong + PM1_strong (#324) --- .../components/SeqvarDetails/ClinsigCard.vue | 19 ++++++++++++++++++- frontend/src/lib/acmgSeqVar.ts | 2 ++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/SeqvarDetails/ClinsigCard.vue b/frontend/src/components/SeqvarDetails/ClinsigCard.vue index cb2f53d1..519f3ed6 100644 --- a/frontend/src/components/SeqvarDetails/ClinsigCard.vue +++ b/frontend/src/components/SeqvarDetails/ClinsigCard.vue @@ -17,6 +17,7 @@ import { ACMG_EVIDENCE_LEVELS_PATHOGENIC, ALL_ACMG_CRITERIA, AcmgCriteria, + AcmgEvidenceLevel, Presence } from '@/lib/acmgSeqVar' import { type Seqvar } from '@/lib/genomicVars' @@ -100,7 +101,9 @@ enum Conflict { /** PVS1 vs. PM4. */ Pvs1Pm4 = 'pvs1_pm4', /** PVS1 vs. PP3. */ - Pvs1Pp3 = 'pvs1_pp3' + Pvs1Pp3 = 'pvs1_pp3', + /** PP3_strong vs. PM1_strong. */ + Pp3StrongPm1Strong = 'pp3_strong_pm1_strong' } /** Currently detected conflicts. */ @@ -124,6 +127,17 @@ const currentConflicts = computed(() => { ) { result.push(Conflict.Pvs1Pp3) } + // Check for combination of PP3_strong and PM1_strong which is discouraged by Pejaver et al. (2022). + if ( + acmgRatingStore.acmgRating.getCriteriaState(AcmgCriteria.PP3).presence === Presence.Present && + acmgRatingStore.acmgRating.getCriteriaState(AcmgCriteria.PP3).evidenceLevel === + AcmgEvidenceLevel.Strong && + acmgRatingStore.acmgRating.getCriteriaState(AcmgCriteria.PM1).presence === Presence.Present && + acmgRatingStore.acmgRating.getCriteriaState(AcmgCriteria.PM1).evidenceLevel === + AcmgEvidenceLevel.Strong + ) { + result.push(Conflict.Pp3StrongPm1Strong) + } return result }) @@ -287,6 +301,9 @@ onMounted(async () => {
  • PVS1 and PP3 cannot be applied at the same time.
  • +
  • + PP3_strong and PM1_strong should not be applied at the same time. +
  • diff --git a/frontend/src/lib/acmgSeqVar.ts b/frontend/src/lib/acmgSeqVar.ts index ddda8c35..d4708457 100644 --- a/frontend/src/lib/acmgSeqVar.ts +++ b/frontend/src/lib/acmgSeqVar.ts @@ -6,6 +6,7 @@ export enum AcmgEvidenceLevel { PathogenicSupporting = 'Pathogenic Supporting', BenignStandalone = 'Benign Standalone', BenignStrong = 'Benign Strong', + BenignModerate = 'Benign Moderate', BenignSupporting = 'Benign Supporting', NotSet = 'Not Set' } @@ -21,6 +22,7 @@ export const ACMG_EVIDENCE_LEVELS_PATHOGENIC = [ /** Array of benign evidence levels. */ export const ACMG_EVIDENCE_LEVELS_BENIGN = [ AcmgEvidenceLevel.BenignStandalone, + AcmgEvidenceLevel.BenignModerate, AcmgEvidenceLevel.BenignStrong, AcmgEvidenceLevel.BenignSupporting ] From db0acbdd8a14270a391e467b9da3c27b689c48a6 Mon Sep 17 00:00:00 2001 From: Manuel Holtgrewe Date: Fri, 22 Dec 2023 15:38:42 +0100 Subject: [PATCH 2/2] wip --- frontend/src/components/CaseInformationCard.vue | 2 +- frontend/src/components/SeqvarDetails/ClinsigCard.vue | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/CaseInformationCard.vue b/frontend/src/components/CaseInformationCard.vue index ba3b98c6..4b37e026 100644 --- a/frontend/src/components/CaseInformationCard.vue +++ b/frontend/src/components/CaseInformationCard.vue @@ -146,7 +146,7 @@ watch( disease genes ranked by their CADA score. Also, you will see the rank in the details section of each gene.

    -

    +

    As you are not logged in, we will store the case information in the local browser storage.

    diff --git a/frontend/src/components/SeqvarDetails/ClinsigCard.vue b/frontend/src/components/SeqvarDetails/ClinsigCard.vue index 519f3ed6..0eb1db90 100644 --- a/frontend/src/components/SeqvarDetails/ClinsigCard.vue +++ b/frontend/src/components/SeqvarDetails/ClinsigCard.vue @@ -131,10 +131,10 @@ const currentConflicts = computed(() => { if ( acmgRatingStore.acmgRating.getCriteriaState(AcmgCriteria.PP3).presence === Presence.Present && acmgRatingStore.acmgRating.getCriteriaState(AcmgCriteria.PP3).evidenceLevel === - AcmgEvidenceLevel.Strong && + AcmgEvidenceLevel.PathogenicStrong && acmgRatingStore.acmgRating.getCriteriaState(AcmgCriteria.PM1).presence === Presence.Present && acmgRatingStore.acmgRating.getCriteriaState(AcmgCriteria.PM1).evidenceLevel === - AcmgEvidenceLevel.Strong + AcmgEvidenceLevel.PathogenicStrong ) { result.push(Conflict.Pp3StrongPm1Strong) }