Bioinformatics studies the application of computer science techniques to problems arising in biological sciences through the use of algorithms, databases, concepts and several other information technologies. Within computer science, we have evolutionary computation, which uses metaheuristics based on the principle of the survival of the fittest from Charles Darwin’s evolutionary theory in order to solve optimization and classification problems.
This work deals with the solution of a problem from bioinformatics known as the inference of models of gene regulatory networks, using evolutionary computation and parallel techniques. The evolutionary algorithm adopted for this work is differential evolution. Such an algorithm was chosen due to its well-known efficiency (as reported in the specialized literature) when solving optimization problems in which all the decision variables are real numbers.
Gene regulatory networks are sets of genes that interact with each other, affecting the expression levels of the genes involved in the network. Inferring the behavior of gene regulatory networks is a computationally expensive process. Thus, the use of high performance computing is an attractive choice within this domain. Recently, and thanks to the technological advances in the development of graphical processing units (GPUs), they have been adopted as an economical and very efficient alternative for high performance computing.
In this work, we present what seems to be the first GPU-based implementation (using CUDA) of differential evolution for solving the problem of inferring models of gene regulatory networks. Our implementation adopts systems of differential equations (called S systems) for modelling the dynamism of the expression levels that occur in the regulatory networks of our interest.
The results presented in this work show that the use of parallel computing through the use of GPUs produces an important reduction in the computational time required to solve this expensive optimization problem. The results shown here indicate reductions of up to 140 times in the computational time required for one execution of our optimization algorithm, with respect to its sequential version.