# Modern Programming in Genomic Prediction
### Authors: Rohan Fernando, Hao Cheng
### License: GNU General Public License v2.0
The purpose of this short course is to help you develop skills in computer
programming and algorithm development useful for research projects and applications
in quantitative genetics, especially genomic prediction. Julia, which is a modern
programming language, will be used for this course. It is assumed that you have
some programming experience, and concepts in genomic prediction will be introduced
through examples. The focus of this course is not Julia. Rather, it is the use of
Julia for applications in quantitative genetics. These include:
* Mixed effects models with polygenic, maternal and permanent environment effects
* Use of pedigree information
* Iterative methods for solving linear systems, e.g, Jacobi, Gauss–Seidel
* GBLUP and Bayesian alphabet
* Variance component estimation
* Single-step methods
```mermaid
graph LR
A[Phenotypes] -- CSV.read --> B((build_model))
E[Pedigree] -- get_pedigree --> B((build_model))
F[Genotypes] -- get_genotype --> B((build_model))
B -- set_random --> D{??}
B -- set_covariate --> G{??}
G -- runMCMC --> C(??)
D -- runMCMC --> C(??)
```
### Useful resources
* [Matrix Cookbook](https://www.math.uwaterloo.ca/~hwolkowi/matrixcookbook.pdf)
* [Julia Cheatsheet]([http://qtl.rocks/notes/JuliaCheatSheet.pdf](http://qtl.rocks/notes/JuliaCheatSheet.pdf))
<!--stackedit_data:
eyJoaXN0b3J5IjpbMjUwNjM1MjUyXX0=
-->