当前位置: 首页 > news >正文

一、基因组选择(GS)与基因组预测(GP)

🐷 基因组选择(GS)与基因组预测(GP)学习汇总

一、论文相关背景

  • 论文题目:《Genomic selection in pig breeding: comparative analysis of machine learning algorithms》

  • 核心研究内容:比较多种机器学习方法在猪基因组预测(GP)中的效果,推荐最优方法(Stacking、SVR、KRR-RBF)。


二、GS 与 GP 的概念

  1. GS(Genomic Selection,基因组选择)

    • 是一种 育种策略

    • 通过基因组数据预测个体的遗传潜力(GEBV),再据此选种。

    • 📌 类比:大学招生办 → 按成绩录取学生(挑选最优猪繁殖)。

  2. GP(Genomic Prediction,基因组预测)

    • 是一种 技术动作

    • 用 SNP 数据预测表型值或 GEBV。

    • 📌 类比:高考阅卷 → 根据答卷(SNP)给学生打分(预测值)。


三、GP 预测的目标

  1. 表型值(Phenotypic value)

    • 实际测得的性状值:体重、背膘厚度、窝仔数、初生窝重等

    • 用途

      • 作为训练数据的标签

      • 直接评价个体当前表现

      • 是估算 GEBV 的基础

  2. 基因组估计育种值(GEBV)

    • 表示基因能传给后代的遗传效应

    • 用途

      • 核心用于 选种和育种决策(挑选繁殖用个体)

      • 预测下一代平均水平

📌 关系:
表型值 = 遗传效应 + 环境效应
GEBV ≈ 遗传效应部分(可遗传,能传递给下一代)


四、GP/GS 的典型流程

采集样本(取耳组织)
-> DNA 芯片检测(获得 p 个 SNP 特征)
-> 数据预处理(居中/标准化/LD 剪枝)
-> 构建 X 矩阵(m × p SNP 编码)
-> 选择模型(GBLUP / KRR / SVR / Stacking 等)
-> 模型训练(得到每个 SNP 的权重或样本权重)
-> 计算预测值 Ŷ(表型值 / GEBV)
-> 基因组选择(根据预测值挑选最佳个体)

五、特征处理与权重

  1. 不进行特征删除

    • 普通 ML:特征选择(删掉不相关特征,得到 new_X)

    • GP/GS:通常 不删除 SNP,而是给不同 SNP 不同权重

      • 因为很多 SNP 单独作用小,但累积作用大,删掉会丢信息

  2. 获取特征

    • GBLUP:用所有 SNP 构建基因关系矩阵,求解混合模型,得到 SNP 效应

    • KRR/SVR:用核函数综合所有 SNP 信息,得到样本权重

    • LASSO/ENET:直接做特征稀疏化,部分 SNP 权重变 0

    • 随机森林 / 集成模型:通过树分裂或投票机制给 SNP 隐式权重

  3. 初步评估

    • 单个样本:

      y^=w1x1+w2x2+⋯+wpxp+b
    • 整个数据集:

      Y^=XW
    • 预测值再作为选种依据


六、模型与 Y 的关系

预测目标 (Y)类型常用模型
连续型表型值(体重、窝仔数)回归GBLUP、KRR、SVR、RFR、Stacking、CNN、MLP
GEBV(连续型)回归GBLUP(最经典)、SSGBLUP、KRR、SVR
离散性状(抗病性 0/1)分类Logistic 回归、SVM 分类、随机森林、XGBoost
多性状联合预测多任务回归多性状 GBLUP、多任务神经网络

七、小结

  1. GS 是战略,GP 是技术

    • GP 预测表型/GEBV → GS 按分数选种。

  2. 表型值 vs GEBV

    • 表型值:当前表现,受环境影响,用作训练标签

    • GEBV:遗传潜力,核心用于选种

  3. 特征处理

    • GP/GS 通常不删除 SNP,而是给不同特征分配权重

    • 通过正则化或核函数让无关 SNP 权重接近 0

  4. 模型选择

    • 连续性状 → 回归模型(GBLUP、SVR、KRR 等)

    • 离散性状 → 分类模型


GP 用基因数据预测(表型/GEBV),GS 用预测结果选种。GP/GS 的核心在于如何建模 SNP 效应:不是删特征,而是合理分配权重。

http://www.xdnf.cn/news/1360747.html

相关文章:

  • 网络安全转型书籍清单
  • 【Java开发日记】我们来讲一讲 Channel 和 FileChannel
  • 深度学习之第一课深度学习的入门
  • VirtualBox安装openEuler24.03
  • daily notes[5]
  • 前端 vs 后端请求:核心差异与实战对比
  • 05 线性代数【动手学深度学习v2】
  • 中介者模式与几个C++应用实例
  • imx6ull-驱动开发篇39——Linux INPUT 子系统实验
  • 【基础算法】初识搜索:递归型枚举与回溯剪枝
  • 【ElasticSearch】springboot整合es案例
  • Smooze Pro for mac 鼠标手势增强软件
  • 【C语言练习】青蛙跳台阶
  • Vue状态管理工具pinia的使用以及Vue组件通讯
  • 强光干扰下检出率↑93%!陌讯多模态融合算法在充电桩车位占用检测的实战解析
  • 力扣【1277. 统计全为1的正方形子矩阵】——从暴力到最优的思考过程
  • 【网络运维】Shell脚本编程:函数
  • 深度学习之第二课PyTorch与CUDA的安装
  • AOSP构建指南:从零开始的Android源码之旅
  • Docker 容器(一)
  • 【Docker基础】Docker-compose常用命令实践(三):镜像与配置管理
  • 【零代码】OpenCV C# 快速开发框架演示
  • 电路学习(四)二极管
  • 【计算机视觉】CaFormer
  • Java:LinkedList的使用
  • 【Protues仿真】基于AT89C52单片机的温湿度测量
  • 【文献阅读】生态恢复项目对生态系统稳定性的影响
  • 在JavaScript中,比较两个数组是否有相同元素(交集)的常用方法
  • 解决编译osgEarth中winsocket2.h找不到头文件问题
  • Node.js自研ORM框架深度解析与实践