CHANGES IN VERSION 2.4.0
------------------------

NEW FEATURES
      
    o New function spliceVariants for detecting alternative exon usage
      from exon-level count data.

    o A choice of rejection regions is now implemented for exactTest,
      and the default is changed from one based on small probabilities
      to one based on doubling the smaller of the tail probabilities.
      This gives better results than the original conditional test when
      the dispersion is large (especially > 1).  A Beta distribution
      approximation to the tail probability is also implemented when
      the counts are large, making exactTest() much faster and
      less memory hungry.

    o estimateTagwiseDisp now includes an abundance trend on the
      dispersions by default.
      
    o exactTest now uses tagwise.dispersion by default if found in the
      object.
    
    o estimateCRDisp is removed. It is now replaced by
      estimateGLMCommonDisp, estimateGLMTrendedDisp and
      estimateGLMTagwiseDisp.
    
    o Changes to glmFit so that it automatically detects dispersion
      estimates if in data object. It uses tagwise if available, then
      trended, then common.

    o Add getPriorN() to calculate the weight given to the common
      parameter likelihood in order to smooth (or stabilize) the
      dispersion estimates. Used as default for estimateTagwiseDisp and
      estimateGLMTagwiseDisp.
    
    o New function cutWithMinN used in binning methods.
    
    o glmFit now S3 generic function, and glmFit has new method
      argument specifying fitting algorithm.
    
    o DGEGLM objects now subsettable.
    
    o plotMDS.dge is retired, instead a DGEList method is now defined for 
      plotMDS in the limma package.  One advantage is that the plot can
      be repeated with different graphical parameters without recomputing
      the distances.  The MDS method is also now much faster.
    
    o Add as.data.frame method for TopTags objects.
    
    o New function cpm to calculate counts per million conveniently. 
    
    o Adding args to dispCoxReidInterpolateTagwise to give more access to 
      tuning parameters.
    
    o estimateGLMTagwiseDisp now uses trended.dispersion by default if 
      trended.dispersion is found.
      
    o Change to glmLRT to ensure character coefficient argument will work.
    
    o Change to maPlot so that any really extreme logFCs are brought back 
      to a more reasonable scale.
      
    o estimateGLMCommonDisp now returns NA when there are no residual
      df rather than returning dispersion of zero.

    o The trend computation of the local common likelihood in
      dispCoxReidInterpolateTagwise is now based on moving averages
      rather than lowess.

    o Changes to binGLMDispersion to allow trended dispersion for data
      sets with small numbers of genes, but with extra warnings.

BUG FIXES

    o dispDeviance and dispPearson now give graceful estimates and
      messages when the dispersion is outside the specified interval.

    o Bug fix to mglmOneWay, which was confusing parametrizations when
      the design matrix included negative values.

    o mglmOneWay (and hence glmFit) no longer produces NA coefficients
      when some of the fitted values were exactly zero.

    o Changes to offset behaviour in estimateGLMCommonDisp,
      estimateGLMTrendedDisp and estimateGLMTagwiseDisp to fix bug.
      Changes to several other functions on the way to fixing bugs
      when computing dispersions in data sets with genes that have all
      zero counts.

    o Bug fix to mglmSimple with matrix offset.
    
    o Bug fix to adjustedProfLik when there are fitted values exactly
      at zero for one or more groups.