主要记录如何使用 GENIE3 构建基因调控网络(GRN)。

1.安装

GENIE3 支持从 Bioconductor 上安装,运行如下代码安装。

BiocManager::install("GENIE3")

2.使用说明

  主要分为数据准备、计算权重矩阵和提取对应关系三部分,其中核心部分是使用GENIE3 函数计算出权重举证。

2.1 数据准备

表达数据有下面几点要求:

  • 数据类型为 matrix
  • 行为基因列为细胞
  • 无需标准化
rm(list = ls())
library(GENIE3)
exprMatr <- matrix(sample(1:10, 100, replace=TRUE), nrow=20)
rownames(exprMatr) <- paste("Gene", 1:20, sep="")
colnames(exprMatr) <- paste("Sample", 1:5, sep="")
head(exprMatr)

2.2 运行 GENIE3

2.2.1 使用默认参数

set.seed(123) # 设置随机种子,确保结果的可重复性

weightMat <- GENIE3(exprMatr)
weightMat[1:5,1:5]

  weightMat 是一个包含所有基因间调控关系权重的矩阵,数值越大越越可靠。weightMat[i,j] 表示从第 i 个基因到第 j 个基因的调控权重,注意这里是有顺序,比如从 A 基因到 B 基因和从 B 基因到 A 基因的权重一般是不一样的。

2.2.2 使用子集

  人的基因有 2 w 左右,若全部进行分析,不仅会增加计算时间,而且获得的矩阵会包含许多噪音,从而掩盖所需的调控网络,这种情况下就可以使用 regulators 参数挑选一些感兴趣的基因集(根据实际需求选择,如差异基因集、通路基因集等)再进行计算。

# 可以输入基因在exprMatr中的位置

regulators <- c(2, 4, 7)
# 也可以直接输入基因名

regulators <- c("Gene2", "Gene4", "Gene7")

weightMat <- GENIE3(exprMatr, regulators=regulators)

上面结果就会得到一个 3 行 10 列的基因调控权重矩阵。

2.2.3 修改 tree-based method 的相关参数

  GENIE3 是基于 regression trees 构建的,内置了 Random Forest method (RF, default) 和 Extra-Trees method (ET) 两种方法,通过 treeMethod 参数来选择方法,具体两种方法适用的数据特点可自行查阅相关资料。两个方法中还包含下面两个参数:

  • K: Number of candidate regulators randomly selected at each tree node (for the determination of the best split)
  • ntrees: Number of trees in an ensemble for each target gene. Default: 1000
weightMat <- GENIE3(exprMatr, treeMethod="ET", K=7, nTrees=50)

2.2.4 并行计算

  在基因/样本数目比较多的情况下可以使用 nCores 参数增加线程数目来缩短计算时间。需要注意的是当线程数大于 1 时,设置随机种子便不能确保结果的可重复性。

weightMat <- GENIE3(exprMatr, nCores=4, verbose=TRUE)

2.3 获取调控关系

  本质上就是把上面获得的矩阵变换成关系对,使用 melt 函数和数据框的基本操作同样可以获得如下结果,不过作者已经包装好了,能够一行代码获得结果还是比较方便的。

# 获取所有的调控关系

linkList <- getLinkList(weightMat)

# 获取top的调控关系

linkList <- getLinkList(weightMat, reportMax=5)

# 获取权重阈值以上的调控关系

linkList <- getLinkList(weightMat, threshold=0.1)

  最后,同样可以构建 GRN 的软件还有GRNBoost。其速度较GENIE3 ,所以在数据量较大的情况下可以使用GRNBoost,链接地址如下:

GRNBoost:https://github.com/aertslab/GRNBoost


参考资料:
1.aertslab/GENIE3
2.GENIE3 vignette
3.GENIE3—一款预测基因调控网络的R包
4.基因调控网络 (Gene Regulatory Network) 01