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
Population
Selection
Generation structure
Fitness
Search operators
Crossover
Mutation
- Fitness and Objective Functions
Bloat
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
Parallelization
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
acknowledgements
Thanks to all the students who took the course and provided valuable input into its structure and contents.
assistance
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.
Email: cgondro2@une.edu.au