BEGIN{FS=OFS="\t"; getline; getline; ns=NF; for (i=1;i<=ns;i++){ sampID[i]=$i; } }{ for (i=7;i<=ns;i++){ x=$i; nr[i]+=x;fl[NR]=$6; r[NR,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("%s",sampID[1]) for (j=2;j<=ns;j++){ printf("\t%s",sampID[j]) } for (i=7;i<=ns;i++){#headers printf("\t%s_rpm",sampID[i]) } printf("\n"); for (p=3;p<=nl;p++){ kb=fl[p]*0.001;kb=1; printf("%s",l[p]) for (i=7;i<=ns;i++){ rpkm[i]=(r[p,i]/rpm[i])/kb; printf("\t%s",rpkm[i]) } printf("\n"); } }