目录
前记
WGCNA(Weighted Correlation Network Analysis)是一种系统生物学中常用的数据分析方法,主要用于分析高通量基因表达数据。该方法通过构建基因共表达网络,将相似的基因组织到同一模块中,并用模块间的关联性进行分析,从而识别与生物学过程相关的模块和关键基因。
WGCNA分析流程主要包括:数据预处理、构建共表达网络、模块检测、模块注释和功能分析等步骤。其中,构建共表达网络是WGCNA的核心步骤,其基本思想是通过计算基因间的相关系数,建立基因共表达网络,然后利用模块检测算法将相关基因聚类成模块,进而探究不同模块与生物学过程的相关性。最终,可以对模块进行注释和功能分析,揭示其在生物学过程中的作用。
![Figure 1](https://i-blog.csdnimg.cn/blog_migrate/d856eeba6fe24f9667d4bac4eba7dc1c.jpeg)
一、R包的安装
WGCNA分析需要用到WGCNA包。WGCNA R包是基于R语言编写的,用于实现WGCNA分析的工具包。该包提供了一系列函数,可用于数据预处理、构建基因共表达网络、模块检测、模块注释和功能分析等步骤。同时,还提供了数据导入和导出、可视化等功能。
WGCNA R包中的主要函数包括:
- importDataset:用于导入基因表达数据;
- goodSamplesGenes:用于筛选高质量的样本和基因;
- pickSoftThreshold:用于选择共表达网络分析中的软阈值;
- blockwiseModules:用于构建基因共表达网络,并将相关基因聚类成模块;
- moduleColors:用于将模块标记颜色并可视化;
- moduleTraitCor:用于计算模块和外部性状的相关性;
- pathwayAnalysis:用于对模块进行通路分析。
WGCNA R包是一个功能强大的工具,可以快速、高效地进行WGCNA分析。对于想要进行基因表达数据分析的生物学家和生物信息学家来说,是一个非常有价值的工具。
#载入WGCNA和flashClust
BiocManager::install("impute")
BiocManager::install("preprocessCore")
install.packages("WGCNA")
install.packages("flashClust")
library(WGCNA)
library(flashClust)
二、数据的载入和预处理
1、数据导入
导入的数据包括差异基因的表达量信息和性状信息,代码如下:
#读入表达量数据
fpkm <- read.table("GSE80565_RNAseq_ABAtimeSeries_rpkm_log2FC_FDR_filterCPM2n2.txt", header = TRUE)
rownames(fpkm) <- fpkm$gene_id #设置第一列为列名
fpkm <- fpkm[, - 1] #删除第一列
fpkm <- fpkm[, 1:28] #提取表达量数据
fpkm <- log2(fpkm + 1) #取对数
#读入差异表达分析结果
deseq_results <- read.csv("DESeq2_results_significant.csv", row.names = "X", header = TRUE)
SubGeneNames <- as.character(rownames(deseq_results)) #提取差异表达基因名称
datExpr <- fpkm[SubGeneNames, ] #提取差异表达基因表达量数据
datExpr <- na.omit(datExpr) #去除NA值
datExpr <- as.data.frame(t(datExpr)) #颠换行和列
#检查是否存在异常值
gsg <- goodSamplesGenes(datExpr, verbose = 3)
gsg$allOK
#读入表型数据
datTraits <- read.table("traits_wgcna.txt")
#datTraits <- datTraits[1:14, ]
table(rownames(datTraits) == rownames(datExpr))
2、样本的聚类
#根据表达量对样本进行聚类
A <- adjacency(t(datExpr), type = "signed")
k <- as.numeric(apply(A, 2, sum)) - 1
Z.k <- scale(k)
thresholdZ.k <- - 2.5
outlierColor <- ifelse(Z.k < thresholdZ.k, "red"