Final integrated PCA projection

Hi there,
I was wondering if there is a mixOmics function to plot the final integrated PCA projection of my three experimental blocks. I mean, suppose I have the principal components of each of the three data sets integrated with DIABLO, it would be possible to project the classes/groups on to a plane composed by all components? Does it make sense?

First I would need to confirm with you that you are using DIABLO, not 3 PCAs (if you are not sure, you need to read the DIABLO paper in Bioinformatics). DIABLO is based on regularised canonical correlation analysis and is not 3 x PCAs. I am emphasising on this because the aims of the methods are different (maximising the covariance between data sets while discriminating an outcome. PCA just maximises the variance in one data set) and I would like you to avoid confusion when writing your manuscript.

If you are really using DIABLO, then you need to extract the set of components associated to each data set. Starting from the example given in that would be:


then all you need to is is average the components, one dimension at a time and then plot the consensus components:

component.consensus <- matrix(nrow = nrow(sgccda.res$variates$mRNA), ncol = ncol(sgccda.res$variates$mRNA))
colnames(component.consensus) <- colnames(sgccda.res$variates$mRNA)
rownames(component.consensus) <- rownames(sgccda.res$variates$mRNA)

for(k in 1:ncol(sgccda.res$variates$mRNA)){
mat.comp <- cbind(sgccda.res$variates$mRNA[,k],
component.consensus[,k] <- apply(mat.comp, 1, mean)

@aljabadi told me he is pushing a new version on Bioconductor soon so that you can have the customised ggplot2 directly from mixOmics. He will send some details later.


Dear Kiman,
Thank you so much for your replay.
I completely agree with you. Indeed, I’ve being running DIABLO to integrate three experimental data blocks from the same samples. Also, I meant to project the samples in a common PCA plane but had no idea how to do. So, your answer is pretty clear and will help me a lot.

P.S.: nice to hear that we’ll have this functionality in the coming mixOmics version.

Hi @fred,

You can now install the latest GitHub version ( and plot the consensus components.
Some examples are provided in
Hope it helps

Dear Aljabadi,
Thank you for replay. I’ll try it soon.