I got a PCA plot of bulk RNA-seq experiment that looks the following way:

enter image description here

It was generated by the following code:

pcaData <- plotPCA(rld_sva, intgroup=c("Group"), returnData=TRUE)
percentVar <- round(100 * attr(pcaData, "percentVar"))
ggplot(pcaData, aes(PC1, PC2, color=Group)) +
  geom_point(size=3) +
  xlab(paste0("PC1: ",percentVar[1],"% variance")) +
  ylab(paste0("PC2: ",percentVar[2],"% variance")) + 

First sva correction was run to correct for batch effects and then rlog transformed values were plugged in to plotPCA function.

The first issue that catches the eye is that 100% of the variance is explained by just 2 dimensions. I am not sure what can one say about the data in this case. The second issue is that I get only around 20 differentially expressed genes by using DESeq2 analysis (log2FoldChange > 1, p_adj < 0.05). I know that we can not directly state that if there is a large difference on PCA there will be present a plenty of differentially expressed genes, but why is it not the case? Simple logic tells me that pca shows the difference between the samples in their gene expression, so I would expect seeing a plenty of differentially expressed genes.

  • 1
    $\begingroup$ Here each point is a sample or a cell? As you mention explaining 100% of variance in two dimensions would mean that an error happened somewhere. What have you done to find the root of this problem? And what is your question? If it is possible, if it is normal to happen something like this or something else? $\endgroup$
    – llrs
    Dec 18, 2018 at 22:18
  • 1
    $\begingroup$ Sample. The question is why so much difference in pca does not lead to many differentially expressed genes. Second, minor question, is why the data is 2D, possible reasons for that. Sorry, I made a mistake, it is bulk RNA seq $\endgroup$ Dec 19, 2018 at 0:10
  • 1
    $\begingroup$ Your two IgG replicates are separated a lot in the PCA plot, compared with the two other replicates, which likely means that there is too much disagreement within the IgG group in order for DESeq to arrive at low enough P-values for most of the differentially expressed genes. Adding one more IgG replicate would probably help a lot. $\endgroup$ Dec 19, 2018 at 10:27

2 Answers 2


You only have 4 samples total. I think it would be difficult to not have the PCA show big differences between the groups with so few points.

On the other hand, for differential expression, it is hard to get something to be statistically significant with only 2 replicates.


While this result isnt what you expected, it communicates important information about the differences along phenotype (i assume) and across replicates. PCA plots create x and y axis that represent aggregated features that account for the greatest variation, the x axis is the direction of maximal variation represents a group of genes that account for highest aggregated variance values. You can usually dissect the PCA command to find the loading (the genes used to create the axis' arbitrary unit of measurement). The loading of PC1 (x axis) are genes that separate the two groups along categorical groups in an unsupervised clustering technique, this is great in an analysis with substantial samples as determined by a power analysis that includes predicted effect size which need to be done in preparation of the experiment to guide the protocol. When the loading of an axis is due to a small number of genes that suggests that the variance for those genes is very large. Again this is great if the experiment is performed with an appropriate sample. For PC2 the next greatest direction of maximal variation separates replicates and can be interpreted as indicative of the genetic diversity across a species responsible for the unique traits of individuals. These differences are far more pronounced in group 1. The suggests that the gene expression values across replicates of group 2 will yield a significantly higher correlation coefficient than those in group 1. Unfortunately this is not an appropriate sample size for any analysis really. Even the standard 3 sample comparative analysis is a statistical nightmare. PCA plots can effectively communicate magnitude and directional cohesion (or lack of cohesion) of the salient differences between groups and samples from experiments that include measurement of features in high dimensional space which is the reason they are so prominent in bioinformatics.

This plot is actually astounding as well or it would be for adequate sample numbers because PC1 indicates that between your two phenotypes or groups the are a small number of genes that account for 70% of the variation. If you repeat this experiment with greater number of samples and it yields similar results those genes that load the PC1 axis would be prime candidates for biomkarers that differentiate whatever condition you are studying and should be in vivo validated and even analyzed for potential causality.

Part of the reason that you have so few differentially expressed genes is because of your protocol as well. SVA is a surrogate variable analysis that eliminates potential lurking variables by identifying covariates or features that may yield false positives due to uncontrolled consistencies or biases between flowcell lanes, technician performance, time to perform the experiment. If you failed to employ SVA you would have significantly more differentially expressed genes but they would be potential false positives and should be interpreted as low confidence positives. Having performed SVA before PCA suggests that there is high confidence in the role of the several genes responsible for the greatest differences across the two conditions. Unsupervised clustering techniques require some understanding of the basic concepts of linear algebra. MITOCW has a fantastic free course by gilbert strang that would help you to more accurately interpret these types of plots as well as many others like MDS plots, heatmaps, and dendrograms. The URL of the course and its free textbook are included below.



I like Rbloggers tutorials on these subjects usually but so many good ones currently exist.


I hope this helps.

  • $\begingroup$ In one sentence: The study is underpowered given the observed dispersion in IgG group. OP also used DESeq2 and not sva for differential expression, sva is only for visualization, trying to see if batch removal might be beneficial here. While your effort is appreciated I suggest answering a bit more "on-point" rather than trying to show off towards how PCA works with a wall of text, which was not the question here. $\endgroup$
    – user3051
    Apr 5, 2020 at 10:37
  • $\begingroup$ "First sva correction was run to correct for batch effects and then rlog transformed values were plugged in to plotPCA function" is a direct quote from his question. DESeq is a package that includes sva normalization. $\endgroup$ Apr 5, 2020 at 10:45
  • $\begingroup$ "The first issue that catches the eye is that 100% of the variance is explained by just 2 dimensions. I am not sure what can one say about the data in this case" this suggests my explanation was warranted $\endgroup$ Apr 5, 2020 at 10:46
  • 1
    $\begingroup$ @DrewJ. I apologize if my comment was interpreted as condescending, that was not my intend. Still, you should seriously consider your language and way to respond to criticism. If you are going to react like this after being challenged during a talk or presentation, no matter if the content of the challenge was correct or not, there is never going to be a productive discussion. Even if you answer was perfectly fine people will remember your anger rage, not your answer itself. $\endgroup$
    – user3051
    Apr 5, 2020 at 11:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.