broadinstitute / seqr

web-based analysis tool for rare disease genomics
GNU Affero General Public License v3.0
176 stars 89 forks source link

Update display colors for in silico scores #3505

Closed lynnpais closed 1 year ago

lynnpais commented 1 year ago

Is your feature request related to a problem? Please describe. The analyst team would like to request an update to the colors used for the in silico scores based on new guidelines from ClinGen. These changes should apply to all in silico tools (CADD, MPC, MutPred2, PrimateAi, REVEL, SIFT, VEST4) used in seqr and represented in the table below.

Describe the solution you'd like

  1. Use new colors and ranges as described below:
Screenshot 2023-07-21 at 11 59 00 AM

Benign: Very strong + Strong = dark green Benign: Moderate + Supporting = light green VUS: In between ranges benign supporting and pathogenic supporting = Grey Pathogenic Supporting = orange Pathogenic Moderate = red Pathogenic Strong + very strong = dark red

The cutoff ranges can also be found here in Table 2 - https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9748256/

  1. Reorder position of in silico scores: Revel, Vest4, Mutpred2, CADD, MPC, SpliceAI. Others can go in the show more section.

Describe alternatives you've considered NA

Additional context Discussed during analyst team meeting.

ShifaSZ commented 1 year ago

We currently have two cut-off values (warningThreshold and dangerThreshold) and three colors(green for benign, yellow for warning, and red for danger). Does it mean we need four thresholds and five colors for this ticket?

hanars commented 1 year ago

@lynnpais do you want us to keep the current 3-color system and combine the green and reds in the above chart, or do you want us to switch to a 5-color system?

lynnpais commented 1 year ago

Move all to the a new 6-color system using the ranges in the image above - Benign: Very strong + Strong = dark green Benign: Moderate + Supporting = light green VUS: In between ranges benign supporting and pathogenic supporting = Grey Pathogenic Supporting = orange Pathogenic Moderate = red Pathogenic Strong + very strong = dark red

hanars commented 1 year ago

coding implementation notes - we should switch warningThreshold and dangerThreshold to an array threshholds, rather than try to maintain 5 different variables

@lynnpais is there any flexibility for the colors? It is possible to implement with the colors you propsed, but we could use the built-in color schemes from our UI library if we tweaked it a little, which creates a more consistent UI across seqr than when we need to add custom colors to everything. The colors would be as follows: Benign: green Benign: light green VUS: Grey Pathogenic Supporting: yellow Pathogenic Moderate: orange Pathogenic Strong: red

lynnpais commented 1 year ago

Good to be consistent with existing UI colors. Okay to go with colors for - Benign: green Benign: light green VUS: Grey Pathogenic Supporting: yellow (I take it is the same yellow we are using for the in silicos)

For the last two, Pathogenic Moderate: red (existing red) Pathogenic Strong: dark red (one new color. Only a very few variants will actually have this color).

The reason is that most variants currently showing red will be orange as they fall in the moderate range per the new ClinGen guidelines. None of the variants will ever have a red CADD score. All this can be confusing to an analyst, so propose to have one new dark red color to differentiate.

It would also be great to have these ranges and corresponding colors shown in the hover over like we currently do.

hanars commented 1 year ago

Makes sense. Would this purple be acceptable for the very strong pathogenic? If not, we can make dark red work

Screenshot 2023-08-08 at 10 18 55 AM

lynnpais commented 1 year ago

Favor a darker red over purple.

ShifaSZ commented 1 year ago

Can the polyphen in seqr use the above thresholds for the PolyPhen2?

hanars commented 1 year ago

Its the same thing, the ui code has friendly names for things but if you look at the server side mapping code you can see what the data source for everything is: https://github.com/broadinstitute/seqr/blob/master/seqr/utils/search/elasticsearch/constants.py#L345

ShifaSZ commented 1 year ago

Suppose a prediction doesn't have a benign threshold but has a pathogenic supporting point. What color should we display for the value smaller than the pathogenic supporting threshold? Grey, light green, or green?

hanars commented 1 year ago

colors/thresholds should map to the image included in the description, which is pretty unambiguous. What is a specific example of a score hwere there is ambiguity about what to show?

ShifaSZ commented 1 year ago

For example, if a score of 1.1 for MPC, what color should it display?

hanars commented 1 year ago

light green

ShifaSZ commented 1 year ago

Why not grey?

hanars commented 1 year ago

@lynnpais your call

lynnpais commented 1 year ago

Let's go with grey [ClinGen paper states they were not able to identify thresholds for benignity (BP4) for MPC]

hanars commented 1 year ago

scores have been updated