Prediction Models

easyPheno includes various phenotype prediction models, both classical genomic selection approaches as well as machine and deep learning-based methods. In the following pages, we will give some details for all of the currently implemented models. We further included a subpage explaining the Bayesian optimization that we use for our automatic hyperparameter search.

We provide both a workflow running easyPheno with a command line interface using Docker and as a pip package, see the following tutorials for more details:

In both cases, you need to select the prediction model you want to run - or also multiple ones within the same optimization run. A specific prediction model can be selected by giving the name of the .py file in which it is implemented (without the .py suffix). For instance, if you want to run a Support Vector Machine implemented in svm.py, you need to specify svm.

easyPheno automatically chooses based on the selected phenotype whether to use the implementation for a classification (discrete trait) or regression (continuous trait) task. All models except the classical genomic selection approaches (RR-BLUP and Bayesian alphabet models) provide an implementation for both cases.

In the following table, we give the keys for all prediction models as well as links to detailed descriptions and the source code:

Phenotype Prediction Models

Model

Key in easyPheno

Description

Source Code

Notes

Ridge Regression BLUP

blup

RR-BLUP

blup.py

Bayes A

bayesAfromR

Bayesian alphabet

bayesAfromR.py

requires Docker workflow

Bayes B

bayesBfromR

Bayesian alphabet

bayesBfromR.py

requires Docker workflow

Bayes C

bayesCfromR

Bayesian alphabet

bayesCfromR.py

requires Docker workflow

L1-regularized Linear / Logistic Regression

linearregression

Linear and Logistic Regression

linearregression.py

Regularization type in source code adjustable

Elastic Net-regularized Linear / Logistic Regression

elasticnet

Linear and Logistic Regression

elasticnet.py

Support Vector Machine / Regression

svm

Support Vector Machine / Regression

svm.py

Random Forest

randomforest

Random Forest

randomforest.py

XGBoost

xgboost

XGBoost

xgboost.py

Multilayer Perceptron

mlp

Multilayer Perceptron

mlp.py

Convolutional Neural Network

cnn

Convolutional Neural Network

cnn.py

Local Convolutional Neural Network

localcnn

Local Convolutional Neural Network

localcnn.py

If you are interested in adjusting an existing model or its hyperparameters: HowTo: Adjust existing prediction models and their hyperparameters.

If you want to integrate your own prediction model: HowTo: Integrate your own prediction model.