
Changes in 5.1.3 (graphical improvements)
================

New features:
-------------
1 - plotArrow for PLS, sPLS, rCC,  rGCCA, sGCCA, sGCCDA is an improved version from our old s.match function (which is still available but will be soon deprecated)
2 - rcc has a new argument method = c("ridge", "shrinkage") with shrinkage to estimate the shrinkage coefficients directly
3 - plotIndiv directly implements 3d plots (style='3d'), including ellipses
4 - plotVar  directly implements 3d plots (style='3d')
5 - cim and network propose a new argument called save = c('jpeg','tiff','png','pdf') to save plots directly
6 - biplot (from stats) now possible for sPCA

Enhancements:
-------------
1 - network: a single function for all objects.
2 - pheatmap.multilevel has been deprecated with the new enhancements of CIM
3 - plot3dIndiv and plto3dVar have been deprecated  (see new features in plotIndiv and plotVar)
4 - plotContrib also now available for sgccda object
5 - imageMap has been deprecated (now included in cim directly)
6 - pca also outputs 'loadings' and 'variates' to remain in the mixOmics spirit

Bug fixes:
----------
1 - plotContrib now fixed (showed wrong contribution colors)
2 - cim  has been fixed to show the ordered variable names after users reports (thanks!)
3 - blank page in network when saving as a pdf solved



Changes in 5.1.2 (patches)
================

Enhancements:
-------------
1 - plotIndiv: the argument col is back! see our help file. 

2 - plotVar has been dramatically improved with more efficient coding (not a S3method anymore) and availability of different plotting styles with 'ggplot2', 'lattice' or 'graphics'.


Bug fixes:
----------
- plotIndiv: X and Y.label fixed, par() bug fixed

-rgcca tau parameter output enhanced.




Changes in 5.1.1 (major release)
================

New features:
-------------
1 - plotContrib for objects of class PLSDA and sPLSDA has been added and is of particular interest for those analysing microbial communities / metagenomics data. 

2 - wrapper.sgccda was added to enable multiple data sets integration with one or several factor outcomes. Note: the prediction function for this new add-on has not been fully tested yet and is not available.

3 - wrapper.sgcca and wrapper.sgccda now have an argument called 'keep' that you can use as an alternative to the 'penalty' old argument. Keep is the equivalent of the keepX in the PLS method to specify the number of variables to select on each component and each block. Refer to the help file, as keep should be input as a list of length the number of blocks, and each element of the list (corresponding to a block) indicates the number of variables to select on each component (yes, it becomes, indeed, complicated).

4 - All wrapper methods for the multiblock module, i.e. wrapper.rgcca, wrapper.sgcca and wrapper.sgccda take the input argument 'blocks' (instead of previously 'data') - this is to enable a smoother transition to the next update!

5 - plotIndiv has been improved dramatically. A single function can now be used for the objects PLS, sPLS, PLS-DA, SPLS-DA, rCC, PCA, sPCA, IPCA, sIPCA, rGCCA, sGCCA, sGCCDA (not an S3 function anymore). In addition, we now provide the new arguments (and more to come!):
	- ellipse plots are now available, a group argument is requested for the unsupervised methods (PCA, IPCA, PLS)
	-three types of graphical plot: graphics (version < 5.1-0), ggplot2 and lattice
	-legend and title can be added
  - NOTE: if you want to color each sample with respect to a factor (i.e. a factor of length n), then the argument to use is 'group'. If you use a supervised approach then col.per.group is a vector of length the number of groups. These arguments may change in the coming up updates.

6 - cim has been implemented for PLS, sPLS, PLS-DA, SPLS-DA, rCC, PCA, sPCA, IPCA, sIPCA and includes a wide range of options to plot a single data set in the form of a heatmap (new!), or the cross correlation between two matching data sets via the methods rCC or (s)PLS using the cross product between latent variables and loading vectors (improved with legends and color bars). We will give more examples on our website.

7 - added package dependencies: ggplot2 and ellipse


