function i2reg(i){ x="other"; if (i==-1){x="NA";} if (i==1){x="3utr";} if (i==2){x="5utr";} if (i==3){x="cds";} if (i==4){x="intron";} if (i==5){x="ncRNA";} return x; } BEGIN{FS=OFS="\t"; f[1]=f3;f[2]=f5;f[3]=fc;f[4]=fi;f[5]=fn; for (i=1;i<6;i++){ while (getline0) { m=-1;m2=-1;mi2=-1;mi=-1; for (i=1;i<6;i++){#check categ 3utr,5utr,cds # print k,i"|"ncr[k,i]"|b" x=0+ncr[k,i]; #get categ with max #clusters for location if (x>0){ if (x>m){ m2=m;mi2=mi;m=x;mi=i;# print "A m"m" m2"m2; } else{ if (x>m2){m2=x;mi2=i;# print "B m2"m2; } } } } oc1[a[6]]=mi; #biotype oc1c[a[6]]=m; oc2[a[6]]=mi2; oc2c[a[6]]=m2; if (m==m2){ #print "other "m" "mi" "m2" "mi2" "a[6] >>"/dev/stderr"; oco1[mi,a[6]]++; oco2[mi2,a[6]]++; mi=6; } # split(k,a,SUBSEP); oc[a[6],mi]++; split(cl[k],b,"_"); if (bc[k]==b[1]){ print a[1],a[2],a[3],cl[k],cls[k],a[4],a[5],a[6],i2reg(mi),m,i2reg(mi2),m2 } }else{ print a[1],a[2],a[3],cl[k],cls[k],a[4],a[5],a[6] >>"/dev/stderr" } } for (i in oc){ split (i,a,SUBSEP) if (a[2]==6){ print oc[i]" "i2reg(a[2])" "a[1]" 1st max: "i2reg(1)" "oco1[1,a[1]]" "i2reg(2)" "oco1[2,a[1]]" "i2reg(3)" "0+oco1[3,a[1]]" 2nd max: "i2reg(1)" "0+oco2[1,a[1]]" "i2reg(2)" "0+oco2[2,a[1]]" "i2reg(3)" "0+oco2[3,a[1]] >>"/dev/stderr"; }else{ print oc[i]" "i2reg(a[2])" "a[1] >>"/dev/stderr"; } } exit 0; }{ }