Number of variables per components error

Hello, I am running DIABLO analysis on metabolomics and ASVs data with outcome variable as hypertension (yes, no), and the optimal number of components was suggested to be two. Component 1 seems to be fine (correlation of 0.47 between the two datasets). My question is that the number of variables per component is mentioned below but then when I run the circos plot on component 2, I am getting 48 ASVs on component 2 when in fact the list.keepX shows only 5 ASVs on component 2. Is it possible that while it is suggested that the optimal number of components is 2 based on BER, I should only consider the first component. Also, the correlation between the two dataset on component 2 is 0.21 and the loading plot for ASVs is also looking weird. I would really appreciate receiving some clarification. Thank you!

        max.dist centroids.dist mahalanobis.dist

Overall.ER 1 4 2
Overall.BER 1 2 2

[1] 30 30

[1] 5 5

sgccda.res <- block.splsda(X = X_new, Y = Y3, ncomp = 5, 
                          design = design)
perf.diablo <- perf(sgccda.res, validation = 'Mfold', folds = 5, nrepeat = 50)

Please, I would really appreciate some feedback!

Hey @DJT

Sorry for the belated reply. The output and the second figure you’ve shown are quite confusing. If you would like, you can send your data and analysis code to this email: With that, I can try and reproduce your issue and we can go from there.


Thank you so much Max. I have sent you an email.