当前位置:首页>python>一个基于Python的先进基因组选择工具MultiGS-P

一个基于Python的先进基因组选择工具MultiGS-P

  • 2026-10-27 02:51:03
一个基于Python的先进基因组选择工具MultiGS-P

今天我们继续分享一个全面且育种家友好的基因组选择平台MultiGS的子工具MultiGS-P,这是一个面向机器学习与深度学习的基因组选择管线。

往期回顾:

MultiGS-P 的功能定位

MultiGS-P 是一个 基于 Python 的基因组选择(GS)分析管线,专门面向机器学习模型、深度学习模型和图神经网络(GNN)模型。

MultiGS-P 的核心特点可以概括为一句话:

MultiGS-P 将“现代预测模型”系统性引入 GS,并提供可比较、可复现、可扩展的运行框架。

需要强调的是: MultiGS-P 不是多性状模型,而是对多个单性状分别建模,这是其在实现层面刻意保持清晰性的设计选择。

MultiGS-P 的核心能力

1. 覆盖完整的现代模型谱系

MultiGS-P 的模型体系明显不同于传统 GS 工具,支持以下几类方法:

(1)线性与正则化模型(Python / R)

  • RRBLUP(Python 实现)
  • R_RRBLUP、R_GBLUP(通过 R 接口)
  • ElasticNet
  • BRR

这些模型主要用于:提供稳定基线;与复杂模型进行公平对照。

(2)树模型与 Boosting

  • Random Forest
  • XGBoost
  • LightGBM

适用于:非线性但样本量中等的 GS 场景;SNP 或 HAP 特征维度已被控制的情况。

(3)深度学习模型

  • MLPGS:多层感知机,作为深度学习基线
  • DNNGS:更深层、可配置的全连接网络
  • DeepBLUP:将 RRBLUP 嵌入神经网络结构
  • DeepResBLUP:线性 GS 与深度残差网络的组合

这些模型用于捕捉:非线性效应;复杂 marker–trait 映射关系。

(4)图神经网络(GNN)

MultiGS-P 明确支持图结构建模:

  • GraphConvGS
  • GraphAttnGS
  • GraphSAGEGS
  • GraphFormer

其基本思想是:

将样本视为图节点,通过基因型相似性构建样本图,再进行信息传播。

这类模型适合:群体结构复杂;个体间关系显著的 GS 场景。

(5)集成学习(EnsembleGS)

MultiGS-P 内置 stacking 框架:

  • 基模型:任意已运行模型
  • 元模型:线性 / Ridge

用于综合不同模型的预测优势;提升整体预测稳定性。

2. 多特征视图的组合建模能力

MultiGS-P 支持三类 marker 表达方式:

  • SNP:0/1/2 编码,维度最高
  • HAP:单倍型块,依赖 rtm-gwas-snpldb
  • PC:主成分,强调群体结构

与 MultiGS-R 不同的是:

MultiGS-P 允许同时启用多个 Feature View,并在模型层面进行组合建模。

但官方也明确指出: 多视图 = 更高计算成本 + 更高过拟合风险。

数据与预处理要求(MultiGS-P 明确约束)

1. 基因型数据

  • 格式:VCF(.vcf / .vcf.gz)
  • 仅支持双等位 SNP
  • 不做任何内部 QC:不做 HWE 过滤;不做 LD pruning;不做深度 / 缺失率过滤。

缺失基因型在预处理阶段统一处理。

2. 表型数据

  • CSV 或制表符文本
  • 行 = 样本
  • 列 = 性状
  • 第一列必须为样本 ID

注意:

  • 多性状支持,但 每个性状独立建模
  • 缺失值默认用 性状中位数填补
  • 表型与基因型归一化 由用户显式指定

运行环境与安装

1. 基本环境

  • Linux(推荐)
  • Python ≥ 3.9
  • CPU 可运行
  • GPU 强烈建议用于 DL / GNN 模型