Enhancements:
----------
1 - All wrappers for multiple data integration have been improved and re-implemented. Consequently, the dependency to RGCCA has been removed, and three wrapper functions are now available: wrapper.sgcca, wrapper.rgcca and wrapper.sgccda (see New Feature #2 above).

2 - selectVar has been extended for the non sparse versions PCA, PLS and PLS-DA and output the features with decreasing absolute weights in the loading vectors. It is used in particular for plotContrib (see New feature #1 above)


Bug fixes:
----------
1 - The sPLS algorithm was rewritten to ensure convergence. This implies that spls results might be slightly different from version < 5.1-0!


Changes in 5.0-4
================

New features:
-------------
1- new set of palettes have been added: color.jet, color.spectral, color.GreenRed and color.mixo
2- the multilevel module has been updated. A new function called withinVariation() calculates the within matrix. Our new website www.mixOmics.org will be updated shortly
3- the function tau.estim was borrowed from the RGCCA package and included in mixOmics in order to estimate the regularisation parameters from rcc more efficiently than tune.rcc(). We noted differences in those parameters estimates between tune.rcc() and tau.estim() as the methods use either cross-validation or the formula from SHaefer and Strimmer (2005). When using tau.estim() we also advise to center and scale the input data in rcc(). See helptau.estim().  
4- because of a S3 method clash with the MASS package with the current R version we had to rename select.var to selectVar

Bug fixes:
----------
1- select.var.sgcca has been fixed (the outputs were messy)
2- minor bug in plotVar.sgcca and plotVar.rgcca fixed
3- the algorithm in perf.pls and perf.spls has been almost entirely changed. We are now using a different algorithm to estimate the Q2, as presented in the help Rd file (unfortunately the reference is French so contact us for more details if needed). plot.perf() has been updated

Enhancements:
----------
1- network default color set to color.GreenRed
2- output feature.final in perf S3 function has been removed. Better to use select.var() to obtain the list of selected variables
3- the multilevel module has been updated. The argument names were changed to 'design' instead of 'cond'. The pheatmap.multilevel() function has been improved.
4- the nearZeroVar function that was borrowed from the caret package has been enhanced to improve computational time as this is costly in the pls/spls functions

Changes in 5.0-3
================

Bug fixes:
----------
-the perf and predict functions have been updated. The prediction values are calculated based on the regression coefficients of Y onto the latent variables associated to X.

-scaling issues in perf/old-valid have been fixed

-one warning on the plotIndiv.rcc has been fixed.

-transition from valid() to perf() announced.

Changes in 5.0-2
================

New features:
-------------
- The valid function has been superseded by the perf function. Although similar in essence, few bugs have been fixed to estimate the performance of the sPLS and sPLS-DA models with no selection bias. A variable stability frequency has been added to the output. Functions spls.model and pls.model have been removed.

Bug fixes:
----------
-pls and spls function have been modified and harmonised w.r.t to scaling. Loading vectors a and b are now scaled to 1. Latent variables t and u are not scaled (following Table 21 of the Tenenhaus book - which is in French, sorry!).

-the argument abline.line has been set to FALSE by default in all plotIndiv functions.

- tune.multilevel for one factor has been fixed.

Changes in 5.0-1
================

New features:
-------------

New dependency to RGCCA package to enable integration of multiple matching data sets
- wrapping method wrapper.sgcca() and wrapper.rgcca() created
- S3 methods plotIndiv, plotVar, select.var, print for rgcca and sgcca added

Multilevel analysis
- cross validation enabled in function tune.multilevel for one factor (previously, only loocv was available)

RCC
-the function estim.regul has been renamed tune.rcc
-the function pcatune has been renamed tune.pca

Bug fixes:
----------
-in plotIndiv: horizontal and vertical abline set as a default argument
-a new argument in splsda() function added: near.zero.var = TRUE or FALSE to speed up computations (near.zero.var = FALSE to gain speed)
-the valid() function has been updated to speed up the computations. There is no 'criterion' argument to choose anymore (by default, all are included in the computation)
-in plotVar: matching arguments user-function to avoid additions of unused arguments
-in plotIndiv, arguments 'x.label' and 'y.label' were replaced by 'X.label' and 'Y.label'
-in pca, argument 'scale.' was changed to 'scale'

Changes in 4.1
================

New features:
-------------
- New S3 method valid for objects of class psl, spls, plsda and splsda
- New select.var function to directly extract the selected variables from spls, spca, sipca
- New data set vac18 for multilevel data


Changes in 4.0
================

New features:
-------------
- The multilevel methodology has been added as well as the associated S3 methods for the graphical outputs (plotVar, plotIndiv)
- pheatmap clustering is available for multilevel analysis (borrowed from the pheatmap package)
- tuning functions are available for multilevel analyses
- a dependency to the package 'igraph0' has been created (instead of 'igraph' as the authors informed us of major changes in this package)

Bug fixes:
----------
-pls and spls have been modified to better handle NA values


Changes in 3.0
================

New features:
-------------
- The new methodology IPCA and sIPCA have been added as well as the associated S3 methods for the graphical outputs

- GeneBank IDs and gene titles were added in the liver toxicity study


Changes in 2.9-6
================

New features:
-------------
- Modifying the valid function: the Q2 criterion has been implemented

- var.label argument is used in plotVar.plsda, plotVar.splsda, plot3dVar.plsda, plot3dVar.splsda instead of X.label

- New S3 method network for pls

- New code for valid function to PLS-DA and sPLS-DA models validation

- New code for plot.valid to display the results of the valid function for PLS-DA 
  and sPLS-DA models

- cim and network were modified to obtain the simMat matrix as value

- plotVar was modified to obtain the coordinates for X and Y variables as value

- In predict function, several or all prediction methods are available simultaneously to 
  predict the classes of test data with plsda and splsda 
  
- The argument 'mode' has been removed of plsda and splsda functions


Changes in 2.9-5
================

New features:
-------------
- sPCA has been modified to get orthogonal principal components


Changes in 2.9-4
================

New features:
-------------
- PCA has been modified to run either SVD (no missing values) or NIPALS (missing values)

- print.pca has been added to display the results of PCA

- pcatune has been added to guide the choice of the number of principal components


Changes in 2.9-1
================

New features:
-------------
- New S3 methods plotIndiv and plotVar for PCA

- New S3 method plot.valid to display the results of the valid function

- New code for imgCor function for a nicer representation of the correlation matrix

- In predict.plsda and predict.splsda functions the argument 'method' were replaced by
  method = c("max.dist", "class.dist", "centroids.dist", "mahalanobis.dist")

- New arguments for the cim function:
  * dendrogram
  * ColSideColors, RowSideColors

- Modifying the valid function:
  * missing data are allowed
  * Q2 criterion has been removed

- Functions pls, plsda, spls and splsda were modified to identify zero- or near-zero variance predictors

- Functions plotVar.plsda, plotVar.splsda, plot3dVar.plsda, plot3dVar.splsda were modified to represent 
  only the X variables

- New function: 'nearZeroVar' for identification of zero- or near-zero variance predictors 


Changes in 2.8-1
================

New features:
-------------
- New arguments ("axis.labelX", "axis.labelY") in the function imgCor, to indicate if the labels 
  of axis have to be shown or not

- New classes splsda and plsda for predict, print, plotIndiv, plot3dIndiv, plotVar, plot3dVar

- Several prediction functions are avaiable to predict the classes of test data with plsda and 
  splsda see predict (argument 'method' ("class.dist", "centroids.dist", "Sr.dist", "max.dist"))

- New functions map & unmap borrowed from the mclust package


Bug fixes:
----------


Changes in 2.7-1
================

New features:
-------------

- New functions pca, plsda and splsda, as well as extensions of plot3dVar and plot3dIndiv for pca 

- New network.default function which is called by network.rcc and network.spls

- bin.color function added in network.default to color edges w.r.t. the values in the simMat matrix

- nipals has been improved to be computationally more efficient

- Missing values are treated as in Tenenhaus in pls, spls and valid functions

- New argument 'ncomp' in rcc function, argument 'ncomp' has been removed from 'summary' and 'rcc'

- New option ("XY-variate") for the argument 'rep.space' in the 'plot3dVar'


Bug fixes:
----------
- 'tick marks' values have been corrected for color key in cim

- Computation of the simMat matrix for pls and spls - canonical mode, and correction in 
  plotVar, plot3dVar, cim and network

- Correction of the default argument 'rep.space = "XY-variate"' in plotIndiv and plot3dIndiv

- Correction of the manual


Changes in 2.6-0
================

New features:
-------------
- Former R package integrOmics has been renamed mixOmics

- In functions plotIndiv, plotVar, cim, network the arguments 'dim1', 'dim2', 'ncomp' 
  were replaced by 'comp', a vector of length 2 (by default 'comp = 1:2')

- Network has a new argument 'alpha'

User-visible changes:
---------------------

Bug fixes:
----------

Internal changes:
-----------------



