Computational biology involves the development and application of data-analytical and theoretical methods, mathematical modeling and computational simulation techniques to the study of biological, ecological, behavioral, and social systems. The field is broadly defined and includes foundations in biology, applied mathematics, statistics, biochemistry, chemistry, biophysics, molecular biology, genetics, genomics, computer science, and evolution.
Computational biology has assisted the field of evolutionary biology in many capacities. This includes:
- Using DNA data to reconstruct the tree of life with computational phylogenetics
- Fitting population genetics models (either forward time or backward time) to DNA data to make inferences about demographic or selective history
- Building population genetics models of evolutionary systems from first principles in order to predict what is likely to evolve.
Computational evolutionary biology (or computational evolution) is the study of evolutionary biology using computers. This makes it a fuzzy sub-discipline of computational biology, overlapping with bioinformatics and computational genomics. It is not evolutionary computation, evolutionary programming or evolutionary algorithms, all of which apply evolutionary principles to optimization problems outside biology. Evolutionary computation is the area of computer science and engineering that concerns itself with algorithms derived from formalizing natural evolution. This is part of a larger effort to draw inspiration from biological systems for computational purposes. Evolutionary computation methods have been used to solve optimization problems, to model systems, and to recognize patterns among other application tasks. Due to their reliance on stochasticity, they are characterized as heuristic search methods. The main features of evolutionary computation methods are their reliance on populations of searchers, the stochasticity of the search processes through mutation and recombination operations, and the application of relative strength as their selection criterion.
The methods involved in computational evolutionary biology are diverse. They include:
Bioinformatics algorithms for clustering, tree-building, sequence alignment, machine learning etc. that mine and analyze large-scale data. Their uses include:
- building phylogenetic trees to discover evolutionary relationships between species
- deciphering the evolutionary history of specific genes and traits
- studying the rate of evolution and selection pressures on particular genes
- address fundamental evolutionary questions from an empirical perspective
Numerical simulations such as individual-based models, agent-based models, and spatially explicit models. These are used to:
- explore evolutionary dynamics of species and their interactions
- predict evolutionary events such as speciation and extinction
- support mathematical models of complex phenomena, such as individual development and cooperation in groups
- link the predictions of idealized mathematical models with behavior of real systems, such as the evolution of bacterial drug resistance and long-term behaviour of epidemics
Artificial life explores the foundations of biology as a computational phenomenon by creating algorithms that evolve freely within an environment specified by the programmer. Examples include Tierra and Avida, cellular automata and evolving neural nets. A key driver of evolvability is the widespread modularity of biological networks, their organization as functional, sparsely connected subunits but there is no consensus regarding why modularity itself evolved.
While most hypotheses assume indirect selection for evolvability. Experiments with selection pressures to maximize network performance and minimize connection costs yield networks that are significantly more modular and more evolvable than control experiments that only select for performance.