前记
在进行表型鉴定的过程中,我们常常会鉴定多种指标。例如,在进行逆境胁迫研究时,我们会测量胁迫前后的植株的形态学和生理学等指标,以反映植物的受损程度或者耐逆能力。以玉米为例,植株收到逆境胁迫后,可能表现出植株矮小、生物量和产量下降以及光合作用等能力降低的现象,进而我们会去测定株高、生物量、单株产量、SPAD值等指标。那么,在这些众多指标中,到底哪一个或哪几种可以反应植株的受损程度还需要我们进行一个深入分析,其中PCA分析和Biplot的绘制可以帮助我们较好地了解这些指标的比重,以更好地进行后续的试验和分析。本文介绍如何在R中进行这些分析并输出结果。

一、输入文件的准备
输入文件的第一列时样本名称,例如sample1、、、sampleN;其他列时不同指标的表型数据,列的表头是指标的名字。准备好后,就可以在R中进行分析了。输入文件样式如下:
二、进行PCA分析和Biplot的绘制
直接上代码,设置文件路径不用多说,运行的代码如下:
# 读取数据
trait_data <- read.csv("PCA_res.txt", header = TRUE, sep = "\t")# 移除非数值列(如果存在)
trait_data <- trait_data[sapply(trait_data, is.numeric)]# 标准化数据
scaled_data <- scale(trait_data)# 执行PCA
pca_result <- prcomp(scaled_data, scale. = TRUE)# 查看载荷量
loadings <- pca_result$rotation# 查看每个性状的权重(载荷量的平方和)
weights <- loadings^2
print(weights)
# 获取变量名称
variable_names <- colnames(trait_data)
heatmap(weights, Rowv = NA, Colv = NA, main = "Variable Weights in PCA", labRow = variable_names, labCol = paste0("PC", 1:ncol(weights)), col = heat.colors(256), trace = "none", margins = c(8, 8))
# 绘制载荷量图,添加美化参数
biplot(pca_result, scale = 0, col = c("blue", "red"), pch = 19, cex = 0.6, main = "PCA Biplot", xlab = "PC1", ylab = "PC2")
三、结果解读
输出的第一个图如下所示:
热图上显示的有主成分和变量名称,颜色的深浅代表每个主成分中的每个变量(指标)对该成分的贡献大小。
第二个图如下所示:
biplot图中,指向同一个方向的两个变量代表它们间的相关性越强,每个变量的箭头线段越长代表权重越高。
后记
很久没写了,简单记录一下,感觉这个分析还是挺有用的!
2024.11.10
千里之行,始于足下。
--------CXGG