I guess this arises because of the default cufflinks option --total-hits-norm
in which it normalizes the FPKMs with total reads including the ones that are not mapped to a known gene or a predicted gene from the assembly. In the genes.fpkm_tracking
file the FPKM values are reported for known/predicted genes. It is certainly possible that the number of genes are different in a certain sample compared to the other and perhaps therefore the sums are different. If you are not interested in finding new transcripts then you can run cufflinks with a reference GTF/GFF file provided using --GFF
along with using --compatible-hits-norm
.
You can also try this:
Assemble with cufflinks, merge the GTFs with cuffmerge and run cuffquant with the merged GTF.
You can subsequently use cuffnorm to normalize the expression values. It has been observed by me and others that the FPKM value reported by cuffdiff and cufflinks are different which is most likely because of differences in default parameters (see this). The inner operations of cufflinks are not very clearly documented; so I cannot conclusively answer your question.