Evolution Icon Evolution

Of Species and Software: What Is a Dependency Graph?

Dependency Graph

recent paper in the journal BIO-Complexity, authored by Winston Ewert, uses a dependency graph approach to model the relationships between the species. This idea is inspired by computer science which makes great use of dependency graphs for packaging of software and optimization of software architecture.

Complicated software applications typically use a wealth of lower level software routines. These routines have been developed, tested, and stored in modules for use by higher level applications. When this happens the application inherits the lower-level software and has a dependency on those modules.

A Design Diagram

Such applications are written in human-readable languages such as Java. They then need to be translated into machine language. The compiler tool performs the translation, and the build tool assembles the result, along with the lower level routines, into an executable program. These tools use dependency graphs to model the software, essentially building a design diagram, or blueprint which shows the dependencies, specifying the different software modules that will be needed, and how they are connected together.

Dependency graphs also help with software design. Because they provide a blueprint of the software architecture, they are helpful in designing decoupled architectures and promoting software reuse.

Dependency graphs are also used by so-called “DevOps” teams to assist at deployment time in sequencing and installing the correct modules for enterprise applications.

A Failed Model

What Ewert has developed is a model to explain the pattern of similarities in different organisms that mimics how computer applications inherit software from a diverse range of lower-level modules. Species seem likewise to use lower-level modules that perform a diverse range of biological applications. Ewert specifically studied how genomes incorporate various gene families which group into a wide range of genetic modules and how genetic modules feed into a diverse range of genomes.

Superficially, from a distance, the pattern of module use may appear similar to the traditional evolutionary tree. But that model has failed repeatedly as scientists have studied the characters of species more closely. Ewert’s initial research suggests that dependency graphs, on the other hand, could provide a far superior model of the relationships between the species, and their genetic information flow.

Cross-posted at Darwin’s God.