function cor(ii){ sxy=0;sx=0;s2x=0;sy=0;s2y=0; for (ii=1;ii<=n;ii++){x=xd[ii];y=yd[ii]; sxy+=x*y sx+=x;s2x+=x*x; sy+=y;s2y+=y*y;} pearsonCorr= (n*sxy-sx*sy)/(sqrt(n*s2x-sx*sx)*sqrt(n*s2y-sy*sy)) return pearsonCorr; } BEGIN{ getline;h=$0; #print "gene "h print "maxAnticorr nAnticorr AvgAnticorr maxAntiIso gene "h" "h }{ # print $1" A" id=$3;all[id]=$0;ok[id]=1;nr++; gid=$2;Aqval[id]=$7; i=++ngid[gid];tgrp[gid,i]=id; if ($1!="NA"){gn[gid]=$1;gnok[gid]=1;} }END{ # print "ref transcripts "nr >>"/dev/stderr" # printf("%s iso2geneName iso2geneID iso2transcriptID iso2logFC iso2logCPM iso2PValue iso2FDR",h); # printf("\n"); n=4; for (gid in ngid){ ng=ngid[gid]; if (ng>1){ gok=0;minq=1; for (i=1;i<=ng;i++){ id=tgrp[gid,i]; if (1.0*Aqval[id]<=0.05){ j=++gok;Lgok=i; # print "OK1"gid" "Aqval[id]" "id" "Afc[id]" "Apval[id]; } #one sig DE iso if (1.0*Aqval[id]<=minq){minq=1.0*Aqval[id];Lgok=i;} } if (gok>1){nc=0; for (i=1;i<=ng;i++){ id=tgrp[gid,i]; if (1.0*Aqval[id]<=0.05){ j=++nc;cortest[j]=all[id]; if (gnok[gid]==1) {x=gn[gid];}else{x="NA";} if (verb) printf("%s %s\n",x,all[id]); } } if (verb) print "IsoGroupSize "nc;nanticorr=0;maxantic=1;santic=0; for (i=1;i0){ if (gnok[gid]==1) {x=gn[gid];}else{x="NA";} print maxantic" "nanticorr" "santic/nanticorr" "antic_b" "x" "cortest[antic_i]" "cortest[antic_j]; totAS++; } } } } }