Organismal development and many cell biological processes are organized in a modular fashion, where regulatory molecules form groups with many interactions within a group and few interactions between groups. Thus, the activity of elements within a module depends little on elements outside of it. Modularity facilitates the production of heritable variation and of evolutionary innovations. There is no consensus on how modularity might evolve, especially for modules in development. We show that modularity can increase in gene regulatory networks as a byproduct of specialization in gene activity. Such specialization occurs after gene regulatory networks are selected to produce new gene activity patterns that appear in a specific body structure or under a specific environmental condition. Modules that arise after specialization in gene activity comprise genes that show concerted changes in gene activities. This and other observations suggest that modularity evolves because it decreases interference between different groups of genes. Our work can explain the appearance and maintenance of modularity through a mechanism that is not contingent on environmental change. We also show how modularity can facilitate co-option, the utilization of existing gene activity to build new gene activity patterns, a frequent feature of evolutionary innovations.
Throughout life's history, organisms have produced evolutionary innovations, features that are useful when facing new ecological and environmental challenges. A property that aids in the production of such innovations is modularity. Modular systems consist of groups of molecules with many interactions within a group but fewer interactions between groups. Such modularity increases the chances of innovation, because it allows changes inside one module without perturbing others, and because it permits redeployment of modules to create new biological functions. We simulate the evolution of gene networks known to be important in development to show that modularity increases when selection favors specialization in gene activity. Specialization occurs wherever new cell types, organs, or other body structures arise. In the course of this process gene networks acquire the ability to produce new gene activity patterns specific to these structures. We also demonstrate how modularity favors the evolution of new gene activity patterns that make use of already existing modules. Because specialization in gene activity is very common in evolution, the mechanism that we put forward may be important for the origins of modularity in gene regulatory networks.
Citation: Espinosa-Soto C, Wagner A (2010) Specialization Can Drive the Evolution of Modularity. PLoS Comput Biol 6(3): e1000719. doi:10.1371/journal.pcbi.1000719
Editor: M. Madan Babu, MRC Laboratory of Molecular Biology, United Kingdom
Received: October 14, 2009; Accepted: February 23, 2010; Published: March 26, 2010
Copyright: © 2010 Espinosa-Soto, Wagner. This is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
Funding: The research leading to these results has received funding from the European Community's Seventh Framework Programme FP7/2007-2013 under grant agreement no. PIIF-GA-2008-220274. We would also like to acknowledge support from Swiss National Science Foundation grants 315200-116814 and 315200-119697, as well as from the YeastX program of The Swiss Initiative in Systems Biology. The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.
Competing interests: The authors have declared that no competing interests exist.
Most functions and structures in cells and organisms can be decomposed into smaller elements that are organized into modules ,. Such modules exist on many levels of organization, ranging from proteins and RNA to complex organs . A module is a group of elements (transcription factors, signaling proteins, etc.) whose interactions occur preferentially within the group. Such an arrangement means that the activity of elements within a module depends little on elements outside of it. Thus, a module can also be viewed as a semi-autonomous entity that evolves, functions or participates in development (or other processes) relatively independently from other modules ,,. Modularity can enhance evolvability, an organism's capacity to generate adaptive heritable variation, for two reasons. First, the organization of biological systems into modules may permit changes inside one module without perturbing other modules. Second, modules can be combined and reused to create new biological functions –.
Despite much recent interest in modularity , there is no consensus on the mechanisms that could explain its evolution . Several scenarios have been proposed for the origin and maintenance of modules . Two scenarios stand out, because they require conditions that organisms may encounter especially frequently. The first involves a combination of directional selection and stabilizing selection ,, the second involves modularly-varying evolutionary goals .
Modularity might result from directional selection favoring change in one trait while stabilizing selection maintains other traits unchanged ,. Correlations between different traits can hamper both the favorable constancy of some traits and the change that in other traits would be beneficial. Under this scenario, modularity arises because the combination of directional and stabilizing selection breaks pleiotropic interactions that cause fitness trade-offs between several traits, thus allowing an escape from adaptive constraints ,. During most adaptive evolution only a few traits change while many traits are under stabilizing selection ,. Therefore, this mechanism may be a common way to evolve modularity. However, despite its eminent plausibility, population genetics models aiming to use this mechanism to produce an increase in modularity fail to do so. The reason may be their overly simple genotype-phenotype map .
An environment that fluctuates modularly may pose alternative evolutionary goals composed of similar sub-goals to an organism. According to previous research, such modular fluctuations in evolutionary goals can be sufficient to produce and maintain modularity . In support of this scenario's importance speaks the fact that environmental fluctuation is ubiquitous. Examples include temporal variation in nutrient availability, temperature changes, changes in salinity, and many other environmental factors. Metabolic networks of bacteria living in changing environments are usually more modular than those of bacteria living in stable environments, an observation that also supports the modularly-varying goals scenario . This scenario is the best current candidate for the origin of modularity in fluctuating environments. At the same time, the requirement of frequent changes in adaptive goals to maintain modularity  makes this scenario irrelevant where environmental demands do not fluctuate. This holds for many developmental and morphological traits. For instance, the gene network that is responsible for segment polarity in Drosophila melanogaster and other insects is a prominent example of a robust module in gene networks –. Genes in this network seem to perform similar functions in a wide range of taxa where segments are generated through otherwise disparate processes ,. It seems unlikely that such a network retains its independence from other factors because environmental demands on the fly's segments fluctuate modularly to this day. In addition, although environmental change is certainly frequent, the extent to which environments vary modularly is unclear. Hence, the importance of the fluctuating-environment mechanism in creating modularity is not yet proven.
Questions about modularity are questions about the structure and organization of the processes that construct phenotypic traits. Development unfolds through a sequence of gene expression states that play a major role in determining phenotypic traits . In this progression some genes affect each other's activity in a network-like manner. The gene regulatory networks formed by these genes often behave modularly. For example, they maintain their intrinsic behavior even when perturbed externally, or when functioning in different contexts, such as the different parts of an organism , –. The gene activity patterns they produce are specific to particular regions of the organism or to different stages of development, and they drive specific developmental events.
In this contribution, we study the conditions under which a gene regulatory network becomes partitioned into different semi-autonomous modules. We here show that modularity can arise in gene regulatory networks as a byproduct of specialization in gene activity. Such specialization involves the evolution of new gene activity patterns that arise in a specific body part or under specific environmental conditions that organisms encounter throughout their lifetime. Namely, we show that networks that attain a gene activity pattern I increase their modularity when selection favors a second activity pattern II, provided that: i) Selection still favors I, so that evolved networks are able to produce both I and II, and ii) Patterns I and II share the activity state of some genes. Those genes with an activity state unique to pattern I or II have roles that are specific to their location or time of expression. Modularity arises because interactions between genes with shared and specific activities obstruct either the constancy of the former or the ability of the latter to attain different combinations of activity states. Hence, such interactions are selected against, so that the dynamics of one set of genes is affected little by the dynamics of the other set. We also show that the increase in modularity in gene networks modifies developmental constraints, thus facilitating the evolution of new additional gene activity patterns that make use of already evolved modules.
For our study we consider a network of genes. Each gene's activity state is regulated by other genes in the network. The genotype of an individual is defined as the set of the interactions among its genes. We represent this set of interactions as a matrix . Non-zero elements in indicate activation () or repression () of gene exerted by gene . The state of the network at time is described by a vector . A certain gene at time can be either active () or inactive (). We model the change in the activity of the genes in the network according to the difference equation(1)where equals if , and it equals in all other cases.
Despite its simplicity, variants of this model have been successfully used to study how robustness can evolve in gene regulatory networks –, how robustness can aid in evolutionary innovation ,, and how recombination can produce negative epistasis . Moreover, similar models have been successfully used to predict the dynamics of developmental processes in plants and animals ,.
For our purpose, we consider that a phenotypic trait is defined by an attractor, a stable gene activity pattern resulting from the dynamics of a gene regulatory network. Attractors are often associated with developmental end-states and ‘outputs’ of developmental mechanisms , –.
In order to study the evolution of modularity in gene regulatory networks, we implemented evolutionary simulations that consisted of iterative rounds of mutation and selection in populations of networks. In these simulations, we compared a set of reference gene activity patterns to actual network attractors, so that networks with attractors that were similar to the selected activity patterns had higher fitness than others (see Methods). To quantify the modularity of networks in our model, we used an algorithm  that identifies modules as non-overlapping densely connected groups of nodes with sparser connections between groups (see Methods). Thus, if genes in individual modules interact with many genes outside their module, the autonomy of the modules decreases, which would be reflected in a lowered modularity score.
Specialization increases modularity
To find out whether specialization can increase modularity, we studied 200 independent evolving populations of gene regulatory networks (eq. 1). Each of these populations was started with identical networks, and was subject to 500 generation cycles of mutations and selection towards attainment of a fixed-point attractor I (see Methods for details). The number of generations was chosen to ensure that networks that stably attain I can arise in the population. After gene activity pattern I had evolved, we allowed the population to evolve for 1500 more generations, but selecting for attainment of gene activity pattern I and a new pattern II during this time. Under this selection regime, the fittest networks were those capable of stably attaining I and II from different initial conditions that may occur in different parts of a multicellular organism. In other words, selection maintained the ability to attain I while at the same time favoring acquisition of II. Pattern II was chosen such that half of the network genes had identical (shared) expression states in I and II, and the other half differed in their activity state (Figure 1A). We chose such activity patterns because we hypothesized that interactions between genes with shared activity states and the rest of the genes would obstruct either i) the constant activity state of the former, or ii) the capacity of the latter to acquire different activity states independently of genes with constant activity states. If so, interactions between the different sets of genes may be selected against, thus resulting in two sets of genes with only sparse connections between them.
(A) Activity patterns I and II share the activity state of genes 0–4 and differ in that of genes 5–9. Black and white squares represent inactive and active genes, respectively. (B,C) The horizontal axes indicate mean modularity after selection for I. The vertical axes show modularity in networks after selection for both I and II. Specifically, (B) shows modularity of the network with highest fitness, and (C) shows mean population modularity. Points above the identity line (solid diagonal) show populations in which modularity increases after selection for the second activity pattern. The length of bars indicates one standard deviation. Plots show results for 200 evolving populations. (D,E) Nodes filled with the same color represent genes that lie in the same module. Black edges represent interactions between genes in different modules. (D) Network with the highest fitness in a population after selection for I. The Newman algorithm  partitions this network into sets in which genes 0–4 and 5–9 are intermingled. This network has a non-normalized modularity of 0.18, and a normalized modularity equal to −0.1. (E) Network with the highest fitness in a population after selection for I and II. This network is partitioned into modules in which genes with shared (genes 0–4) and different (genes 5–9) activity states in I and II lie apart. This network has a non-normalized modularity of 0.39, and a normalized modularity equal to 0.7.
In most of the 200 evolving populations, modularity increased after evolving towards the attainment of both I and II. We observe this increase both in the networks with the highest fitness in the population (Figure 1B; Wilcoxon signed-rank test; ; ), and when averaged over all networks in a population (Figure 1C; Wilcoxon signed-rank test; ; ). Figures 1D,E show an example of how modularity increases after selection for attainment of activity patterns I and II. Modularity does not increase when selection for II is absent, nor when networks evolve in the absence of selection (Figure S2). The increase in modularity is not transient because it is maintained around the same level, at least for 10,000 additional generations, when selecting for both I and II (Figure 2).
Modularity in the best adapted networks reaches a plateau that is maintained for, at least, 10,000 generations when selected to attain gene activity patterns I and II. Such plateau is significantly higher than that of networks selected to attain only activity pattern I. The length of bars represents one standard error. The plot shows results for 100 evolving populations in each selection regime.
We next verified that our results were insensitive to changes in model assumptions and parameters. We first decreased the mutation rate , and even though the time required to evolve activity patterns I and II then increases, modularity still increases significantly (; Figure S3A). Modularity increases as well when is increased (; Figure S3B). We next asked whether our observations were sensitive to the assumption that individual gene activity patterns contribute to fitness additively. Changing this assumption to multiplicative fitness contributions still leads to a significant increase in modularity (Figure S4). In addition, the increase in modularity also occurs for networks containing more genes (; Figure S5), suggesting that such behavior does not depend on the number of genes in a network.
In a next analysis, we asked whether the increase in modularity depends on the identity of gene activity states I and II. We found that it does not, as long as some genes have the same activity state in the two patterns. For example, modularity also increases when the activity patterns differ in the activity of either three or seven genes (Figure S6A,B). Moreover, modularity increases when both the first and the second gene activity patterns are randomly chosen, except that pairs with fewer than two different activity states are discarded (Figure S6C, based on 100 populations with different pairs of activity patterns). In contrast, modularity does not increase when all genes in the activity states I and II differ in their expression (Figure S6D). This result is not due to a lack of adaptation, since networks able to attain both activity patterns arise in all evolving populations. Taken together, these observations show that modularity does not only increase for specific gene activity patterns, but that it is a generic evolutionary response. Moreover, the distinction between two sets of genes, those with identical and those with different activity in both expression patterns, is essential for the evolution of modularity. That modularity increases only in this case suggests that modules arise as a means of diminishing the effects of genes with unchanging activity on genes with changing expression in I and II, and vice versa. If so, modules should correspond to sets of genes that are required to switch their activity in a concerted manner. The following section shows that this is the case.
Modularity partitions networks according to genes with shared and unique activity states
Having established that the evolution of modularity requires genes with both shared and different activity states, we next asked whether the partitioning of modules is congruent with these two sets of genes. In other words, does one module tend to involve the genes with shared activity states, whereas another involves genes with different activity states in I and II? We evolved 300 network populations, first towards activity pattern I and later towards both I and II, depicted in Figure 1A. Throughout evolution, we determined for one of the best adapted networks in each population: i) the frequency at which two genes with activity states shared in I and II occur within the same module, ii) the frequency at which two genes with different activity states in I and II occur within the same module, iii) the frequency with which a specific gene with a shared activity state and a gene with a non-shared activity state are in the same module (Figure 3A). As selection for I and II occurs, and increase, while decreases (Figure 3B). This observation tells us that genes with activity states that change concertedly throughout all the selected activity patterns – be they shared or not – will tend to be included in the same module, and kept apart from other genes. This is exemplified in Figure 1D,E, which compares one of the optimal networks after selection for I with one of the optimal networks after selection for both I and II. The latter is partitioned into modules in which genes with shared and distinct activity states in I and II lie apart. Thus, the structure of modules reflects the manner in which selection has molded the traits, as has been previously suggested .
(A) represents the frequency at which two specific genes whose activity is the same in I and II occur within the same module. stands for the frequency at which two specific genes with non-shared activity states that change in a concerted manner occur within the same module. represents the frequency with which two genes, one with a shared activity state and the other with a different activity state in I and II, are in the same module. (B) As selection for activity patterns I and II starts, and increase but decreases. The plot shows results for 300 evolving populations.
Modularity increases further after selection of a third activity pattern
We also tested whether modularity arises only where selection favors the attainment of two gene activity patterns, or whether it increases further with even more gene activity patterns. To this end, we analyzed 100 evolving populations in which selection first favored a gene activity pattern I (500 generations), then an additional pattern II (I+II, next 1,500 generations), and then a third pattern III (I+II+III, last 3,000 generations). The patterns share the activity of some genes and differ in others. As selection for the third pattern begins, more and smaller groups of genes arise whose activity changes in a concerted manner (Figure 4A). Interactions between different such groups would obstruct evolutionary adaptation. Such interactions should thus be selected against, resulting in a further increase in modularity. Our observations confirm this hypothesis. After selection for patterns I and II, we observed a significant first increase in modularity (Wilcoxon signed-rank test; ; ). Modularity increased further after selection for pattern III (Figure 4B; Wilcoxon signed-rank test; ; ).
(A) Gene activity patterns I, II and III. White squares represent active genes and black squares represent inactive genes. Background color distinguishes genes that change their activity state in a concerted manner across all selected patterns. Notice that, in this case, the inclusion of additional activity patterns results in more and smaller groups of genes whose activity changes concertedly. (B) The horizontal axis indicates modularity of the best adapted networks after selection for I and II. The vertical axis shows modularity of the best adapted networks after an additional 3000 generations of selection for I, II and III. Wilcoxon signed-rank test; ; . The plot shows results for 100 evolving populations.
In addition, we observed an increased number of modules in networks with high fitness after selection for patterns I and II. Moreover, this number increases further after selection for patterns I, II and III (Figure S8B). This result suggests that the increase in modularity after selection for the three patterns occurs because of the appearance of new modules, and is not a mere consequence of the consolidation and refinement of previously evolved modules. We also analyzed how the probability of two genes being part of the same module changes across evolution. We found that the frequency of two genes occurring in the same module in the fittest networks of each evolving population changes according to whether those genes change their activity concertedly across the selected patterns (Figure S8C). For example, as we depict in Figures 4 and S8A, the activity of genes 5 and 6 changes concertedly across all activity patterns: if in one pattern gene 5 is active, then gene 6 is inactive in that same pattern, and vice versa. The frequency with which those genes lie in the same module increases across evolution. In contrast, the activity of genes 0 and 6 changes concertedly when selecting for patterns I and II, but not when also selecting for activity pattern III. Thus, the probability of those genes occurring in the same module increases prior to selection for pattern III. After selection for pattern III starts, the probability that genes 0 and 6 lie in the same module decreases abruptly (Figure S8C). These results show that the modules that arise after selection for the third pattern also tend to coincide with sets of genes whose activity states change concertedly throughout the selected patterns. Computational cost did not allow exploration of further increases in modularity via selection of additional gene activity patterns. However, our observations already suggest that modularity will increase as long as there is an increase in the number of gene groups for which concerted activity changes are favored.
Modularity facilitates co-option
A question recurring in the literature is how modularity may increase evolvability by facilitating co-option, the combination of previously evolved modules to perform new functions –, –. We addressed how the previous evolution of modules in gene regulatory networks biases future evolutionary potential by asking whether gene networks acquire new gene activity patterns faster if these patterns use gene activity states associated with previously evolved modules. Specifically, we selected networks for their ability to stably attain three gene activity patterns I, II and III (Figure 5A). We chose the specific combination of patterns in Figure 5A because: i) it promotes the evolution of a module including genes 0–4 and another module including genes 5–9, as shown above, and, ii) it allows the inclusion of an additional activity pattern (IV) that is composed entirely of activity states associated with previously evolved modules (Figure 5A,B). After 3,000 generations, we subjected networks in 100 evolving populations to selection favoring such an additional gene activity pattern IV (Figure 5B). Importantly, this pattern shares the activity states of genes 0–4 with III, and the activity state of genes 5–9 with II. Thus, gene activity pattern IV may evolve by combining previously evolved modules in a new manner. In addition, we repeated this approach in 100 “control” populations where the fourth favored gene activity pattern was randomly chosen with equal probability for genes being active and inactive. Notice that we do not expect that selection for activity pattern IV increases modularity, because the inclusion of this pattern does not cause an increase in the number of gene groups with concerted activity changes. Rather, we hypothesize that modularity facilitates the evolutionary acquisition of such an activity pattern, as compared to other activity patterns.
(A,B) Black and white squares represent inactive and active genes, respectively. (A) Networks first attained activity patterns I, II and III after 3,000 generations of evolution. The selection regime promotes the evolution of modules containing genes 0–4 on one hand, and genes 5–9 on the other. (B) After 3,000 generations, selection favored gene activity pattern IV, which is a combination of activity patterns matching those of previously evolved modules, as indicated by the background colors. (C) Networks selected to attain a fourth activity pattern increase their fitness much faster if this pattern is IV, than if it is a randomly chosen activity pattern. The length of bars indicates one standard error.
We found that networks with high fitness arise much more rapidly when IV is the new gene activity pattern. This indicates that pattern IV is much easier to attain than random gene activity patterns in populations of networks that have previously been selected for their ability to attain I, II and III (Figure 5C). The same trend occurs when not just the networks with highest fitness are considered, but also when we analyze mean population fitness (Figure S7). We note that in our analysis selection favors the attainment of IV to the same extent as the attainment of any one random gene activity pattern in the control populations. This means that our observations are not simply caused by a greater increase in fitness conveyed by IV. The fitness increase rather depends on how easily the new gene activity patterns can be constructed: it is easier to evolve gene activity patterns that combine activity states of previously evolved modules.
In sum, we showed here that modularity arises in gene networks when they acquire the ability to attain new activity patterns that share the activity state of some genes with old patterns. Our observations indicate that selection to attain the new activity patterns can cause modularity to arise in gene regulatory networks when pleiotropic effects obstruct adaptation ,,. Such pleiotropic effects are caused by interactions between (i) genes whose activity is shared between different patterns, and (ii) genes whose activity is specific to one pattern: If changes in the latter affect the former, evolutionary acquisition of the new pattern is hindered. Thus, the scenario we propose favors networks with few interactions between genes with an unchanging activity state and genes that adopt new regulatory functions. In this way, genes that have correlated activity states come to lie in the same network module (Figures 3 and S8C). Our results suggest that modularity increases as long as selection favors new activity patterns involving more and smaller groups of genes whose activity changes in a concerted manner (Figures 4 and S8).
Empirical falsification (or validation) of the mechanism that we propose ideally requires comparative analyses of the structure of gene regulatory networks in several related species. Such information might not be available soon. However, existing information from various sources suggests that the mechanism we propose could be important. Specifically, the evolutionary acquisition of new gene activity states by regulatory networks is ubiquitous in evolution, and nowhere more than in the evolution of development. It occurs wherever new cell types, organs, or body structures, arise from previously undifferentiated ones. Many examples in the literature suggest that some genes exhibit specialized activity in different parts of an organism, whereas others present shared activity patterns. Indeed, gene functions may be inferred via correlated gene expression patterns in conventional or high-throughput expression analyses –. For example, the activity of the same genes patterns both vegetative and floral meristems in the plant Arabidopsis thaliana. Floral identity genes are active exclusively in floral meristems, so that the floral structure is determined by both the floral identity genes and the shared patterning genes –. In the sea urchin Strongylocentrus purpuratus, some differentiation genes are active in the micromer lineage that produces the euechinoid exclusive embryonic skeleton and also in the independently derived juvenile skeletogenic centers that produce the adult skeleton . Some other genes of the gene network that specifies the skeletogenic micromere lineage are active in those cells but not in the juvenile skeletogenic centers. Examples include genes involved in induction of neighbouring cells or in triggering the initial stages of micromere specification ,. Another example involves the cellular level. Mammalian brown fat cells share some traits and gene activity patterns with white fat cells, and others with muscle cells . More generally, evolutionarily derived cell types usually perform just a fraction of the functions that ancestral cell types performed , a trend that will lead to similar activity states for some genes and different states for others in sister cell types.
In a similar vein, evolutionary specialization of initially homogeneous metameric units is likely to occur mainly by modifications (such as changes in the transcriptional circuitry) that result in metamers with different activity states of some genes but not of others; otherwise, differentiated metameric units would be hardly recognizable as such. For example, in D. melanogaster, limbs are positioned and patterned by mechanisms that are reiterated along the body, however limb identity relies on segment-specific mechanisms . Moreover, in heteronomous arthropods, in which the morphology of segments along an individual is very distinct, processes underlying segmentation and limb differentiation interact less than in homonomous arthropods, in which the segments along a body are very similar . Segment formation is performed throughout the organism (shared), and, in heteronomous taxa, limb identity determination is specialized according to the place where a limb develops. Thus, when there is specialization in limb identity, the two processes are more independent, in contrast to taxa that lack this specialization.
Co-option, the recruitment of previously evolved modules to perform new functions, is a common feature of evolutionary innovations ,,,,. A case in point regards the gene network regulating pharyngeal dentition in fish, which is co-opted to also generate oral dentition . Another example is the gene network that patterns the insect wing blade. It is co-opted to determine the localization of eyespots in butterfly wings . Our work shows that a modular network may readily generate new gene activity patterns that make use of gene activity states of previously evolved modules. The existence of such structured, or “facilitated” variation has been known for a long time –. Our work provides a candidate mechanism to create such variation, namely via network modularity that results from specialization in gene activity. Our observations could thus help explain the repetitive co-option of several modules, such as that responsible for proximal-distal polarity in lateral appendages and body outgrowths ,, or the achaete and scute module that operates in a wide range of developmental processes in animals .
An alternative hypothesis for the evolution of modularity is the ‘modularly-varying goals’ scenario . This scenario requires that populations are exposed to evolutionary goals that fluctuate over time, so that modularity can arise and be maintained. In contrast, our scenario requires specialization of gene activity, that is, new gene activity patterns must be attained while old activity patterns are preserved. Relatedly, the modularly-varying goals scenario requires genetic changes for evolutionary adaptation after an evolutionary goal changes. In contrast, our mechanism requires one genotype to produce different activity patterns under different conditions, conditions that may occur in different parts of a multicellular organism. In other words, in our scenario, modularity arises to avoid obstruction to attain different selected patterns within the same genotype. Our scenario may thus be more appropriate for traits where environmental demands are not constantly fluctuating, such as in the development of many morphological traits in plants and animals.
Thus far, we motivated our approach with the development of multicellular organisms. However, the approach could also explain modularity in unicellular organisms. For example, the metabolic networks of bacteria living in changing environments tend to be more modular than those of bacteria living in stable environments . Similar patterns may exist for gene regulatory networks. If so, the modularly varying goals scenario is not their only possible explanation. Unicellular organisms respond to changing environments by tuning their gene activity pattern. In other words, they usually have adaptively plastic phenotypes. For example, different sets of genes are activated or repressed when yeast cells are exposed to different environments –. Evolving the ability to switch gene expression according to the environment requires producing several alternative activity patterns, as we propose here. Importantly, some yeast genes change their expression concertedly in several environments, whereas others have responses that are specific to any one environment –. This observation suggests that the activity of some genes is shared across alternative activity patterns while the activity of other genes is particular to certain environments, as our model demands. In sum, because organisms in changing environments are required to produce different gene activity patterns according to the environment, our scenario can explain the evolution of modularity both in fluctuating and non-fluctuating environments.
A question that remains unanswered is whether our model applies to genotype-phenotype maps different from those of gene regulatory networks. A prominent example is metabolic networks, whose phenotypes are patterns of metabolic fluxes through network reactions. Our framework may apply to some instances of modularity in metabolic systems, as the following example illustrates. The main requirement of our model is an increase in the number of functions that a network must perform (i.e. in the number of selected gene activity patterns). The appearance of new functions in a metabolic network usually involves the production of new metabolites. Hintze and Adami  performed evolutionary simulations of an artificial metabolism in which the fittest metabolic networks were able to produce an increasingly diverse spectrum of metabolites. This selection regime resulted in increased modularity of metabolic networks, an observation consistent with the mechanism that we propose for gene regulatory networks.
Our work aimed at conceptual clarity by using only few essential assumptions in explaining the evolution of modularity. We therefore neglected many processes that doubtlessly play a major role in the evolution of regulatory gene networks. For example, we did not consider mutations changing the number of genes in a network, even though processes such as gene loss or duplication may be frequently involved in the appearance of new gene activity patterns. Similarly, the appearance of new body structures or cell types requires interactions among cells, tissues and organs. Such interactions ensure the proper placement of cells with the combination of general and specialized gene activity that is characteristic of specialization. The incorporation of these and other processes in future work will deepen our understanding of the evolution of modularity, and thus of evolvability.
We here identify modularity using one , of several algorithms aimed at identifying structural modules, densely connected groups of nodes with sparser connections between groups. The measure of modularity in this algorithm is a score that compares the abundance of intra-module connections between a given network to that of random networks with the same degree distribution . is defined as:(2)where denotes one of the prospective modules in a network, stands for the total number of edges in the network, represents the number of edges within module , and is the sum of the number of connections that each node in module has , –. The algorithm we use  identifies a partitioning of networks into modules that maximizes . We use this algorithm because of its computational efficiency and accuracy ,. We also explored different algorithms , and found that our results hold regardless of these choices.
Typical values of partitions that maximize intra-module connections in random networks vary depending on the number of nodes, edges and connectivity distribution . For example, the maximum value of a network varies as a function of the total number of edges in it . Hence, a fair comparison of modularity in different networks requires first addressing how atypical is in the best partition of each network when compared with random networks with the same attributes. Following  we use for normalization the equation:(3)where is the modularity returned by the Newman algorithm , for a certain network, stands for the average value of 1,000 random networks with the same number of genes and edges and the same degree distribution as the original network. values for these random networks are also calculated using the Newman algorithm. is the maximal value in these 1,000 random networks. The normalized modularity tells us how modular a network is in comparison to random networks with the same attributes. Non-normalized and normalized values render equivalent results in our analysis (Figure S1). Therefore, we restrict ourselves to report results for normalized modularity.
The fitness function we use compares a set of reference gene activity patterns to actual network attractors. Our fitness measure also incorporates the likelihood that an attractor is attained in the face of perturbations. In doing so, it takes into account not only the identity of an attractor but also its robustness, an important feature for the stability and reproducibility of developmental processes , , –.
For each gene activity pattern that contributes to fitness and for each network in our analysis, evaluation of fitness involved the following steps: i) The initial state of the gene network at time 0 was chosen to be a perturbation of the target pattern , drawn from a probability distribution where the initial state of each gene differs from that of with probability . ii) We carried out network dynamics (eq. 1) until some new attractor was reached; iii) We recorded the Hamming distance () separating from , and calculated the contribution to fitness of this developmental trajectory as ; modifications of by varying the exponent produce equivalent results. iv) We repeated steps i)–iii) 500 times to determine 500 values (). Notice that several of such 500 values would correspond to the same initial condition, and that the distribution of possible initial conditions is biased towards gene activity patterns similar to the reference pattern . This reflects our assumption, for the sake of simplicity, that selection favors similar initial conditions leading to the same selected activity pattern. We also assumed that gene activity patterns that are similar to the reference pattern are more likely to be required as initial conditions. Relaxation of such assumptions by variation in did not modify our results.
We then calculated the network's fitness as(4)where is the arithmetic mean of all . Wherever fitness needed to be evaluated for multiple gene activity patterns, we calculated the arithmetic mean of over these multiple patterns. Notice that selection is pushing the acquisition of different gene activity patterns that would appear under different conditions (such as different parts of the organism). Hence, the optimal networks will be those with dynamics that lead to different attractors matching the reference activity patterns, and not those with a single attractor that is a combination of the reference patterns.
Had we used multiplicative contributions to fitness then the benefits that result from attaining a gene activity pattern would have depended on the acquisition of all other activity patterns. Because our simulations start with selection for a single activity pattern, it was preferable to assume otherwise. Using additive contributions to fitness guarantees that networks that are not able to attain the new gene activity pattern still have a chance to contribute to the next generation. However, usage of multiplicative fitness contributions does not affect our results qualitatively.
For each simulation of gene network evolution, we first built a 10 node network and added 20 interactions at random to its interaction matrix . These interactions were activating or repressing, with equal probability. To construct the initial population we exposed 100 copies of this initial network to random mutation. Mutations occurred independently among different genes. A mutation of a gene either added a positive or negative interaction affecting the gene's activity, or eliminated one of the interactions that regulated the gene. Such mutations can be interpreted as changes in the regulatory regions of a gene, adding or eliminating cis-regulatory elements. Most of our results are based on a probability of a mutation occurring in a gene () of 0.05. This value of allowed adaptation within a tractable number of generations. Variation in did not affect our results, but only affected the time required for adaptation. For a gene undergoing mutation, we defined the probability of losing an interaction as(5)and the probability of acquiring a new interaction as . Here represents the number of regulators of the gene , and equals the number of genes in the network, and hence, the maximum number of regulators of any gene. This procedure results in networks that evolve towards low connectivities of 2–3 regulators per gene. Such low connectivity is often observed in transcriptional regulation networks of plants, animals, fungi and bacteria . Loss of interactions may also help explain the observation that loss of gene expression is more common than acquiring new expression patterns in the evolution of gene families .
In our evolutionary simulations, we kept populations of constant size (100 individuals) and imposed iterative rounds of mutations and selection to those populations. Every new generation, we sampled networks from the ones in the previous generation with probability proportional to the networks' fitness. Specifically, we defined the probability of copying network from generation into a network in the new generation () as , where stands for the fitness of network . Each of the new networks underwent mutation with a probability of per gene. Finally, we evaluated the fitness of each new network. We iterated these steps through the end of the simulation.
All simulation code (written in C++) took advantage of the LEDA library of C++ data types .
Non-normalized modularity increases after selection for a new additional gene activity pattern. The horizontal axis indicates mean non-normalized modularity after 500 generations of selection for gene activity pattern I. The vertical axis shows non-normalized modularity in networks after an additional 1500 generations of selection for both gene activity patterns I and II. Specifically, (A) shows modularity of the networks with highest fitness (Wilcoxon signed-rank test; z = 8.8597; p<2.2×10−16), and (B) shows mean population modularity (Wilcoxon signed-rank test; z = 10.073; p<2.2×10−16). Points above the identity line (solid diagonal) show populations in which modularity increases after selection for the second gene expression pattern. The length of bars represents one standard deviation. The plots show results for 200 evolving populations.
(2.95 MB TIF)
Modularity does not increase when selection does not favor specialization. The length of bars represents one standard deviation. The plots show results for 100 evolving populations. (A) Modularity does not increase under selection for a single gene activity pattern (I in Figure 1A in the main text). Wilcoxon signed-rank test; z = −0.02063; p = 0.50823. The horizontal axis shows modularity in the best adapted networks after 500 generations. The vertical axis shows modularity in the best adapted networks after 2000 generations. (B) Networks evolving in the absence of selection do not increase their modularity (Wilcoxon signed-rank test; z = −0.2882; p = 0.61364). The horizontal axis indicates mean modularity after 500 generations. The vertical axis shows modularity in networks after an additional 1500 generations.
(1.00 MB TIF)
Modularity increases under evolution with different mutation rates. The horizontal axes indicate modularity in the best adapted networks after 1000 generations of selection for gene activity pattern I. The length of bars represents one standard deviation. The plots show results for 100 evolving populations. (A) Modularity increases using a mutation rate that equals half of the value used in other simulations (μ = 0.025; Wilcoxon signed-rank test; z = 6.8835; p = 2.9194×10−12). This increase occurs but requires longer time scales to achieve adaptation. The vertical axis shows modularity in the best adapted networks after an additional 3000 generations of selection for both gene activity patterns I and II. (B) Modularity increases using a mutation rate that doubles the value used in other simulations (μ = 0.1; Wilcoxon signed-rank test; z = 7.4921; p = 3.3862×10−14). The vertical axis shows modularity in the best adapted networks after an additional 1500 generations of selection for both gene activity patterns I and II.
(1.48 MB TIF)
Modularity increases when fitness components related to each activity pattern combine multiplicatively instead of additively. Wilcoxon signed-rank test; z = 6.9385; p = 1.9809×10−12. The horizontal axis indicates modularity in the best adapted networks after 500 generations of selection for gene activity pattern I. The vertical axis shows modularity in the best adapted networks after an additional 1500 generations of selection for both gene activity patterns I and II. The length of bars represents one standard deviation. The plot shows results for 100 evolving populations.
(0.83 MB TIF)
Modularity increases when evolving networks composed of twice as many genes as in other simulations. N = 20; Wilcoxon signed-rank test; z = 5.1987; p = 1.0032×10−7. (A) Activity patterns I and II share the activity state of genes 0–9, but show different activity patterns for genes 10–19. White squares represent active genes and black squares represent inactive genes. (B) The horizontal axis indicates modularity in the best adapted networks after 800 generations of selection for gene activity pattern I. The vertical axis shows modularity in the best adapted networks after an additional 2700 generations of selection for activity patterns I and II. We adjusted the mutation rate μ so that the expected number of individuals without any mutation is approximately the same as in all other simulations. Because of computational cost, we here followed 250 developmental trajectories for each network to evaluate the contribution to fitness associated to a certain gene activity pattern, instead of 500 as in our other analyses. The length of bars represents one standard deviation. The plot shows results for 100 evolving populations.
(1.70 MB TIF)
The increase in modularity does not depend on the identity of the selected activity patterns. The horizontal axes indicate modularity after 500 generations of selection for a single gene activity pattern. The vertical axes show modularity after an additional 1500 generations of selection for two gene activity patterns. The length of bars represents one standard deviation. The plots show results for 100 evolving populations. (A) Modularity increases in the best adapted networks when the two selected gene activity patterns differ in the activity state of 3 genes (Wilcoxon signed-rank test; z = 6.7185; p = 9.1811×10−12). (B) The same occurs when the two selected gene activity patterns differ in the activity state of 7 genes (Wilcoxon signed-rank test; z = 5.6045; p = 1.0445×10−8). (C) Modularity increases after selection for two gene activity patterns picked at random (Wilcoxon signed-rank test; z = 5.9449; p = 1.3834×10−9). We discarded pairs of gene activity patterns with less than two different activity states. The probability of picking a pair with k activity differences in a 10-gene network is p(k) = C10k0.510, where CNk is the binomial coefficient. However, after discarding activity patterns with less than two different activity states, p(k) = [C10k0.510][1−(C100+C101)0.510]−1. (D) Modularity does not increase when gene activity patterns differ in the activity state of all genes (Wilcoxon signed-rank test; z = 1.0281; p = 0.15196). This result is not due to a lack of adaptation, since networks that can attain both activity patterns in a stable manner arise in all evolving populations.
(3.14 MB TIF)
Mean fitness increases faster when co-option of existing gene activity states is possible. Mean population fitness increases faster when selecting for a new gene activity pattern (IV in Figure 5 in the main text) that co-opts activity states matching those of previously evolved modules than when such activity pattern is picked at random. This shows that the increase in fitness when selecting for pattern IV permeates the whole population, and affects not only the best adapted networks. The length of bars represents one standard error.
(1.02 MB TIF)
New modules arise after selection for a third additional pattern. (A) Gene activity patterns I, II and III, as in Figure 4A. (B) The number of modules in the networks with the highest fitness in each population, averaged across populations, increases after selection for the new additional patterns. The length of bars represents one standard error. (C) px,y stands for the frequency with which genes x and y occur in the same module in the networks with the highest fitness of each evolving population. When selection for a new activity pattern causes the activity of two genes to cease changing concertedly across the selected patterns, the probability of such genes lying in the same module decreases rapidly. This is the case of genes 0 and 8 after selection for activity pattern II starts, and also of genes 0 and 6 after selection for pattern III begins (red arrow). The plots show results for 100 evolving populations.
(4.06 MB TIF)
CE-S thanks A. Leier for his comments on the manuscript. We also gratefully acknowledge comments and suggestions by three reviewers.
Conceived and designed the experiments: CES AW. Performed the experiments: CES. Analyzed the data: CES AW. Wrote the paper: CES AW.
- 1. Hartwell LH, Hopfield JJ, Leibler S, Murray AW (1999) From molecular to modular cell biology. Nature 402: C47–C52.
- 2. Wagner GP (1996) Homologues, natural kinds and the evolution of modularity. Amer Zool 36: 36–43.
- 3. Schlosser G, Wagner GP, editors. (2004) Modularity in development and evolution. Chicago, IL: The University of Chicago Press.
- 4. Bolker JA (2000) Modularity in development and why it matters to evo-devo. Amer Zool 40: 770–776.
- 5. von Dassow G, Munro EM (1999) Modularity in animal development and evolution: elements of a conceptual framework for EvoDevo. J Exp Zool (Mol Dev Evol) 285: 307–325.
- 6. Kirschner M, Gerhart J (1998) Evolvability. Proc Natl Acad Sci USA 95: 8420–8427.
- 7. Wagner GP, Mezey JG (2004) The role of genetic architecture constraints in the origin of variational modularity. In: Schlosser G, Wagner GP, editors. Modularity in development and evolution. Chicago, IL: The University of Chicago Press. pp. 338–358.
- 8. Wagner GP, Altenberg L (1996) Complex adaptations and the evolution of evolvability. Evolution Int J Org Evolution 50: 967–976.
- 9. Wagner GP, Pavlicev M, Cheverud JM (2007) The road to modularity. Nat Rev Genet 8: 921–931.
- 10. Kashtan N, Alon U (2005) Spontaneous evolution of modularity and network motifs. Proc Natl Acad Sci USA 102: 13773–13778.
- 11. Leroi AM (2000) The scale independence of evolution. Evol Dev 2: 67–77.
- 12. Parter M, Kashtan N, Alon U (2007) Environmental variability and modularity of bacterial metabolic networks. BMC Evol Biol 7: 169.
- 13. von Dassow G, Meir E, Munro EM, Odell GM (2000) The segment polarity network is a robust developmental module. Nature 406: 188–193.
- 14. Ingolia NT (2004) Topology and robustness in the Drosophila segment polarity network. PLoS Biol 2: 0805–0815.
- 15. von Dassow G, Odell GM (2002) Design and constraints of the Drosophila segment polarity module: robust spatial patterning emerges from intertwined cell state switches. J Exp Zool (Mol Dev Evol) 294: 179–215.
- 16. Davis GK, Patel NH (2002) Short, long, and beyond: molecular and embryological approaches to insect segmentation. Annu Rev Entomol 47: 669–699.
- 17. Davidson EH, Rast JP, Oliveri P, Ransick A, Calestani C, et al. (2002) A genomic regulatory network for development. Science 295: 1669–1678.
- 18. Espinosa-Soto C, Padilla-Longoria P, Alvarez-Buylla ER (2004) A gene regulatory network model for cell-fate determination during Arabidopsis thaliana flower development that is robust and recovers experimental gene expression profiles. Plant Cell 16: 2923–2939.
- 19. Meir E, von Dassow G, Munro E, Odell GM (2002) Robustness, flexibility, and the role of lateral inhibition in the neurogenic network. Curr Biol 12: 778–786.
- 20. Shubin N, Tabin C, Carroll S (1997) Fossils, genes and the evolution of animal limbs. Nature 388: 639–648.
- 21. Shubin N, Tabin C, Carroll S (2009) Deep homology and the origins of evolutionary novelty. Nature 457: 818–823.
- 22. Wagner A (1996) Does evolutionary plasticity evolve? Evolution Int J Org Evolution 50: 1008–1023.
- 23. Siegal ML, Bergman A (2002) Waddington's canalization revisited: Developmental stability and evolution. Proc Natl Acad Sci USA 99: 10528–10532.
- 24. Martin OC, Wagner A (2008) Multifunctionality and robustness trade-offs in model genetic circuits. Biophys J 94: 2927–2937.
- 25. Ciliberti S, Martin OC, Wagner A (2007) Innovation and robustness in complex regulatory networks. Proc Natl Acad Sci USA 104: 13591–13596.
- 26. Draghi J, Wagner GP (2009) The evolutionary dynamics of evolvability in a gene network model. J Evol Biol 22: 599–611.
- 27. Azevedo RBR, Lohaus R, Srinivasan S, Dang KK, Burch CL (2006) Sexual reproduction selects for robustness and negative epistasis in artificial gene networks. Nature 440: 87–90.
- 28. Mjolsness E, Sharp DH, Reinitz J (1991) A connectionist model of development. J Theor Biol 152: 429–453.
- 29. Mendoza L, Alvarez-Buylla ER (1998) Dynamics of the genetic regulatory network of Arabidopsis thaliana flower morphogenesis. J Theor Biol 193: 307–319.
- 30. Kauffman SA (1996) At home in the Universe: The search for laws of complexity. U.K.: Penguin books.
- 31. Waddington CH (1957) The strategy of the genes. A discussion of some aspects of theoretical biology. New York, NY: MacMillan.
- 32. Huang S, Eichler G, Bar-Yam Y, Ingber DE (2005) Cell fates as high-dimensional attractor states of a complex gene regulatory network. Phys Rev Lett 94: 128701.
- 33. Newman MEJ (2006) Modularity and community structure in networks. Proc Natl Acad Sci USA 103: 8577–8582.
- 34. Keys D, Lewis DL, Selegue JE, Pearson BJ, Goodrich LV, et al. (1999) Recruitment of a hedgehog regulatory circuit in butterfly eyespot evolution. Science 283: 532–534.
- 35. Schlosser G (2004) The role of modules in development and evolution. In: Schlosser G, Wagner GP, editors. Modularity in development and evolution. Chicago, IL: The University of Chicago Press. pp. 519–582.
- 36. Fraser GJ, Hulsey CD, Bloomquist RF, Uyesugi K, Manley NR, et al. (2009) An ancient gene network is co-opted for teeth on old and new jaws. PLoS Biol 7: e1000031.
- 37. Segal E, Shapira M, Regev A, Pe'er D, Botstein D, et al. (2003) Module networks: identifying regulatory modules and their condition-specific regulators from gene expression data. Nat Genet 34: 166–176.
- 38. Ihmels J, Friedlander G, Bergmann S, Sarig O, Ziv Y, et al. (2002) Revealing modular organization in the yeast transcriptional network. Nat Genet 31: 370–377.
- 39. Ayroles JF, Carbone MA, Stone EA, Jordan KW, Lyman RF, et al. (2009) Systems genetics of complex traits in drosophila melanogaster. Nat Genet 41: 299–307.
- 40. Parcy F, Nilsson O, Busch MA, Lee I, Weigel D (1998) A genetic framework for floral patterning. Nature 395: 561–566.
- 41. Lohmann JU, Hong RL, Hobe M, Busch MA, Parcy F, et al. (2001) A molecular link between stem cell regulation and floral patterning in Arabidopsis. Cell 105: 793–803.
- 42. Lenhard M, Bonhert A, Jürgens G, Laux T (2001) Termination of stem cell maintenance in Arabidopsis floral meristems by interactions between WUSCHEL and AGAMOUS. Cell 105: 805–808.
- 43. Gao F, Davidson EH (2008) Transfer of a large gene regulatory apparatus to a new developmental address in echinoid evolution. Proc Natl Acad Sci USA 105: 6091–6096.
- 44. Oliveri P, Tu Q, Davidson EH (2008) Global regulatory logic for specification of an embryonic cell lineage. Proc Natl Acad Sci USA 105: 5955–5962.
- 45. Seale P, Bjork B, Yang W, Kajimura S, Chin S, et al. (2008) PRDM16 controls a brown fat/skeletal muscle switch. Nature 454: 961–968.
- 46. Arendt D (2008) The evolution of cell types in animals: emerging principles from molecular studies. Nat Rev Genet 9: 868–882.
- 47. Williams TA, Nagy LM (2001) Developmental modularity and the evolutionary diversification of arthropod limbs. J Exp Zool (Mol Dev Evol) 291: 241–257.
- 48. Kirschner MW, Gerhart JC (2005) The plausibility of life. Resolving Darwin's dilemma. New Haven, CN: Yale University Press.
- 49. West-Eberhard MJ (2003) Developmental Plasticity and Evolution. Oxford University Press. 816 p.
- 50. Cohn MJ, Patel K, Krumlauf R, Wilkinson DG, Clarke JD, et al. (1997) Hox9 genes and vertebrate limb specification. Nature 387: 97–101.
- 51. Gould SJ (1977) Ontogeny and Phylogeny. Cambridge, MA: The Belknap Press of Harvard University Press.
- 52. Gasch AP, Spellman PT, Kao CM, Carmel-Harel O, Eisen MB, et al. (2000) Genomic expression programs in the response of yeast cells to environmental changes. Mol Biol Cell 11: 4241–4257.
- 53. Boer VM, de Winde JH, Pronk JT, Piper MDW (2003) The genome-wide transcriptional responses of saccharomyces cerevisiae grown on glucose in aerobic chemostat cultures limited for carbon, nitrogen, phosphorus, or sulfur. J Biol Chem 278: 3265–3274.
- 54. Causton HC, Ren B, Koh SS, Harbison CT, Kanin E, et al. (2001) Remodeling of yeast genome expression in response to environmental changes. Mol Biol Cell 12: 323–337.
- 55. Hintze A, Adami C (2008) Evolution of complex modular biological networks. PLoS Comput Biol 4: e23.
- 56. Newman MEJ (2006) Finding community structure in networks using the eigenvectors of matrices. Phys Rev E Stat Nonlin Soft Matter Phys 74: 036104.
- 57. Newman MEJ, Girvan M (2004) Finding and evaluating community structure in networks. Phys Rev E Stat Nonlin Soft Matter Phys 69: 026113.
- 58. Guimerà R, Amaral LAN (2005) Functional cartography of complex networks. Nature 433: 895–900.
- 59. Guimerà R, Sales-Pardo M, Amaral LAN (2004) Modularity from fluctuations in random graphs and complex networks. Phys Rev E Stat Nonlin Soft Matter Phys 70: 025101.
- 60. Fortunato S, Barthélemy M (2007) Resolution limit in community detection. Proc Natl Acad Sci U S A 104: 36–41.
- 61. Wagner A (2005) Robustness and evolvability in living systems. Princeton Studies in Complexity. Princeton, NJ: Princeton University Press.
- 62. Wagner A (2008) Robustness and evolvability: a paradox resolved. Proc R Soc B 275: 91–100.
- 63. de Visser JAGM, Hermisson J, Wagner GP, Meyers LA, Bagheri-Chaichian H, et al. (2003) Perspective: Evolution and detection of genetic robustness. Evolution Int J Org Evolution 57: 1959–1972.
- 64. Leclerc RD (2008) Survival of the sparsest: robust gene networks are parsimonious. Mol Syst Biol 4: 213.
- 65. Oakley TH, Ostman B, Wilson ACV (2006) Repression and loss of gene expression outpaces activation and gain in recently duplicated fly genes. Proc Natl Acad Sci U S A 103: 11637–11641.
- 66. Mehlhorn K, Naher S (1999) LEDA: a platform for combinatorial and geometric computing. Cambridge, England: Cambridge University Press.