• Source
    1. #!/bin/bash
    2.  
    3. if [ -z "$1" ]
    4. then
    5. echo "please pass an argument"
    6. exit 1
    7. fi
    8.  
    9. echo "Let's Roll baby"
    10.  
    11. FILENAME="$1"
    12. OutputFileName="${FILENAME%.*f}.final"
    13.  
    14. count=0
    15. currentsnploc=0
    16.  
    17. chr=""
    18. snppos=0
    19. A=""
    20. G=""
    21. C=""
    22. T=""
    23.  
    24. echo "variables initialized!"
    25.  
    26. while read line
    27. do
    28. ((count++))
    29. # echo "operating on row $count"
    30. # if [ "$count" -ge 20 ]
    31. # then
    32. # break
    33. # fi
    34. # if [ "$currentsnploc" -eq 0 ] #This checks if we are dealing with the first record
    35. # then
    36. currentsnploc=$(echo "$line" | awk '{print $2}')
    37. echo "Current SNP Location :$currentsnploc"
    38.  
    39. # fi
    40.  
    41. if [ "$currentsnploc" -eq "$snppos" ]
    42. then
    43. echo "the last snp loc is the same as the new one! ($snppos)"
    44. if [ "$A" == "A" ] || [ $(echo "$line" | awk '{print $3}') == "A" ]
    45. then
    46. A="A"
    47. fi
    48. if [ "$G" == "G" ] || [ $(echo "$line" | awk '{print $4}') == "G" ]
    49. then
    50. G="G"
    51. fi
    52. if [ "$C" == "C" ] || [ $(echo "$line" | awk '{print $5}') == "C" ]
    53. then
    54. C="C"
    55. fi
    56. if [ "$T" == "T" ] || [ $(echo "$line" | awk '{print $6}') == "T" ]
    57. then
    58. T="T"
    59. fi
    60. else
    61. echo "prev snp loc is different, writing last snp to output."
    62. echo -e "${chr}\t${snppos}\t${A}\t${G}\t${C}\t${T}" >> $OutputFileName
    63. chr=$(echo "$line" | awk '{print $1}')
    64. snppos=$(echo "$line" | awk '{print $2}')
    65. A=$(echo "$line" | awk '{print $3}')
    66. G=$(echo "$line" | awk '{print $4}')
    67. C=$(echo "$line" | awk '{print $5}')
    68. T=$(echo "$line" | awk '{print $6}')
    69. currentsnploc=$(echo "$line" | awk '{print $2}')
    70. fi
    71. done < $1