JGG | 多视图数据的植物基因组预测新方法MVBLUP

文章简介

基于基因组等多组学数据预测植物表型为快速、高效育种提供了便利。随着生物技术的发展,越来越多的生物大数据涌现,为提升表型预测精度提供了丰富的信息资源。多视图数据(Multi-view data)指来自多个来源的数据,可以从不同角度对同一生物对象进行互补性描述。整合多视图数据可以提高预测精度,然而其数据间存在复杂的相关性和异质性问题,目前仍缺乏有效的方法将这些数据进行充分整合利用。

近日,Journal of Genetics and Genomics在线发表华中农业大学杨文宇副教授团队题为“Multi-view BLUP: a promising solution for post-omics data integrative prediction”的研究论文。该研究提出一种多视图最佳线性无偏预测模型MVBLUP (https://github.com/bjwu555/MVBLUP),可以将多视图信息有效整合到表型预测中,提高植物复杂性状预测能力。

图片

MVBLUP是一种灵活的机器学习方法。它基于差分进化算法,通过为多视图数据分配权重的方式,有效整合多维度、多视角信息,实现对复杂性状的精准预测。差分进化算法借鉴自然界中物种的进化机制,模拟进化过程中的变异(Mutation)、重组(Crossover)和选择(Selection)等生物学过程,经过多代演化,最终携带多视图数据最优权重的个体被保留下来。通过在番茄、水稻、玉米等多个数据集中对MVBLUP方法进行验证,发现MVBLUP能够有效提升农作物产量等复杂性状的预测精度,与BLUP、LASSO和XGBoost等模型相比,提升幅度最高可达20%。综上所述,MVBLUP技术将有助于加速选育农作物新品种,为未来农作物基因组设计育种提供技术支持。

图片

MVBLUP模型工作流程图

MVBLUP算法及特点

MVBLUP算法步骤

  1. 标准化(Normalization)
  • 输入向量通过Z分数方法进行标准化处理。

  • 为差分进化(DE)算法初始化随机权重,建立初始种群。

  1. 训练(Training)
  • 利用差分进化算法的“变异和交叉”步骤更新权重向量。

  • 使用更新后的权重向量通过相似性函数计算多视角亲缘关系矩阵。

  • 利用差分进化算法的“选择”步骤更新权重向量,使用五折交叉验证的平均预测准确度作为适应度函数。

  • 重复以下步骤K次或使用早停机制(early stopping mechanism):

  1. 预测(Prediction)
  • 使用优化后的多视角亲缘关系矩阵进行表型预测。

MVBLUP算法特点

  1. 多视角数据整合
  • MVBLUP方法能够整合来自不同来源(视角)的数据,这些数据可以提供互补信息,以更全面地描述生物学对象。
  1. 自适应权重调整
  • 通过差分进化算法(DE)动态确定多视角特征的最佳整合权重,以反映每个视角的重要性。
  1. 提高预测准确性
  • 与单视角方法相比,MVBLUP在多个数据集上显示出提高的预测准确性。
  1. 差分进化算法(DE)
  • DE算法用于优化权重,模拟自然进化过程,通过变异、交叉和选择操作进化种群,寻找最优解。
  1. 早期停止机制
  • 当适应度函数值的最大误差低于指定容忍度或达到最大迭代次数时,DE算法将停止,以节省计算成本。
  1. 灵活性和可扩展性
  • MVBLUP算法灵活,可以适应不同的多视角场景,并且可以扩展到更广泛的多视角数据整合,包括RGB图像和基于光谱图像的表型数据等。

具体参见源码GitHub:https://github.com/bjwu555/MVBLUP

MVBLUP使用

1. 输入数据准备

1.1 多视角文件(Multi_view file)

  • 需要包含表头,第一列显示个体名称。

  • 基因型文件中的基因型(如AA, AT, TT)需要转换为基于等位基因频率的整数格式(0, 1, 或 2)。

  • 转录组数据、代谢组数据和其他特征数据也必须是数值格式。

图片

1.2 表型文件(Phenotypic file)

  • 必须包含表头,代表性状名称。

  • 第一列显示个体名称,性状值为数值格式,缺失值表示为NA。

图片

2. 使用方法

2.1 分析前准备

  • 准备表型数据和多视角数据文件,确保所有文件中的个体顺序一致。

2.2 读取文件

  • 使用R代码读取多视角数据和表型数据文件。
# read multi-view data
Multi_view1 <- read.table("./data/Multi_view1.txt",
header=TRUE,
sep="",
stringsAsFactors=0,
check.names=FALSE)
# read phenotype
Phenotype <- read.table("./data/Phenotype.txt",
header = TRUE,
sep = "",
stringsAsFactors = 0,
check.names = FALSE)

2.3 划分训练集和测试集

  • 准备一个文本表格,包含个体的集合信息,第一列是个体名称,第二列是集合身份(训练或测试)。

  • 使用R代码读取集合信息。

train_test_id <- read.table("./data/train_test_id.txt",
header = TRUE,
sep = "",
stringsAsFactors = 0,
check.names = FALSE)

2.4 获取多视角亲缘关系矩阵

  • 定义相似性函数来量化两个个体之间的相似性,并用它来计算多视角亲缘关系矩阵。

  • 首先,使用单视角数据集的内积计算初始关系矩阵。

  • 然后,使用MVBLUP模型获得的权重对初始单视角亲缘矩阵进行加权求和,得到多视角初始亲缘矩阵。

  • 将这个矩阵纳入相似性函数,得到精细的多视角亲缘矩阵。

A_N <- similarity_inner_product(Multi_dataset, n)
A <- similarity_kinship(A_M)
# Notes:
# 1.Multi_dataset: a list composed of multi-view datasets.
# 2.n: the number of multi-view datasets.
# 3.A_M: a multi-view initial kinship matrix, constructed through the weighted integration of inner products derived from single-view data.

2.5 优化单视角数据集的权重

  • 在训练集中,构建差分进化算法来寻找最优权重集合,这些权重代表不同单视角数据在表型预测中的重要性。

  • 使用“MVBLUP_weights”函数获得最优权重值。

MVBLUP_results <- MVBLUP_weights(NP, n,
CR, Mu,
s0, s1,
thre, iter,
cv, trid,
A_N,
Phenotype,
train_test_id)
#Notes:
#1.NP: the size of population.
#2.n: the number of multi-view datasets.
#3.CR: crossover factor.
#4.Mu: scaling factor.
#5.s0: the lower bounds of the search space for weights.
#6.s1: the upper bounds of the search space for weights.
#7.thre: threshold of the early stopping mechanism.
#8.iter: maximum iteration.
#9.cv: the number of folds for cross validation.
#10.trid: which trait.
#11.A_N: the single-view inner product for calculating multi-view kinship matrix.
#12.Phenotype: demonstrative phenotypic data with 100 individuals and 2 traits.
#13.train_test_id : file that identifies the sample IDs for the training and test sets.

2.6 测试MVBLUP模型的准确性

  • 在测试集中,将上述最优权重值与多视角数据整合用于预测,并计算测试集中观测值与预测值之间的相关性,作为MVBLUP模型的准确性。
MVBLUP_accuracy <- MVBLUP_PreTest(kinship_test,
testop1_ex,
trainop1_ex)
#Notes:
#1.kinship_test: multi-view kinship matrix obtained from the MVBLUP model.
#2.testop1_ex: true phenotypes of the test set.
#3.trainop1_ex: true phenotypes of the train set.

3. 输出结果

3.1 输出不同单视角数据集的权重

  • “MVBLUP_weights”函数可以学习不同视角数据集的最优权重,以最大化基因组预测性能。

  • 用户可以通过“MVBLUP_results$MVBLUP_information”获得最优权重。

图片

3.2 输出预测的表型和测试集的准确性

  • “MVBLUP_PreTest”函数计算MVBLUP模型的准确性,用户可以通过“MVBLUP_accuracy”获得预测值和预测准确性。

图片

3.3 可视化MVBLUP算法的学习工作流程

  • 使用“plot_learning”函数可视化MVBLUP算法的学习工作流程,生成两个图表:1)八种不同数据类型的迭代训练过程;2)MVBLUP模型学习过程中最优权重的变化。
