BEGIN{FS=OFS="\t"; getline; getline; ns=NF; for (i=1;i<=ns;i++){ sampID[i]=$i; } }{ g=$1;fl[g]+=$6; for (i=7;i<=ns;i++){ x=$i; nr[i]+=x; r[g,i]+=x;#l[NR]=$0; } }END{ nl=NR; print "Sample","Total_mapped_reads">>"/dev/stderr" for (i=7;i<=ns;i++){ print sampID[i],nr[i]>>"/dev/stderr" rpm[i]=nr[i]/1000000.0; } printf("Geneid"); for (j=7;j<=ns;j++){ # printf("\t%s",sampID[j]) } for (i=7;i<=ns;i++){#headers printf("\t%s_rpm",sampID[i]) } printf("\n"); for (g in fl){ kb=fl[g]*0.001;kb=1; printf("%s",g); for (i=7;i<=ns;i++){ rpkm[i]=(r[g,i]/rpm[i])/kb; printf("\t%s",rpkm[i]) } printf("\n"); } }