function i2reg(i){ x="other"; if (i==1){x="3utr";} if (i==2){x="5utr";} if (i==3){x="cds";} return x; } BEGIN{FS=OFS="\t"; f[1]=f3;f[2]=f5;f[3]=fc; for (i=1;i<4;i++){ while (getline0) { m=-1;m2=-1; for (i=1;i<4;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>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; 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=4; } # split(k,a,SUBSEP); oc[a[6],mi]++; print a[1],a[2],a[3],cl[k],cls[k],a[4],a[5],a[6],"mi"mi,"m"m,"mi2"mi2,"m2"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]==4){ 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; }{ }