Application of evolutionary algorithms
in quantitative genetics and bioinformatics

The focus of this introductory course is on using evolutionary computation (EC) for optimization of biological problems. Course notes and examples were developed by Brian Kinghorn and Cedric Gondro. This is an applied hands-on course.The notes and examples are rather dated already but should still provide a good introductory overview of EC for biologists. 


main topics

  • Overview of evolutionary algorithms
        Problems not for evolutionary algorithms
        Problems for evolutionary algorithms
    Architecture of an evolutionary algorithm in a nutshell
    Deterministic versus stochastic methods
    Types of optimization strategies how to solve a problem
  • Non EC stochastic heuristic methods
    Types of Evolutionary Algorithms and problem matching
        Evolutionary Programming (EP)
        Evolution Strategies (ES)
        Genetic Algorithms (GAs)
        Genetic Programming (GP)
        Learning Classifier Systems (LCS)
        Differential Evolution (DE)
        Gene Expression Programming
  • Computational representation and implementation
        Generation structure
        Search operators
  • Fitness and Objective Functions
    Managing constraints
        How to apply constraints
        Hard and soft constraints
    Changing goal posts
        How to manage change of direction
        Opportunities for changing direction
    Multicriteria optimization
    Self-evolving parameters
    Hybrid Evolutionary Algorithms
    Hybrid Algorithms
    Diagnosing convergence
        Criteria for stopping

why use EC?

This course aims to share some knowledge and skills that have greatly benefitted the presenters. The development of evolutionary algorithms is not a hard science - there are tips and tricks, and opportunities for tweaking.  There is an art to developing and using these algorithms, and much of the content of this course relates to personal experience and discoveries made in applications related to quantitative genetics and bioinformatics.  However applicability is very wide indeed. The process of evolution has brought about great complexity in a simple manner.  Biology is mind-bogglingly complex, even to our shallow level of understanding.  How could all of this have happened?  How could massive sequence and other components be derived to result in life as we see it? Working with evolutionary algorithms to solve complex problems gives some intriguing insight - it helps to give realization that indeed complex outcomes can come from a relatively simple process. As practitioners setting out to solve complex problems, we are not constrained to the systems of replication and propagation that we see in biology.  We can engineer our own systems to give faster and more robust evolutionary change towards solutions for the prevailing problem. We can target our outcomes in a more controlled yet flexible manner than in biological evolution.  We can explore the changes that could be made, and use this information to help set target outcomes for our prevailing problems - we can make a steering wheel.

To get started just download practicals, slides and course notes from the DOWNLOAD link above.

some examples of biological applications using evolutionary computation

Gondro, C., E. M. Strucken, H. K. Lee, K. D. Song and S. W. Lee (2014). Selection of SNP Panels for Parentage Testing. Proceedings of the 10th World Congress on Genetics Applied to Livestock Production.

Gondro, C. and P. Kwan (2012). "Parallel evolutionary computation in R". Multidisciplinary Computational Intelligence Techniques: Applications in Business, Engineering and Medicine. S. Ali, N. Abbadeni and M. Batouche. IGI Global: 351-377.

Gondro, C. and B. P. Kinghorn (2008). Optimization of cDNA microarray experimental designs using an Evolutionary Algorithm. IEEE Transactions on Computational Biology and Bioinformatics 5(4): 630-638.

Gondro, C. and B. P. Kinghorn (2007). Solving complex problems with evolutionary computation. Proceedings of the 17th Conference of the Australian Association for the Advancement of Animal Breeding and Genetics (invited). 17: 272-279.

Gondro, C. and B. P. Kinghorn (2007). A simple genetic algorithm for multiple sequence alignment. Genetics and Molecular Research 6(4): 964-982


Thanks to all the students who took the course and provided valuable input into its structure and contents.


If you have any comments, questions, suggestions or find any bugs please let me know. To organize a short couse at your institution just contact me at the email address below.