diskin-lab-chop / AutoGVP

19 stars 3 forks source link

Bug: InterVar classified variants downgrade to LP when autoPVS1 gives very strong #107

Closed jungkim2 closed 1 year ago

jungkim2 commented 1 year ago

Provide the command used or report the bug here

For variants that doesn't have ClinVar and taking InterVar call, InterVar is calling Pathogenic, but gets downgraded to Likely_pathogenic in final_call.

Here are some example coordinates

16-3247248-T-G 16-3248947-G-A 16-3249733-C-A 16-3254296-C-A 16-3254338-C-A

All these variants have InterVar InterVar: Pathogenic PVS1=1 PS=[0, 0, 0, 0, 0] PM=[0, 1, 0, 0, 0, 0, 0] PP=[0, 0, 1, 0, 0, 0] BA1=0 BS=[0, 0, 0, 0, 0] BP=[0, 0, 0, 0, 0, 0, 0, 0]

autoPVS1 gives SS1 and NF1 therefore PVS1 should remain the same. Therefore,

PVS1=1, PM=1, PP=1 which will give Pathogenic

What version are you using?

Add error message here (if applicable)

Add Session info

Run sessionInfo() and post the output below

jungkim2 commented 1 year ago

issue107.gz

Four files are gzipped that are related to this bugs

naqvia commented 1 year ago

So I think we need to re-visit the logic. It is getting downgraded to LP due to this statement:

ifelse((evidencePVS1 == 1 & evidencePM == 1) |
        (evidencePS == 1 & evidencePM >= 1) |
        (evidencePS == 1 & evidencePP >= 2) |
        (evidencePM >= 3) |
        (evidencePM == 2 & evidencePP >= 2) |
        (evidencePM == 1 & evidencePP >= 4), "Likely_pathogenic",

This logic is documented in the readme under the Likely pathogenic heading. It is not getting Pathogenic call bc PP is NOT >= 2 and there is no PS. Here are the exact statements that check for Pathogenicity:

  final_call = ifelse((evidencePVS1 == 1 &
      ((evidencePS >= 1) |
        (evidencePM >= 2) |
        (evidencePM >= 1 & evidencePP == 2) |
        (evidencePP >= 2))), "Pathogenic",
    ifelse((evidencePVS1 == 1 & evidencePS >= 2), "Pathogenic",
      ifelse((evidencePS == 1 &
        (evidencePM >= 3 |
          (evidencePM == 2 & evidencePP >= 1) |
          (evidencePM == 1 & evidencePP >= 4))), "Pathogenic",

can you pinpoint what should be changed? We would need to also change readme, bc this is from there.

jungkim2 commented 1 year ago

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4544753/ see table 5

final_call = ifelse((evidencePVS1 == 1 & ((evidencePS >= 1) | (evidencePM >= 2) | (evidencePM >= 1 & evidencePP == 1) | (evidencePP >= 2))), "Pathogenic", ifelse((evidencePVS1 == 1 & evidencePS >= 2), "Pathogenic", ifelse((evidencePS == 1 & (evidencePM >= 3 | (evidencePM == 2 & evidencePP >= 1) | (evidencePM == 1 & evidencePP >= 4))), "Pathogenic",