NGS variant prioritization tools/script
0
0
Entering edit mode
6.3 years ago
bioguy24 ▴ 230

I am looking for a tool or script to perform variant prioritization on annotated data from annovar. Currently, I have a script that will classify based on information in the annotation but would like to add a priority score or call to the data as well. I know that is much detail but I guess I am looking for a place to start as I have not found anything. Thank you :).

NGS • 1.4k views
ADD COMMENT
2
Entering edit mode

Priority score or call based on what criteria?

ADD REPLY
0
Entering edit mode

Using the data within the annovar annotation, for example population frequency and clinvar are used in the classifier but maybe I need to expand on that and use inheritance or phenotype? Maybe another column with the score. Just an idea not even sure if I am on the right track though. I wrote an awk script (probably with errors and will post in a few as an example. Thank you :).

ADD REPLY
0
Entering edit mode

The below awk is an example of what I was thinking but not really sure. Thank you :).

   awk '
       BEGIN {    # Set input and output field separators:
       FS = OFS = "\t"
# Create list of needed field headers:
    nfh["FuncrefGene"]
    nfh["GeneDetailrefGene"]
    nfh["ExonicFuncrefGene"]
    nfh["PopFreqMax"]
    nfh["CLINSIG"]
    nfh["Hgmd"]
    nfh["Zygosity"]
    nfh["Rank"]
}
NR == 1 {
# Create array to tranlate needed field headers to field numbers
for(i = 1; i <= NF; i++)
    if($i in nfh)
        f[$i] = i
# Verify that all of the needed field headers were found
for(i in nfh)
    if(!(i in f)) {
        missing++
        printf("Needed field missing: %s\n", i)
    }
# If one or more needed fields were not found, give up
if(missing)
    exit 1
}
    # Condition 1
NR > 1 {
if(index$f["FuncrefGene"] == "."  || $f["FuncrefGene"] != "exonic" && ($9 ~ /:NM_/ && match($9,/c..+||-/)) {  # search for :NM_ and c..+||-
# Get the substring after +/-
VAL=substr($9,RSTART+1,RLENGTH-2);
                    for(i=1;i<=VAL;i++){  # start loop
        $f["GeneDetailrefGene"] <= 2)  # if GeneDetailRefgene <= 2
            var1=2                                # var1 gets 2 points
    }
    # Condition 1a
else {
    if($f["FuncrefGene"] == "."  || $f["FuncrefGene"] != "exonic" && ($9 ~ /:NM_/ && match($9,/c..+||-/)) {  # search for :NM_ and c..+||-
# Get the substring after +/-
VAL=substr($9,RSTART+1,RLENGTH-2);
                    for(i=1;i<=VAL;i++){  # start loop
        $f["GeneDetailrefGene"] > 2)  # if GeneDetailRefgene > 2
            var1= 0                            # var1 gets 0 points
         }
    # Condition 1b
else {
    if($f["FuncrefGene"] == "exonic")  # if FuncrefGene is exonic
            var1=0                                # var1 gets 0 points 
                    next                   # skip and process next condition
         }
    else {    #Condition 6
    if($f["Zygosity"] == "hom")  # if Zygosity is hom
            var2=2                       # var6 gets 2 points
         }
else {    #Condition 6a
    if($f["Zygosity"] ~ /^het$/ || $f["Zygosity"] ~ /^.$/)  # if Zygosity has het or . (dot) in it
            var2=1                                                            # var6 gets 1 point
         }
 { # Update Rank
     printf($f["Rank"] = var1+var2)  # add all variables and store value in Rank
}1'
ADD REPLY
0
Entering edit mode

Since you are designing this score go for it if it suits your requirements.

ADD REPLY
0
Entering edit mode

Are there additional tools/resources that you recommend? Thank you :).

ADD REPLY
0
Entering edit mode

As above, if this works, then use it - no need to share here (?).

Also, do not try to re-invent the wheel when many of the major players in the clinical genetics scene (biased toward USA) have already voiced their opinions on how to prioritize variants: Standards and guidelines for the interpretation of sequence variants: a joint consensus recommendation of the American College of Medical Genetics and Genomics and the Association for Molecular Pathology

ADD REPLY

Login before adding your answer.

Traffic: 1867 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6