Two Different Coordinates in PCA
A PCA plot often places cells as points and genes as arrows. These marks do not represent the same kind of quantity. A cell’s coordinate is a score: its position along a principal component. A gene’s loading describes how that gene contributes to the component’s direction. Confusing the two can turn a useful plot into a misleading one—for example, by treating a gene loading as though it were that gene’s expression level in a cell.
Suppose the centered data matrix \(X\) has \(n\) cells in rows and \(p\) genes in columns. An entry \(x_{ij}\) is the centered, processed expression value for gene \(j\) in cell \(i\). Centering means each gene column has mean zero across the cells in this matrix. For the PCA definitions below, use the singular value decomposition \(X=UDV^\mathsf{T}\). The columns of \(V\) are unit-length gene-space directions, and the \(k\)th column, \(v_k\), is the loading vector for component \(k\). The \(k\)th cell-score coordinate for cell \(i\) is \(t_{ik}=x_i^\mathsf{T}v_k\), where \(x_i\) is that cell’s row vector. In matrix form, the score matrix is \(T=XV=UD\).
The loading vector for a component has squared entries summing to one: \(\sum_{j=1}^{p}v_{jk}^2=1\). A loading is not itself a gene’s expression, and the score is not a single gene’s value. Each score combines the cell’s values across genes, weighted by their loadings. If the input values are centered transformed expression, then the score is in the corresponding transformed-expression scale.
Signs, Magnitudes, and the Meaning of an Axis
For a fixed component, genes with positive loadings contribute positively to the score when their centered values are positive; genes with negative loadings contribute negatively when their centered values are positive. A cell’s score is the sum of these signed contributions. A loading’s absolute magnitude indicates how strongly that gene enters the component’s direction relative to other genes on that same component. It is not a stand-alone measure of a gene’s biological importance.
The sign of an entire principal component is arbitrary. If \(v_k\) is replaced by \(-v_k\), its scores also change sign, and the PCA reconstruction is unchanged. Therefore, “positive PC1” has no fixed biological meaning across software runs or analyses. What remains meaningful is the relative pattern: genes with loadings of the same sign point in the same direction on that component, while genes with opposite signs point in opposing directions. A reported sign should always be interpreted relative to the component’s other loadings and scores.
A loading vector can help identify which genes define an axis, but neither a large loading nor a cell’s position alone establishes a biological cause. A component summarizes a direction of variation in the input matrix. Biological interpretation requires examining the genes, the cells, and the analysis context together.
Worked Example: Calculating Cell Scores From Loadings
Suppose a hypothetical PCA has a first-component loading of \(0.6\) for gene A and \(0.8\) for gene B, with all other loadings zero in this simplified illustration. These loadings have unit length because \(0.6^2+0.8^2=1\). Two hypothetical cells have centered values \((2,1)\) and \((-1,2)\) for genes A and B, respectively. Find each cell’s PC1 score.
For the first cell, the projection is
For the second cell,
Both cells have positive scores, but the first is farther along PC1 in this orientation. The first cell’s positive centered values on both genes reinforce one another. For the second cell, gene A pulls the score downward while gene B pulls it upward; the weighted contributions still sum to a positive score. Neither score is an expression value for either gene.
Why Correlated Genes Can Contribute Together
Genes that vary together across cells can have loadings with the same sign on a component that captures their shared variation. Their contributions to a given cell’s score then reinforce one another when both genes are above their respective means, and also reinforce one another when both are below their means. This is a statement about the component’s direction and the centered values of a cell; it does not mean that every cell has both genes high, or that the component proves a shared biological mechanism.
The connection between a loading and the gene’s covariance with a component score makes this relationship precise. Let \(S=X^\mathsf{T}X/(n-1)\) be the sample covariance matrix of the centered gene values. For a component \(k\), \(S v_k=\lambda_k v_k\), where \(\lambda_k\) is its eigenvalue. The sample covariance of gene \(j\) with the cell scores on this component is
Here \(x_j\) is the column of centered values for gene \(j\), and \(T_k=Xv_k\) is the vector of scores across cells. This derivation shows why the loading sign gives the sign of the gene–score covariance: \(\lambda_k\) is nonnegative, so the covariance has the sign of \(v_{jk}\) whenever the component has nonzero variance. The loading magnitude alone does not give a correlation, because the gene’s variability also matters. When the gene’s sample standard deviation is \(s_j\) and \(\lambda_k>0\), the correlation is \(\sqrt{\lambda_k}v_{jk}/s_j\).
Worked Example: Interpreting a Shared Gene Pattern
Suppose a hypothetical PC2 has loadings \(0.6\), \(0.6\), and approximately \(-0.5292\) for genes G1, G2, and G3. The vector is unit length to rounding because \(0.6^2+0.6^2+(-0.5292)^2\) is approximately \(1\). In the hypothetical input data, G1 and G2 are positively correlated across cells. For one hypothetical cell, their centered values are \(1\) and \(1\), while G3’s centered value is \(-0.5\). Calculate this cell’s PC2 score using the displayed loadings.
G1 and G2 have same-sign loadings, so their positive centered values contribute in the same direction. G3 has an opposite-sign loading; its negative centered value also contributes positively to this cell’s score. Thus a positive score here reflects a combination of high-than-average values for G1 and G2 and a low-than-average value for G3. The sign pattern describes an axis contrast, not a claim that G1 and G2 cause the score or that their correlation must be entirely explained by this component.
Reading Scores and Loadings in a Biplot
In a biplot showing two components, a cell point has two score coordinates, such as \((t_{i1},t_{i2})\), while a gene is represented by a pair of loading coordinates, such as \((v_{j1},v_{j2})\). Gene arrows pointing in similar directions indicate similar loading patterns across the displayed components. Arrows pointing in opposing directions indicate opposing patterns in this two-component view. A cell lying far in the direction of a gene arrow may have a relatively high centered value for that gene, but the precision of this reading depends on how the biplot was constructed and scaled.
The axes themselves remain interpretable as score axes, but visual distances between points and arrows require care. A biplot can rescale the cell and gene coordinates differently while preserving a useful approximation to the data. Some plots show scores alongside unit-vector loadings, perhaps multiplied by a display factor; other biplot conventions distribute singular-value scaling between cell and gene coordinates. Consequently, arrow lengths and point-to-arrow distances are not universally comparable quantities. Check the plotting convention before interpreting those lengths as correlations, expression magnitudes, or exact contributions.
One useful comparison is between raw loading and gene–component correlation. The raw loading is the coefficient \(v_{jk}\) in the unit direction. The correlation also depends on the gene’s standard deviation, as shown above. If gene columns were standardized to unit sample variance, then \(s_j=1\) and the correlation is \(\sqrt{\lambda_k}v_{jk}\); without that condition, raw loading and correlation are generally not interchangeable. The input transformation and scaling therefore matter to the interpretation, but a loading always remains a coefficient in the PCA direction.
Worked Example: From a Loading to a Gene–Score Correlation
Suppose a hypothetical component has eigenvalue \(\lambda_k=4\), so the score standard deviation across cells is \(\sqrt{4}=2\). Gene A has loading \(0.5\) and sample standard deviation \(s_A=2\). Gene B has loading \(-0.25\) and sample standard deviation \(s_B=1\). Calculate each gene’s covariance with the component score and its correlation with that score.
For gene A, the covariance is \(4(0.5)=2\). Its correlation with the score is \(2/(2\cdot2)=0.5\). Equivalently, \(\sqrt{4}(0.5)/2=0.5\).
For gene B, the covariance is \(4(-0.25)=-1\). Its correlation with the score is \(-1/(1\cdot2)=-0.5\). Both the loading and the correlation are negative here, but their magnitudes need not match: gene A’s loading is \(0.5\), while its correlation is also \(0.5\) only because of the specified eigenvalue and gene standard deviation. These correlations quantify linear association with the score, not a causal effect.
Assumptions, Diagnostics, and Common Pitfalls
These interpretations presume PCA was computed on a well-defined matrix with cells as rows and genes as columns, and that the gene columns were centered before computing the components. The covariance and correlation formulas above use the sample-covariance convention with denominator \(n-1\). If a different normalization is used, numerical eigenvalues and covariance formulas may change by a common factor, although the component directions and score-loading distinction remain. PCA also assumes that a linear projection is an informative summary for the question at hand; it does not model every nonlinear pattern or establish a biological mechanism.
When checking a PCA result, verify that the intended genes and cells entered the matrix, that score and loading columns refer to the same component, and that the plot’s scaling convention is documented. If scores appear inconsistent with a loading interpretation, compute a few projections directly as weighted sums. Also inspect whether the interpretation is driven by a small set of extreme values or by a coherent pattern across relevant genes. A component with near-equal eigenvalues to a neighboring component deserves special caution: the orientation within their shared subspace can vary, so individual component loading patterns may be less stable than the combined subspace.
- Common mistake: treating a loading as expression. A loading of \(0.7\) does not mean a gene is expressed at level \(0.7\), nor does it say that a particular cell expresses that gene highly. It is a coefficient in a component direction.
- Common mistake: calling a positive score “high expression.” A positive score means the cell projects in the chosen positive direction. It can result from several positive and negative gene contributions, and reversing the component sign reverses all scores.
- Common mistake: interpreting arrow lengths as gene importance without checking scaling. Plotting conventions can rescale arrows. Inspect the numeric loadings and the plot definition before comparing lengths.
- Common mistake: reading same-sign loadings as proof of strong gene correlation. Loadings describe a component, not the full pairwise relationship between genes. A two-component plot also omits variation outside the displayed plane.
Compared with reporting only scores, loadings help explain which measured genes define the directions in which cells are arranged. Compared with reporting only loadings, scores show where individual cells fall along those directions. Neither view replaces the other: cell group separation on a score plot does not identify its gene-level basis by itself, and a loading plot does not show which cells occupy a region. Use both, alongside the underlying data and analysis context.
Check Your Understanding
Answer each question, then compare with the solutions below.
- A gene has loading \(-0.4\) on a component. What does the negative sign tell you, and what does it not tell you?
- A cell has centered values \(2\) and \(-1\) for two genes with loadings \(0.5\) and \(-0.5\). Calculate its score on this component.
- If every loading and every score for one component is multiplied by \(-1\), has the PCA representation changed?
- Why can two genes with same-sign loadings both contribute positively to a cell’s score when both centered values are negative?
- A plot shows long gene arrows. What should you check before concluding that those genes are more important than genes with shorter arrows?
Solutions. (1) The gene has an inverse-direction coefficient relative to genes with positive loadings on that component; it does not establish low expression in every cell or a causal effect. (2) The score is \((2)(0.5)+(-1)(-0.5)=1+0.5=1.5\). (3) No. Reversing both the component direction and its scores leaves the PCA representation unchanged. (4) A negative centered value multiplied by a negative loading is positive, so the gene’s contribution to the score is positive. (5) Check how the biplot scales gene coordinates and whether the plotted arrows represent raw loadings, correlation-scaled loadings, or another display convention.