2. 安装流程(官方推荐)

git clone https://github.com/AAFC-ORDC-Crop-Bioinfomatics/MultiGS-P.gitcd MultiGS-Pconda env create -f environment.ymlconda activate multigs_p

3. 单倍型工具

HAP 视图依赖:rtm-gwas-snpldb(仓库自带或独立安装)

五、配置文件结构(MultiGS-P 的核心)

MultiGS-P 的所有行为均由 一个 ini 文件控制。

1. General:执行与复现

[General]seed = 42threads = 10n_replicates = 1n_folds = 5R_path = /path_to_Rresults_dir = results
  • seed:统计可复现性(非逐步确定性)
  • n_replicates:CV 重复次数
  • n_folds:CV 折数

2. Data:输入与归一化

[Data]vcf_path = train_genotype.vcfphenotype_path = train_pheno.txtpca_variance_explained = 0.95pheno_normalization = standardgenotype_normalization = standard

Prediction 模式下增加:

test_vcf_path =test_phenotype_path =

3. FeatureView:特征表示

[FeatureView]feature_view = SNP,HAP

可选:SNP、HAP、PC、任意组合(逗号分隔)

4. Models:模型选择

[Models]RRBLUP = trueXGBoost = trueMLPGS = trueGraphFormer = trueEnsembleGS = true

规则非常明确:

  • 至少启用一个模型
  • 线性模型应作为基线
  • 深度与图模型计算成本最高

5. Hyperparameters_*:模型参数

  • 每个模型独立参数块
  • 默认参数偏保守
  • 深度与图模型对参数高度敏感
  • Ensemble 仅使用指定基模型输出

运行 MultiGS-P

1. 激活环境

conda activate multigs_p

2. 执行管线

python MultiGS-P_1.0.pyc --config config.ini

执行特征:

  • 每个性状独立运行
  • 每个模型顺序执行
  • 日志与中间结果完整保存

输出结果结构(重点)

1. 表型基础分析

phenotype_analysis/
  • 分布
  • 相关性
  • 仅用于数据检查

2. 交叉验证结果

crossvalidation/results/
  • cv_gs_results.json
  • cv_gs_detailed_results.csv
  • cv_gs_summary_stats_*.csv
  • 模型 / 性状 / 特征视图箱线图
  • ANOVA + Tukey HSD(模型统计比较)

3. 预测模式输出

prediction/results/
  • 样本级预测值
  • 不同模型预测相关性
  • observed vs predicted 散点图

4. 计算资源统计

  • 训练时间
  • 内存消耗
  • 模型间资源对比

5. 模型检查点

ckpts/
  • 深度与图模型保存
  • 用于复现与二次预测

使用层面的关键建议

  • 一定保留线性模型作为对照
  • 深度 / GNN 模型不适合小样本
  • 多 Feature View 会显著增加复杂度
  • Ensemble 模型依赖基模型质量
  • 不要忽略计算资源与训练时间对比结果

小结

MultiGS-P 是一个为复杂模型而设计的 GS 工具,它的价值不在“跑得快”,而在:

  • 系统性引入深度学习与图模型
  • 提供严格、可比较的评估体系
  • 将 GS 从“线性假设”推进到“结构学习”

在 MultiGS 体系中,MultiGS-P 的角色非常清晰:

探索复杂遗传结构与模型上限的实验与方法平台。

如果您的数据非常丰富,可尝试使用MultiGS-P。尤其是对于学术研究人员来说,深度学习是当前热点,不开发新方法又想尝鲜将DL应用到自己的研究,可能是一个选择。“生物信息与育种”团队深耕行业十余年,有丰富的GS研究经验,若您有这方面的研究需求,我们可提供数据分析服务以及科研合作。

参考Github:https://github.com/AAFC-ORDC-Crop-Bioinfomatics/MultiGS-P

最新文章

随机文章