plot_learning(MVBLUP_results$Training_Accuracy,
MVBLUP_results$Training_Weight,
MVBLUP_results$MVBLUP_information,
output_path)
#Notes:
#1.MVBLUP_results$Training_Accuracy: the average accuracy obtained from each iteration of five-fold cross-validation on the training set.
#2.MVBLUP_results$Training_Weight: the optimal weights obtained in each iteration.
#3.MVBLUP_results$MVBLUP_information: the optimal weight values and the number of iterations required for convergence
#4.output_path: the path for storing the output results.

图片

碎碎念

多视图数据在GS中也发了不少文章了,如很多研究将基因组、转录组、代谢组、蛋白组等数据整合到G矩阵中,但几乎都不区分不同组学的权重,认为它们具有相同的效应。MVBLUP主要就是把每一类数据集都训练赋予权重值,进而建模预测。这实际上是杨老师TOP(Target-Oriented Prioritization)算法的延伸,只不过TOP是对不同表型性状进行权重预测,在一定程度上替代了常见的综合选择指数。

算法很好,值得借鉴研究。但限于成本,多组学数据在短期内是不可能直接应用于育种的。当然,多视图数据不局限多组学(具有不同特征集的相同样本),多类型数据(同一特征集测量的不同样本组)、多环境数据(在不同条件下由同一特征集测量的相同样本)、多关系数据(同一系统中的不同特征和不同样本)都是可以尝试的。

现代育种是一个非常系统化的工程,GS交叉性极强,需要不同专业的人来做,最好既能懂育种、又懂算法、还能搞开发,才能落地实践。

图片

posted @ 2025-04-22 22:32  生物信息与育种  阅读(114)  评论(0)    收藏  举报