This is a test version of Biostars. For the public version, visit https://www.biostars.org.
NGS variant prioritization tools/script

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

Priority score or call based on what criteria?

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 :).

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'

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

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

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

0 answers

No answers yet.

Log in to answer this question.