#!/usr/bin/gawk -f BEGIN { FS = ","; OFS = "\t"; arrayIndex = 0; temparrayIndex = 0; interval = 0.005; } NF==10 { Got = $(NF-1); Want = $(NF); Mre = (Got-Want)/Want; Key = $2 FS $4 FS $6; Mre = (Mre < 0 ? -1*Mre : Mre)*100; arrayIndex++; MreArray[arrayIndex,1] = Mre; MreArray[arrayIndex,2] = Key; } END { #to remove the extra increment at the end arrayIndex--; #insertion sort based on the score for (i = 1; i <= arrayIndex; i++) { tempMre = MreArray[i,1]; tempKey = MreArray[i,2]; j = i; while ((j > 1) && (MreArray[j-1,1] > tempMre)) { MreArray[j,1] = MreArray[j-1,1]; MreArray[j,2] = MreArray[j-1,2]; j = j - 1; } MreArray[j,1] = tempMre; MreArray[j,2] = tempKey; } for (i = 1; i<=arrayIndex; i++) print MreArray[i,1], MreArray[i,2]; # asort(MreArray); # for (i = 1; i<=arrayIndex; i++) # print MreArray[i]; #this will create bins of MREs # asort(MreArray); # maxRange = interval + MreArray[1]; # frequencyarrayIndex = 0; # i = 1; # while (i <= arrayIndex && maxRange <= MreArray[arrayIndex] + interval) # { # while (i <= arrayIndex && MreArray[i] < maxRange) # { # frequencyarrayIndex++; # i++; # } # print maxRange, frequencyarrayIndex; # maxRange = maxRange + interval; # frequencyarrayIndex = 0; # } #this will create bins of REs # asort(ReArray); # maxRange = interval + ReArray[1]; # frequencyarrayIndex = 0; # i = 1; # while (i <= arrayIndex && maxRange <= ReArray[arrayIndex] + interval) # { # while (i <= arrayIndex && ReArray[i] < maxRange) # { # frequencyarrayIndex++; # i++; # } # print maxRange, frequencyarrayIndex; # maxRange = maxRange + interval; # frequencyarrayIndex = 0; # } }