Hi @Chloe.J ,
Apologies for the very delayed answer. We’ve had a change in the team. I am only answering in case it might benefit others!
Here are a few thoughts:
1. Singular matrix on plsda
With ~10 samples and 890,000 probes, the residual matrices become singular very quickly, as you experienced. I recommend you
-
filter the features by variance. Keep the top 5,000 (maximum 10,000) most variable probes. A bimodal variance distribution is common for methylation you want to keep the right-hand tail (highly variable probes). Random filtering discards any important signal so I don’t recommend this approach.
-
reduce
ncomp. With N around 10, more than 2–3 components will exhaust the residual matrices.
Similar recommendations for DIABLO.
2. Cross validation when n = 9
Given that only 9 samples are shared, choose leave-one-out cross-validation in perf(). The error rate is fairly high, but not surprising given n = 9, I assume divided into several sample groups. This analysis should remain exploratory.
3. plotDiablo
I was not able to see your plot. A negative correlation between the block components is quite unusual. perhaps suggesting that the two data sets share less common discriminative signal. Try a higher design value (e.g. 0.5) or first inspect the between-block correlation with a non-sparse pls() and calculate the correlation between the X and Y components from PLS to understand the correlation structure.
Related posts:
-
Perf function: error in solve.default(Sr): system is computationally singular — Perf function: error in solve.default(Sr): system is computationally singular
-
Integration with DIABLO for N-integration with low sample size — Integration with DIABLO for N-ingretaion with low sample size
Kim-Anh