前面我们已经介绍了基因组选择的各类模型,今天主要来了解一下做GS有哪些可用的软件和工具。基因组选择处在热门研究阶段,每年都有不少新工具开发出来,可分析的软件非常之多,为了便于大家更加清晰地了解,这里我将它们分为免费开源包/库、成熟软件、WEB/GUI工具三类,用户使用难度依次降低。
1. 免费开源包/库
R和Python语言作为开源软件的代表,在数据分析领域有着不可替代的优势。近几年大部分GS分析软件都是由这两种语言开发。免费开源的R包或者Python库使用起来比较灵活,可根据用户的具体需求随时变化参数来获得最佳性能,但对使用用户而言需要有一定的数据分析基础。
1.1 R包
-
rrBLUP
https://cran.r-project.org/web/packages/rrBLUP/rrBLUP.pdf
主要用于建立RRBLUP模型,可估计每个SNP的效应值。 -
sommer
https://cran.r-project.org/web/packages/sommer/sommer.pdf
更新较频繁,不同版本的用法可能稍有差异。可求解各种混合效应模型,包括RRBLUP和GBLUP经典模型。 -
BGLR
https://github.com/gdlc/BGLR-R
主要用于建立Bayes类模型,包括BayesA、BayesB、BayesC、BayesCpi、BRR、BL、RKHS,也可用于建立GxE、多性状等复杂模型。 -
brnn
https://cran.r-project.org/web/packages/brnn/brnn.pdf
全称贝叶斯正则化前馈神经网络(Bayesian regularization for feed-forward neural networks),专门建立brnn模型,计算比较耗时。 -
HIBLUP
https://hiblup.github.io/
基于BLUP方法的分析工具,可实现ABLUP/PBLUP、GBLUP、SSBLUP等模型。具体可包括A、G、H矩阵构建,AI、EM等多种方差组分估计方法,以及混合模型方程求解等。 -
BWGS
https://cran.r-project.org/web/packages/BWGS/BWGS.pdf
针对小麦基因组选择分析开发的R包,同样适用于其他作物。整合了BLUP、Bayes和机器学习三类方法,其实就是整合了单独分析这三类方法的R包,如rrBLUP、BGLR、glmnet、randomForest、brnn、e1071等。主要函数有交叉验证建模和表型预测两个。 -
synbreed
http://synbreed.r-forge.r-project.org/
很古老的R包,实现的功能有数据预处理、可视化及统计建模,包括BLUP和贝叶斯类方法。 -
cpgen
https://github.com/cheuerde/cpgen
可建立BLUP、Bayes模型,还可以做GWAS,特点是能实现多线程并行化计算。 -
GSMX
https://cran.r-project.org/web/packages/GSMX/GSMX.pdf
多变量基因组选择分析工具。主要用于估计性状遗传力和处理过拟合。 -
PopVar
https://cran.r-project.org/web/packages/PopVar/PopVar.pdf
可建立常见的RRBLUP、BayesA/B/C、BL、BRR等模型,特点是可以根据双亲群体的子代作为训练群体来预测双亲。此外也可进行多性状分析。 -
BGGE
https://cran.r-project.org/web/packages/BGGE/BGGE.pdf
基于贝叶斯方法建立GxE模型。 -
GAPIT
https://www.zzlab.net/GAPIT/
主要用于GWAS分析,内置了作者提出的sBLUP和cBLUP方法。此外,作者专门开发出GUI工具iPat,详见第三节。 -
KAML
https://github.com/YinLiLin/KAML
在BLUP方法LMM的基础上,通过改变遗传结构方法,如将pseudo-QTNs设为协变量,将某特异性状赋予权重优化亲缘关系矩阵等。可搭配HIBLUP使用。 -
snpReady
https://cran.r-project.org/web/packages/snpReady/vignettes/snpReady-vignette.html
不是专门做GS建模的R包,主要用来做SNP的预处理,包括质控、G矩阵处理、群体遗传汇总。 -
GSelection
https://cran.r-project.org/web/packages/GSelection/GSelection.pdf
分析功能包括特征选取、特征去冗余、方差估计、表型预测等。 -
MTGS
https://rdrr.io/cran/MTGS/
全称Genomic Selection using Multiple Traits,用于多性状分析。但此包已被CRAN移除,只能源码安装旧版本。 -
BMTME
https://cran.r-project.org/web/packages/BMTME/BMTME.pdf
全称Bayesian Multi-Trait Multi-Environment for Genomic Selection Analysis,基于贝叶斯模型的多环境和多性状分析。 -
DeepGS
https://github.com/cma2015/DeepGS
通过卷积神经网络算法来预测表型,并集成了RR-BLUP模型,提高预测性能。 -
机器学习用于GS的常见R包:如randomForest、glmnet、e1071、mxnet等。
-
混合线性模型分析的常见R包:lme、lme4、nlme、MCMCglmm等。
1.2 Python库
-
SeqBreed
https://github.com/miguelperezenciso/SeqBreed
主要能实现常见的BLUP类模型,也可以灵活地评估特定场景中地遗传结构,如QTN数目、作用及性状数量等来提升预测性能。 -
常见机器学习Python工具:经典机器学习模块如sklearn,深度学习框架如Karas、TensorFlow、PyTorch等。
2. 成熟软件
动物基因组选择发展较早,因此成熟的遗传评估软件一开始是专门为动物育种而设计开发,只有其中一部分功能适用于植物育种。
早期的软件一部分是商业软件,使用需付费。一部分虽然免费,但允许使用的数据量小,商用需授权。它们大多用FORTRAN、C等语言编写,运行稳定且运算较快。但模型比较单一,基本都是通过混合线性模型来评估遗传参数,建立的大多是BLUP类模型。
近几年越来越多的高性能免费软件趋于成熟,随着海量数据的积累和实际应用的需求,这类软件将显得越来越重要。
-
ASREML
https://www.vsni.co.uk/software/asreml
包括ASReml-W和ASReml-R,专门用于海量数据的混合模型分析,可评估许多重要的遗传参数,运算较快。仅应用BLUP类方法。 -
BLUPF90
http://nce.ads.uga.edu/wiki/doku.php
BLUPF90系列程序是Fortran 90/95中的软件集合,用于动物育种中的混合模型计算。 -
DMU
https://dmu.ghpc.au.dk/
历史悠久,主要用于动物数量遗传评估。功能包括估计方差组分和固定效应,预测育种值。 -
MixBLUP
https://www.mixblup.eu/
动物育种软件,结合系谱和基因组信息基于BLUP方法估计育种值。 -
WOMBAT
http://didgeridoo.une.edu.au/km/wombat.php
为动物育种开发,使用REML估计方差组分。 -
PIBLUP
https://github.com/huiminkang/PIBLUP
各类BLUP模型构建,包括加性、显性和上位性矩阵。虽然用R编写,但使用了多线程并行运算,加入了数学核心函数库,使用预处理共轭梯度等方法加快了运算速度。 -
GVCBLUP
https://animalgene.umn.edu/gvcblub
在GBLUP基础上可对加性和显性效应进行基因组预测和方差成分估计。 -
JWAS
http://reworkhow.github.io/JWAS.jl/latest/
Julia语言编写,基于贝叶斯多元回归方法。对固定和随机效应无限制,且可用于多性状分析。
3. WEB/GUI工具
基于网页或图形界面的工具目前还较少,因此对于普通用户使用GS技术,仍有一定的门槛。以下几个工具仅供参考。
-
GS1.0
http://www.rmbreeding.cn/tool/gs1.0
基于GBLUP的水稻基因组选择在线分析模块,要求输入基因型、表型和亲缘关系矩阵三个文件。 -
solGS
https://cassavabase.org/solgs
基于RRBLUP模型建立的web工具。 -
iPat
http://zzlab.net/iPat/#!
图形用户界面GUI工具,可单独进行GS(包括BLUP和贝叶斯类模型,内置rrBLUP、BGLR等R包),也可结合GWAS辅助GS分析。
以上仅列出了常见的GS分析工具及其简介,更多的软件未能一一列出(如数据前期的清洗、指标评价、数据可视化等),具体的用法也可以去查看对应的文档。