Introduction

Evolution in complex systems, where many traits share a common genetic basis and/or interact to perform some function together, results from the interaction between evolutionary processes and within-population patterns and magnitudes of association among traits. Genetic and phenotypic variance/covariance (G- and P-matrices) and correlation matrices are a critical quantitative measure of association among traits in a system and, therefore, play a central role in evolutionary biology (Arnold et al. 2001). This led, in the past decades, to a research program focused on estimating G- and P- matrices and comparing them among populations and/or species (Steppan et al. 2002). While some debate sparkled around the subject of how to compare those matrices (Cheverud 1988; Roff 1997; Phillips and Arnold 1999; Houle et al. 2002; Cheverud and Marroig 2007), few methods were developed to pinpoint where (in which traits) any pair of matrices differ and where they remain essentially similar.

One notable exception is the common principal component (CPC) analysis (Phillips and Arnold 1999), where two or more matrices being compared are tested for a nested series of matrix structure related hypotheses. These hypotheses range from complete similarity, full proportionality, a decreasing number of common (shared) principal components, up to no similarity at all between the matrices. However, CPC still cannot determine exactly which traits differ most, since principal components are usually contrasts between groups of traits and these may be represented several times in different components. It also suffers from the fact that there is no warranty that matrices sharing common causal sources of biological variation would be decomposed in eigenvalues and eigenvectors that describe similar spaces (see also criticisms in Houle et al. 2002).

Another method for comparing matrices is the Krzanowski projection (Krzanowski 1979) which compares all eigenvectors of two matrices within a sub-space corresponding to a maximum of less than m/2 (m being the number of traits) vectors simultaneously and accordingly avoid to some extent the problem of the non-homology of the PC’s space. It also suffers minor influence from sampling error, since this error is usually concentrated on the last PCs. Another current method for comparing matrices is the random skewers (RS) approach (Cheverud 1995; Marroig and Cheverud 2001; Cheverud and Marroig 2007), based on the multivariate response to selection equation (Lush 1964; Lande 1979). This method consists of simulating random selection vectors and comparing the responses of two matrices via vector correlation (see below for details). RS and Krzanowski projection results are easily interpretable, giving a global similarity index (correlation) that corresponds to an overall measure of the similarity between any two matrices (see Table 1 in Marroig and Cheverud (2010) for a comparison of results from both methods). Still, none of these methods is able to highlight where differences and similarities are concentrated.

Table 1 The 21 landmarks recorded in marsupials skulls using the three-dimensional digitizer

Here, we extend the random skewers approach and describe a method capable of not only giving a global similarity index but also pinpointing in which traits two matrices differ most, as well as which traits remained particularly similar. This method is called Selection Response Decomposition (SRD) and, while essentially an exploratory tool, it can be easily used to test both ad hoc and post hoc hypotheses regarding matrix similarities and/or differences. The SRD is an extension of the random skewers in the sense that evolutionary responses produced by known simulated selection vectors are decomposed and then compared in terms of the direct and indirect responses to selection in any trait. Here, we present the theory, the SRD method and apply it to simulated data, previously studied mammalian groups (Porto et al. 2009), as well as unpublished data. Simulated data is especially useful in showing how the method behaves because we know the underling structure of the matrices. The study cases used to illustrate the method are based on a series of opossum (Didelphis) ontogenetic matrices, as well as two primate and two marsupial matrices, representing some of the diversity found in mammals (Porto et al. 2009). We also compared a pair of phenotypic and genetic variance/covariance matrices obtained from a rodent colony (Calomys). R, MATLAB and C codes used to compute the SRD, as well as an executable ready to be used for matrix comparisons are available at http://dreyfus.ib.usp.br/gmarroig/.

Methods

Random Skewers and SRD

The random skewers method is based on the multivariate response to selection equation (Cheverud 1996; Cheverud and Marroig 2007). This equation, when modified accordingly, can be used to compare variance/covariance (V/CV) matrices from the point of view of their potential evolutionary responses to selection (Cheverud and Marroig 2007). The evolutionary response of a set of quantitative traits is described by the equation Δz =  (Lande 1979). This equation explicitly relates the evolutionary response (Δz) under directional selection to the force of selection operating individually upon each trait (β) and to patterns of heritable variation (G-matrix). In order to compare two V/CV matrices, a large number of random selection vectors are needed (herein, 10,000). These selection vectors (β) must be created in such a way as to explore uniformly all directions in the hyperspace. In order to do so, they must respect a spherically symmetrical distribution. This is achieved by drawing each individual element of these vectors from a normal distribution with null mean and arbitrary variance. All simulated selection vectors are then re-scaled to have a norm equal to one. Simulated evolutionary responses (Δz) to these vectors are computed for each of the matrices being compared, by simple multiplication. These responses are compared between matrices for each random vector through vector correlation and the average of these vector correlations is used as a measure of similarity between two matrices. The idea behind this procedure is to compare how each matrix responds to the same selection vectors. As we multiply different matrices by the same selection vectors, response differences are due to matrix differences.

The SRD method is an extension of the random skewers method. While in random skewers we compare entire response vectors between matrices, in SRD we decompose each response vector element into its subcomponents: (1) those due to direct selection on a trait; (2) and those due to correlated selection, i.e., response produced on a given trait due to its covariance with other traits being selected. These are simply the terms of the sum that generates the response vector elements in the multivariate response to selection equation, as can be seen:

$$ \left( {\begin{array}{*{20}c} {G_{11} } & {G_{12} } & \cdots & {G_{1n} } \\ {G_{21} } & {G_{22} } & \cdots & {G_{2n} } \\ \vdots & \vdots & \ddots & \vdots \\ {G_{n1} } & {G_{n2} } & \cdots & {G_{nn} } \\ \end{array} } \right) \cdot \left( {\begin{array}{*{20}c} {\beta_{1} } \\ {\beta_{2} } \\ \vdots \\ {\beta_{n} } \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {\Updelta z_{1} } \\ {\Updelta z_{2} } \\ \vdots \\ {\Updelta z_{n} } \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {G_{11} \beta_{1} + G_{12} \beta_{2} + \cdots + G_{1n} \beta_{n} } \\ {G_{21} \beta_{1} + G_{22} \beta_{2} + \cdots + G_{2n} \beta_{n} } \\ \vdots \\ {G_{n1} \beta_{1} + G_{n2} \beta_{2} + \cdots + G_{nn} \beta_{n} } \\ \end{array} } \right) $$

We then treat the elements of this sum as elements of a trait-specific vector of response components for each trait:

$$ \left( {\begin{array}{*{20}c} {G_{11} \beta_{1} + G_{12} \beta_{2} + \cdots + G_{1n} \beta_{n} } \\ {G_{21} \beta_{1} + G_{22} \beta_{2} + \cdots + G_{2n} \beta_{n} } \\ \vdots \\ {G_{n1} \beta_{1} + G_{n2} \beta_{2} + \cdots + G_{nn} \beta_{n} } \\ \end{array} } \right) \to {\begin{array}{*{20}c} ({G_{11} \beta_{1} } & {G_{12} \beta_{2} } & \cdots & {G_{1n} \beta_{n} }) \\ ({G_{21} \beta_{1} } & {G_{22} \beta_{2} } & \cdots & {G_{2n} \beta_{n} }) \\ \vdots & {} & {} & {} \\ ({G_{n1} \beta_{1} } & {G_{n2} \beta_{2} } & \cdots & {G_{nn} \beta_{n} }) \\ \end{array} } $$

Accordingly, the selection response decomposition (SRD) is based on the fact that each trait represented by a number in the evolutionary response vector is decomposed in its direct and indirect response component parts. We then compare these trait-specific vectors of response components between each pair of matrices by vector correlations. The average correlation among these trait-specific response vectors is obtained by repeating the process for each of the 10,000 random selection vectors, and is referred to as SRD score. Each trait is then compared between the two matrices by examining the response vectors correlation distribution. If the two matrices are similar, traits will be similar in their response to direct and correlated selection, the SRD score will be high and the distribution of the SRD score will have a small variance. If the two matrices are not similar, traits will be different in their response to direct and correlated selection, the average correlation and SRD scores will be lower, and vector correlation’s variance will be high. The benefit of this approach over the random skewers method is that it provides a more detailed perspective regarding matrix comparisons, since it can point to particular traits that are responsible for the observed differences and similarities between two matrices, and not only if the matrices are globally similar or dissimilar. We present results of the SRD using two types of profile graphs. The first type presents the average and 95% of the empirical distribution of the SRD scores on the Y-axis, for each trait on the X-axis (see Sokal and Braumann1980). The second type presents a bivariate plot: (1) on the X-axis, we have the trait-specific SRD score deviations from the global average of the SRD scores; (2) and on the Y-axis we have trait-specific standard deviation (σ) differences from the global average σ of the SRD scores. For example, for each pair of matrices being compared, each trait has an average value of its SRD scores. The global average of these SRD score averages is computed and each trait deviation from this global average is calculated and represented on the X-axis (μ Dev for simplicity). Each trait has also a σ of its SRD scores. The global average value of these σ’s is computed and each trait σ deviation from that average is then computed and represented on the Y-axis (σ Dev for simplicity). Notice that the average of the SRD scores can be used in the same way as the Krzanowski and RS similarity indexes (see Marroig and Cheverud 2010 and references therein), i.e., as a measure of the overall similarity between any two matrices.

SRD—Considerations for use as an exploratory tool and for hypothesis testing.

The SRD was developed as an exploratory tool to detect similarities and differences between matrices. Both profiles graphs can be used to explore differences and similarities in matrix structure. Local similarity in matrix structure is apparent when a trait shows a high SRD score mean and a small variance. Conversely, local differences in structure are apparent when a trait presents a relative low average SRD score and a large variance. The bivariate plots make use of this conjoint expectation in regard to the average and variance of the SRD scores. It also adjusts for the global level of similarity between the two matrices, since the average SRD scores means and the average of the standard deviations of the SRD scores are used to calculate each trait’s deviation from the mean value. The negative bivariate relationship between the σ Dev and μ Dev suggests an easy way to identify those traits that are more dissimilar between the two matrices since they will occupy the first quadrant (upper left) of the plot (with lines dividing the plot on both axes at the origin). Conversely, similar traits between the two matrices will occupy the third quadrant (lower right). Accordingly, this exploratory tool can be easily used to test for significant deviations from the conjoint bivariate expectation (average) of zero (see Fig. 3 for an example). This can be done using the first principal component, which captures the conjoint distribution of the σ Dev and μ Dev. The traits scores on this space will have a zero average and a standard deviation of one. The 95% confidence interval (CI) for the average can be easily obtained and used to test whether or not a particular trait deviates significantly from the average. Traits with values below the 95% CI are those significantly different between the matrices, representing a 2.5% critical region for the null hypothesis of lack of differences between trait SRD score and the mean SRD value. Furthermore, if the researcher has any a priori hypothesis, based on developmental, functional, or any other expected biological difference between the two groups (matrices), one can easily divide traits in an ad hoc way to reflect those hypotheses and use the test described above.

It is worth mentioning that both the SRD and the RS methods are based on vector correlations and should not be used for matrix comparisons involving less than perhaps 8 or 9 traits (matrices of rank 8 or 9). For these small number of traits the significance test for the vector correlation would be extremely stringent due to the negative exponential relationship between the number of traits and the expectation for the random correlation of vectors with that number of traits. Figure 1 illustrates this point, showing the average expectation and the 95% confidence interval for random vector correlations based on 10,000 samples. Conversely, if the number of traits is large, even very low SRD scores (vector correlation) would still be significantly different from the random expectation, even thought the similarity per se might be quite low. Since the SRD scores correspond to a correlation coefficient that indicates the strength of a linear relationship between two variables (in this case, the orientation of two vectors), the usual rule of thumb for interpreting the strength of such associations should be: very strong alignment when above 0.9, strong alignment between 0.7 and 0.9, moderate between 0.4 and 0.7 and low below 0.4.

Fig. 1
figure 1

Vector correlation average and 95% upper and lower limits expectations based on random vectors correlation with increasing dimensionality (from n = 2 to n = 60). The patterned line indicate our suggestion for the lower dimensionality where the SRD and the RS methods based on vector correlations can be used

Theoretical Simulations

In order to test the efficiency of the SRD method in detecting differences and similarities in particular traits between matrices, we performed a series of comparisons among theoretical matrices with known structure and twenty traits. These matrices were constructed in such a way that they had different correlation pattern/structure and also diverse magnitudes of integration (average correlation values). Theoretical matrices were created in the following manner: (1) first a correlation matrix with a known correlation pattern/structure was produced; (2) then a second matrix was created by modifying the original one for a particular set of traits (see below); (3) we then added, to all off-diagonal elements of these two matrices, a random Gaussian noise drawn from a normal distribution with zero mean and a variance of 0.1 (this is meant as a test of the robustness of the method when facing noise in matrix estimation); (4) finally we transformed the correlation matrices into V/CV matrices by drawing random variances for each trait from a uniform distribution between 0 and 10 and applying the same transformation for each pair of matrices being compared. All these matrices are given in the Electronic supplementary material and all comparisons are made against the first matrix, dubbed matrix A. Matrix A has 4 sets of 5 traits arranged in sequential modules.

We adopted four approaches for modifying correlation matrices. The first modified matrix (B) was created by localized alterations on matrix A’s structure, changing correlations of a single trait within a module of five traits. We removed a trait from its original module, as can be seen:

$$ \left( {\begin{array}{*{20}c} 1 & r & r & r & r & 0 & 0 & 0 & 0 & 0 & {} \\ r & 1 & r & r & r & 0 & 0 & 0 & 0 & 0 & {} \\ r & r & 1 & r & r & 0 & 0 & 0 & 0 & 0 & \cdots \\ r & r & r & 1 & r & 0 & 0 & 0 & 0 & 0 & {} \\ r & r & r & r & 1 & 0 & 0 & 0 & 0 & 0 & {} \\ 0 & 0 & 0 & 0 & 0 & 1 & r & r & r & r & {} \\ 0 & 0 & 0 & 0 & 0 & r & 1 & r & r & r & {} \\ 0 & 0 & 0 & 0 & 0 & r & r & 1 & r & r & {} \\ 0 & 0 & 0 & 0 & 0 & r & r & r & 1 & r & {} \\ 0 & 0 & 0 & 0 & 0 & r & r & r & r & 1 & {} \\ {} & {} & \vdots & {} & {} & {} & {} & {} & {} & {} & \ddots \\ \end{array} } \right) \to \left( {\begin{array}{*{20}c} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & {} \\ 0 & 1 & r & r & r & 0 & 0 & 0 & 0 & 0 & {} \\ 0 & r & 1 & r & r & 0 & 0 & 0 & 0 & 0 & \cdots \\ 0 & r & r & 1 & r & 0 & 0 & 0 & 0 & 0 & {} \\ 0 & r & r & r & 1 & 0 & 0 & 0 & 0 & 0 & {} \\ 0 & 0 & 0 & 0 & 0 & 1 & r & r & r & r & {} \\ 0 & 0 & 0 & 0 & 0 & r & 1 & r & r & r & {} \\ 0 & 0 & 0 & 0 & 0 & r & r & 1 & r & r & {} \\ 0 & 0 & 0 & 0 & 0 & r & r & r & 1 & r & {} \\ 0 & 0 & 0 & 0 & 0 & r & r & r & r & 1 & {} \\ {} & {} & \vdots & {} & {} & {} & {} & {} & {} & {} & \ddots \\ \end{array} } \right) $$

Notice that changes are concentrated on the first module, as a single trait (the first one) is removed from its original module. The next 4 traits suffer minor alterations because originally they were correlated with the first trait and now this correlation is close to zero. The rest of the matrix was kept unchanged.

For our second test we made more generalized alterations on the matrix structure, by changing entire modules, as seen:

$$ \left( {\begin{array}{*{20}c} 1 & r & r & r & r & 0 & 0 & 0 & 0 & 0 & {} \\ r & 1 & r & r & r & 0 & 0 & 0 & 0 & 0 & {} \\ r & r & 1 & r & r & 0 & 0 & 0 & 0 & 0 & {} \\ r & r & r & 1 & r & 0 & 0 & 0 & 0 & 0 & \cdots \\ r & r & r & r & 1 & 0 & 0 & 0 & 0 & 0 & {} \\ 0 & 0 & 0 & 0 & 0 & 1 & r & r & r & r & {} \\ 0 & 0 & 0 & 0 & 0 & r & 1 & r & r & r & {} \\ 0 & 0 & 0 & 0 & 0 & r & r & 1 & r & r & {} \\ 0 & 0 & 0 & 0 & 0 & r & r & r & 1 & r & {} \\ 0 & 0 & 0 & 0 & 0 & r & r & r & r & 1 & {} \\ {} & {} & \vdots & {} & {} & {} & {} & {} & {} & {} & {} \\ \end{array} } \right) \to \left( {\begin{array}{*{20}c} 1 & r & 0 & 0 & 0 & 0 & 0 & 0 & r & r & {} \\ r & 1 & 0 & 0 & 0 & 0 & 0 & 0 & r & r & {} \\ 0 & 0 & 1 & r & r & r & r & r & 0 & 0 & {} \\ 0 & 0 & r & 1 & r & r & r & r & 0 & 0 & \cdots \\ 0 & 0 & r & r & 1 & r & r & r & 0 & 0 & {} \\ 0 & 0 & r & r & r & 1 & r & r & 0 & 0 & {} \\ 0 & 0 & r & r & r & r & 1 & r & 0 & 0 & {} \\ 0 & 0 & r & r & r & r & r & 1 & 0 & 0 & {} \\ r & r & 0 & 0 & 0 & r & r & r & 1 & r & {} \\ r & r & 0 & 0 & 0 & r & r & r & r & 1 & {} \\ {} & {} & \vdots & {} & {} & {} & {} & {} & {} & {} & {} \\ \end{array} } \right) $$

So the first 10 traits were affected and the first two modules were broken and re-arranged in two different modules, forming matrix C. The last 10 traits arranged in two modules in matrix A were kept unchanged.

For a third group of matrices (D), we made generalized alterations on the matrix structure, changing the overall magnitude of integration among traits. This is accomplished by modifying the between module correlation values. We created three new matrices in this fashion, gradually increasing the magnitude of integration (from 0 in the A matrix to 0.1, 0.2 or 0.3 in the D matrices) and comparing them with the original one.

$$ \left( {\begin{array}{*{20}c} 1 & {r_{w} } & {r_{w} } & {r_{w} } & {r_{w} } & 0 & 0 & 0 & 0 & 0 \\ {} & 1 & {r_{w} } & {r_{w} } & {r_{w} } & 0 & 0 & 0 & 0 & 0 \\ {} & {} & 1 & {r_{w} } & {r_{w} } & 0 & 0 & 0 & 0 & 0 \\ {} & {} & {} & 1 & {r_{w} } & 0 & 0 & 0 & 0 & 0 \\ {} & {} & {} & {} & 1 & 0 & 0 & 0 & 0 & 0 \\ {} & {} & {} & {} & {} & 1 & {r_{w} } & {r_{w} } & {r_{w} } & {r_{w} } \\ {} & {} & {} & {} & {} & {} & 1 & {r_{w} } & {r_{w} } & {r_{w} } \\ {} & {} & {} & {} & {} & {} & {} & 1 & {r_{w} } & {r_{w} } \\ {} & {} & {} & {} & {} & {} & {} & {} & 1 & {r_{w} } \\ {} & {} & {} & {} & {} & {} & {} & {} & {} & 1 \\ \end{array} } \right) \to \left( {\begin{array}{*{20}c} 1 & {r_{w} } & {r_{w} } & {r_{w} } & {r_{w} } & {0.1} & {0.1} & {0.1} & {0.1} & {0.1} \\ {} & 1 & {r_{w} } & {r_{w} } & {r_{w} } & {0.1} & {0.1} & {0.1} & {0.1} & {0.1} \\ {} & {} & 1 & {r_{w} } & {r_{w} } & {0.1} & {0.1} & {0.1} & {0.1} & {0.1} \\ {} & {} & {} & 1 & {r_{w} } & {0.1} & {0.1} & {0.1} & {0.1} & {0.1} \\ {} & {} & {} & {} & 1 & {0.1} & {0.1} & {0.1} & {0.1} & {0.1} \\ {} & {} & {} & {} & {} & 1 & {r_{w} } & {r_{w} } & {r_{w} } & {r_{w} } \\ {} & {} & {} & {} & {} & {} & 1 & {r_{w} } & {r_{w} } & {r_{w} } \\ {} & {} & {} & {} & {} & {} & {} & 1 & {r_{w} } & {r_{w} } \\ {} & {} & {} & {} & {} & {} & {} & {} & 1 & {r_{w} } \\ {} & {} & {} & {} & {} & {} & {} & {} & {} & 1 \\ \end{array} } \right) $$

Finally, for the last theoretical matrix (E) we took the first module in matrix A and inverted the sign of it’s correlations. Now these traits are completely disintegrated and share a negative correlation (see Electronic supplementary material).

The rationale adopted was that the SRD method should be able to detect changes introduced between the original and modified matrices.

Ontogenetic Trajectory in Didelphis—A Case Study

In order to illustrate the method with real cases, we measured a total of 494 Didelphis virginiana (Didelphidae) skulls, deposited in four institutions: American Museum of Natural History (AMNH, New York), Field Museum of Natural History (FMNH, Chicago), Museum of Vertebrate Zoology (MVZ, Berkeley), and National Museum of Natural History (NMNH, Washington D.C.). These skulls were selected in order to illustrate the ontogenetic trajectory of a single species from the moment of birth until adulthood. Specimens were aged based on tooth eruption and wear, modified from Tyndale-Biscoe and Mackenzie (1976) since we added an age zero class, including specimens with no tooth fully erupted. Our samples represented eight age classes in the following manner: 33 specimens for age zero, 79 specimens for age one, 65 specimens for age two, 58 specimens for age three, 65 specimens for age four, 65 specimens for age five, 62 specimens for age six, and 67 specimens for age 7. A complete list of examined specimens by age categories is available from authors upon request.

Three-dimensional coordinates were recorded for 21 landmarks (Fig. 2; Table 1), using a Microscribe MX digitizer. Details of the digitizing procedure are presented in Cheverud (1995). Landmarks chosen reflect diverse developmental and functional relationships among cranial structures (Cheverud 1982; Marroig and Cheverud 2001) and with the exception of the fronto-malare, they are the same as in Marroig and Cheverud (2001).

Fig. 2
figure 2

Didelphis skull depicting landmarks and linear measurements. Refer to Table 1 for description of landmarks

A set of 35 linear measurements was then calculated from these coordinates (see Porto et al. 2009 for the measurements list and functional/developmental groups). Bilaterally symmetrical measurements were averaged. If the skull was damaged on one side, the other was used instead of the average. All specimens were measured twice, allowing the estimation of repeatability to account for measurement error (Falconer and Mackay 1996). Finally, pooled within-group variance/covariance phenotypic matrices (V/CV) were extracted from these 35 measurements, for each age class, using a GLM routine in SYSTAT 11 (SYSTAT Inc., Richmond CA 2004), correcting for sexual dimorphism whenever present. These matrices were then compared across consecutive age classes (0 vs. 1, 1 vs. 2, and so on) using the random skewers plus the SRD method.

Mammal Examples

We also present comparisons between V/CV matrices obtained for primates (genera Cebus and Saimiri) and marsupials (genera Macropus and Caenolestes). The sample, landmarks, measurements and procedures to obtain those V/CV matrices can be found in Marroig and Cheverud (2001) and Porto et al. (2009). It is worth noting that all matrices used here are pooled within-groups V/CV phenotypic matrices properly controlled for sources of variation and covariation that are not directly related to the genotype-phenotype map per se (e.g., geography, sex, species). A complete list of examined specimens is available from authors upon request.

G- and P-matrices—Calomys

As another example of the application of the SRD method, we compared P- and G-matrices belonging to a single population of the sigmodontine rodent Calomys expulsus bred in captivity. All 215 individuals were measured following the same procedures described above for D. virginiana. Because this population represents an unbalanced breeding design, the animal model for variance partitioning (Lynch and Walsh 1998) was optimized under a REML algorithm implemented in R (R Development Core Team 2010). Age and sex were accounted for as fixed sources of variation. Heritabilities for the 35 linear measurements were extracted first; genetic correlations between all pairs of traits were estimated by fixing the heritabilities obtained by each univariate analysis. The V/CV G- matrix, which summarizes information regarding heritabilities and genetic correlations for all cranial traits, was then compared to its phenotypic counterpart using the random skewers plus the SRD method, based on the expectation that these two matrices have strong similarities, due to previous work regarding the comparison of genetic and phenotypic covariance structure in mammals (e.g., Cheverud 1988, 1995, 1996; Porto et al. 2009).

Results

All results will be presented for V/CV matrices. However, we duplicated all analyses below using the standardized version of all matrices, i.e., the correlation matrices. All results were essentially the same (not shown) and readers can easily duplicate those analyses using our codes, software and the appended matrices on the Electronic supplementary material.

Theoretical Simulations

All theoretical matrices were compared against the standard matrix A (see Electronic supplementary material). Figure 3 (left) shows the SRD output for the first pair of theoretical matrices, in which we made localized alterations on the matrix B structure. The average vector correlation (hereafter, SRD score) along with their 95% confidence intervals are shown for each trait. The average SRD score between the two matrices was 0.88 and is presented as a dotted line on the left panel. The bivariate plot (σ Dev and μ Dev) is presented on the right panel and traits presenting values significantly different from the average of the conjoint distribution are shown with open circles. In this example (see Electronic supplementary material), only the first trait’s association to others was altered, by removing it from its original module. We can see a clear effect on the first five traits, which present low SRD scores. Among these five traits, the first one is the most affected, presenting a very low SRD score, while the other four show smaller alterations. Other traits had very small scores alterations, most of those lower than 0.1, and these are related to the Gaussian noise included in the generation of these matrices. The bivariate deviations plot (Fig. 3 right) also identifies where differences and similarities between the two matrices lay. The first five traits are significantly different from the average SRD score, with P = 0.025. Trait 1 (upper left corner) is by far the most divergent between matrices A and B, corresponding to the smallest average SRD value and the largest variation on the SRD scores. Traits 2–5 also present evident differences between the matrices.

Fig. 3
figure 3

Comparison between matrix A and matrix B (see Electronic supplementary material) with the profile plot on the left panel and the bivariate plot on the right panel. Left panel—SRD scores distribution with the average (black dot) plus two times the standard deviation on each side (vertical bar) for each of the 20 traits. The overall SRD average is presented as a dotted line. Right panel—on the X-axis the trait-specific SRD score deviations from the global average of the SRD scores (μ Dev) and on the Y-axis we have trait-specific standard deviation (σ) differences from the global average σ of the SRD scores (σ Dev). Traits significantly different (lower SRD score and larger variance in the selection responses) between the two matrices are presented as white circles

The second example (Fig. 4) shows the effect of changing two full modules within a matrix (matrix C). Alterations are clearly seen in the first ten traits. Unaffected traits show higher SRD scores and lower variances, while affected ones show lower scores and larger variances (left panel). The overall SRD score was 0.67, reflecting the larger re-arrangements made on matrix C, when compared to matrix B. Again, the significance test based on the conjoint distribution correctly identified all the first 10 traits as divergent between matrices A and C (Fig. 4 right panel).

Fig. 4
figure 4

Comparison between matrix A and matrix C (see Electronic supplementary material) with the profile plot on the left panel and the bivariate plot on the right panel. Left panel—SRD scores distribution with the average (black dot) plus two times the standard deviation on each side (vertical bar) for each of the 20 traits. The overall SRD average is presented as a dotted line. Right panel—on the X-axis the trait-specific SRD score deviations from the global average of the SRD scores (μ Dev) and on the Y-axis we have trait-specific standard deviation (σ) differences from the global average σ of the SRD scores (σ Dev). Traits significantly different (lower SRD score and larger variance in the selection responses) between the two matrices are presented as white circles

Figure 5 shows the effect of modifying all between-module correlations, gradually rising them. Results are presented for three different levels of modification, each represented by a different symbol. As can be seen, as we increase intermodule correlations, the SRD scores lower in relation to the original matrix (from 0.9 with matrix D-0.1 to 0.76 with matrix D-0.3). Notice also that the most divergent traits can be easily identified in the bivariate plot (bottom panel). However, it is important to notice that the scale of the deviations from the average SRD score, which reflects the amount of differences between matrix A and matrices D is very small.

Fig. 5
figure 5

Comparison between matrix A and matrices D (see Electronic supplementary material) with the profile plot on the upper panel and the bivariate plots on the bottom panel. Upper panel—SRD scores distribution with the average plus two times the standard deviation on each side (vertical bar) for each of the 20 traits. Difference between module correlations for each D matrix are represented by the symbols: black dots for 0.1, open squares for 0.2, and open diamonds for 0.3. The overall SRD average is presented as a dotted line. Bottom panels—on the X-axis the trait-specific SRD score deviations from the global average of the SRD scores (μ Dev) and on the Y-axis we have trait-specific standard deviation (σ) differences from the global average σ of the SRD scores (σ Dev). Traits significantly different (lower SRD score and larger variance in the selection responses) between the two matrices are presented as white circles. From left to right we have the following corresponding D matrices: black dots for 0.1, open squares for 0.2, and open diamonds for 0.3

Figure 6 shows the comparison between matrix A and E. Matrix E was modified to have the first module (first 5 traits) completely disintegrated from the rest of the matrix and presenting negative covariances among them while the rest of the matrix structure is maintained in regard to matrix A. The average SRD score lowered to 0.6. The SRD clearly identify those 5 traits as the divergent traits between the two matrices, with the profile plot (left panel) showing negative averages of the SRD scores and large variances for these 5 traits and the bivariate plot (right panel) showing a strong divergence between the two matrices on these 5 traits (notices the scale of the both axes in the right panel). Furthermore, all first five traits deviate significantly from the bivariate conjoint expectation (right panel).

Fig. 6
figure 6

Comparison between matrix A and matrix E (see Electronic supplementary material) with the profile plot on the left panel and the bivariate plot on the right panel. Left panel—SRD scores distribution with the average (black dot) plus two times the standard deviation on each side (vertical bar) for each of the 20 traits. The overall SRD average is presented as a dotted line. Right panel—on the X-axis the trait-specific SRD score deviations from the global average of the SRD scores (μ Dev) and on the Y-axis we have trait-specific standard deviation (σ) differences from the global average σ of the SRD scores (σ Dev). Traits significantly different (lower SRD score and larger variance in the selection responses) between the two matrices are presented as white circles

Ontogenetic Trajectory in Didelphis—A Case Study

Comparisons involving age classes throughout D. virginiana ontogeny showed a very conservative pattern of selection response (Fig. 7) with all comparisons ranging from 0.92 to 0.99 overall similarity in the average SRD scores. Most traits presented very high SRD scores and correspondingly low variances for all pairwise comparisons (average vector correlations larger than 0.9). Notwithstanding, we found few and important exceptions. Particularly interesting are changes occurring at the very beginning of ontogeny (age class 0 vs. 1). As can be seen in Fig. 7, BRLD presented a quite high and negative SRD score, result of a general change in the direction of the response vectors from one age to the other. A simple inspection of the age 0 and age 1 matrices (see Electronic supplementary material) show that BRLD has negative covariance with all other traits at age 0, while covariances among the other 34 traits are all positive at this age. Conversely, at age 1 covariances among all traits are positive. Therefore, the SRD was able to detect this single difference between age 0 and 1 very accurately (see Fig. 7).

Fig. 7
figure 7

Comparisons between Didelphis age class ontogenetic matrices. For each consecutive age classes comparisons we present both the profile plot on the left panel and the bivariate plot (σ Dev × μ Dev) on the right panel. The 35 traits order in the plot corresponds to those in Table 1

Marked changes in the direction of response vectors can also be observed across comparisons among age classes 2 versus 3 and 3 versus 4 (Fig. 7). In both cases, ZIMT and BAOPI presented remarkably low mean SRD scores (around 0.5) and large variances, indicating broad alterations in the direction of the response vectors for these two traits across these age classes. Other significant changes (although to a smaller extent) involved traits ISPM, NABR, APETTS, LDAS, and BRLD. No further differences could be observed. Again, a visual inspection (see Electronic supplementary material) of those matrices reveal that traits highlighted by the SRD are those that present negative or close to zero covariances with all others traits in age 3 (particularly ZIMT and BAOPI, the two most divergent traits).

Lastly, we found changes in an almost continuous fashion across comparisons among age classes 4 versus 5, 5 versus 6, and 6 versus 7 (Fig. 7). In these comparisons, BAOPI again emerged as one of the most divergent traits among all. Still, SRD scores for this trait were quite high, around 0.8. Other small scale changes can be observed relating to BRLD, APETTS, PTTSP, ISPM, and MTPNS. No other discrepancy among age classes was verified.

Mammal Examples

Comparisons involving mammalian taxa revealed interesting patterns. Figure 8 shows the comparison between Caenolestes and Macropus, two marsupial taxa. The two matrices are relatively similar, with an average SRD value of 0.76. However, we can see that major alterations in the direction of response vectors are associated to basicranial traits. APETTS, OPILD, and BAOPI are the most diverging traits, presenting SRD scores lower than 0.3. Other evidently diverging traits include LDAS, BRLD, BRPT and NABR, all of which present SRD scores significantly lower and with larger variances in relation to the remaining traits (Fig. 8 right panel).

Fig. 8
figure 8

Comparison between Caenolestes and Macropus matrices (see Electronic supplementary material) with the profile plot on the left panel and the bivariate plot on the right panel. Left panel—SRD scores distribution with the average (black dot) plus two times the standard deviation on each side (vertical bar) for each of the 35 traits. The overall SRD average is presented as a dotted line. Right panel—on the X-axis the trait-specific SRD score deviations from the global average of the SRD scores (μ Dev) and on the Y-axis we have trait-specific standard deviation (σ) differences from the global average σ of the SRD scores (σ Dev). Traits significantly different (lower SRD score and larger variance in the selection responses) between the two matrices are presented as white circles

The comparison between two New World Monkeys genera, Cebus and Saimiri, show only small changes (notice the scale of both axes in the bivariate plot) observed across traits (Fig. 9), with most traits showing averages above the overall average SRD scores (0.91) and with small SRD scores variance. Eleven traits presented significant alterations in their relationships to others between the two genera, with SRD scores varying from 0.7 to 0.85 and with a variance two or three times larger compared to the others (BAOPI, LDAS, BRLD, BRPT, OPILD, PTFM, NSLNA, FMZS, NABR, PTAPET, PTTSP). These traits are related to some landmarks in particular: LD, AS, BR, PT, NA, BA, OPI. Most of these landmarks were identified as involved in the largest differences in shape among Cebus and Saimiri along the two major axes of allometric variation (ontogenetic and evolutionary allometry) described earlier in a morphometric study of these two genera (see Table 6 in Marroig 2007).

Fig. 9
figure 9

Comparison between Cebus and Saimiri matrices (see Electronic supplementary material) with the profile plot on the left panel and the bivariate plot on the right panel. Left panel—SRD scores distribution with the average (black dot) plus two times the standard deviation on each side (vertical bar) for each of the 39 traits. The overall SRD average is presented as a dotted line. Right panel—on the X-axis the trait-specific SRD score deviations from the global average of the SRD scores (μ Dev) and on the Y-axis we have trait-specific standard deviation (σ) differences from the global average σ of the SRD scores (σ Dev). Traits significantly different (lower SRD score and larger variance in the selection responses) between the two matrices are presented as white circles

G- and P-matrices—Calomys

Finally, comparing Calomys G and P-matrices by random skewers yields a matrix correlation of 0.74 while the average SRD score was 0.87. However, when we visualize this comparison under the SRD method, (Fig. 10) it is clear that the main differences between these matrices lie in traits associated with the zygomatic region—PMZS, PMZI, ZSZI, ZIMT, and PTTSP. With the exception of PTTSP, all these traits have heritabilities close to zero, contrasted with an average heritability of 0.32 for all traits.

Fig. 10
figure 10

Comparison between the genetic and phenotypic matrices of the Calomys expulsus colony (see Electronic supplementary material) with the profile plot on the left panel and the bivariate plot on the right panel. Left panel—SRD scores distribution with the average (black dot) plus two times the standard deviation on each side (vertical bar) for each of the 35 traits. The overall SRD average is presented as a dotted line. Right panel—on the X-axis the trait-specific SRD score deviations from the global average of the SRD scores (μ Dev) and on the Y-axis we have traitspecific standard deviation (σ) differences from the global average σ of the SRD scores (σ Dev). Traits significantly different (lower SRD score and larger variance in the selection responses) between the two matrices are presented as white circles

Discussion

Patterns and magnitudes of relationships among traits (variance/covariance matrices) play a central role in the quantitative evolutionary theory. While empirical comparisons among populations representing simple systems (four or less traits) can be easily accomplished by visual inspection, this task becomes daunting as the number of traits increases. For example, while for three traits we have three correlations, this number raises to 28 among eight traits, and so on, in a manner that we have 741 correlations among 39 traits. Bivariate plots comparing two or more populations become impractical, for obvious reasons, when the number of traits and correlations increase.

There are several available methods that can be used to compare matrices. Current methods are capable of giving an overall index of similarity between matrices (Random skewers, Krzanowski, Matrix correlation, T-method), but none of them can pinpoint where (e.g., which trait) differences are found. Conversely all above methods are also not suited to detect and describe local similarities between matrices despite some divergence in other set of traits (or modules). A possible alternative is the common principal component analysis (CPC). As previously mentioned, CPC tests a series of nested hypotheses, from unrelated matrices, matrices that share only one PC, two PCs, and so on, up to equality of two (or more) matrices. However, CPC is based on shared principal components among matrices and there is no reason to expect that multivariate contrasts between traits, captured in principal components, would be homologous between matrices being compared, even when they have similar biological origins and causal factors (Houle et al. 2002). Another problem is that significance tests based on the null hypothesis that both matrices are identical would almost always be rejected, if the experiment has enough power (Marroig and Cheverud 2001; Cheverud and Marroig 2007). Statistically significant differences between matrices does not necessarily equal biologically significant differences (Shaw 1987; Cowley and Achtley 1992; Houle et al. 2002). The problem is analogous to a t-test where even a small difference in the averages of two populations (say, 3%) can be deemed significant when large sample sizes are involved in the estimates. In fact, we can almost guarantee that any biological population would be somehow different from other populations in its correlation patterns and magnitudes (either phenotypic or genetic). A population is made of individuals which in sexual diploid organisms, represent unique gene combinations. So, as a corollary, almost all biological populations will be different from one another. As genetic variance and covariance matrices result from the phenotypic effects of each allele at each locus affecting the traits, it is quite unlikely that any two populations will have the same allele frequencies at all loci. Therefore, the critical question for an evolutionary quantitative genetic theory of any use is not whether or not two populations are different. This can be taken for granted based on theoretical grounds alone. Instead, perhaps a more informative set of questions would be: to what extent do two matrices (populations) differ? Are those differences generalized or localized? Are these differences concentrated in a small number of traits or in an overall change in pattern? The SRD method described here is a useful tool to explore the questions above. Both the SRD profile and the bivariate plots are useful ways to summarize differences and similarities between any pair of matrices. Furthermore, the SRD results can be used both in a exploratory way, as well as testing a priori hypothesis.

It has been suggested that important differences in G-matrices are those that impact on the evolutionary divergence among populations and/or species (Marroig and Cheverud 2001; Arnold 2005). We agree with such point of view and suggest that studies dealing with interpretations of evolutionary processes, based on quantitative genetics theory and on the stability of G-matrices, can reach robust conclusions as long as differences among matrices are taken into account. Within this context, methods devised to pinpoint where matrices do differ and where localized structural similarity is maintained would be extremely useful for evolutionary biology, and that is exactly the SRD method’s purpose. We used four main evidences to support our method: (1) theoretical matrix comparisons; (2) comparisons among age classes for a single species with known ontogeny; (3) comparisons among mammalian taxa previously studied; and (4) comparison between an available G-matrix and its phenotypic counterpart.

When comparing theoretical matrices built with a known structure, the SRD method was able to determine exactly which traits were responsible for differences among them, even when the matrices were riddled with rather strong noise (Figs. 3, 4, 5, 6). Differences between matrices are manifested as lower overall (average) correlations for the vectors representing the direct and indirect responses of particular traits as well as increased variances, compared to other traits. The method proved to be very accurate, since it was capable of detecting small scale alterations (e.g., when one trait was removed from its module) generated by a localized effect. At the same time, it was also able to detect broader scale changes (e.g., altering intermodule correlations) produced by more generalized effects. In all cases, unchanged traits only presented small alterations, expected from the introduced Gaussian noise, lending further support for the method. In other words, both plots (profile and bivariate) produced by the SRD can be used in an exploratory way to examine matrix similarities and/or differences, depending on the context of the study and the researcher interests. Besides, the bivariate deviations plot test explicitly which traits are, on average, below the overall similarity (average SRD score) of the traits in the two matrices, as well as more variable on the responses to simulated selection. Therefore, by making use of the conjoint distribution of the deviations (σ Dev and μ Dev), we can formally test the hypothesis that a set of traits diverge significantly between the two matrices. Yet, it is important to keep in mind that this divergence is measured in regard to the overall level of similarity of both matrices. Therefore, if both matrices are globally very similar, some traits will still be identified as the “most divergent” in the bivariate plot, even though this divergence might be quite small on absolute terms. This point can be easily grasped comparing Figs. 4 and 6. Notice the scale of the X- and Y-axis on the bivariate plot, as well as the overall similarity level between matrices A × C and A × E.

Similar support for the SRD could be observed from Didelphis age classes comparisons where differences are very localized and can be easily observed by an eye inspection of the matrices (see Electronic supplementary material). Detailed descriptions of its ontogeny are available (Abdala et al. 2001), allowing a well-informed interpretation of the SRD scores. Changes at the very beginning of postnatal ontogeny were concentrated in a single neurocranial trait (bregma-lambda—BRLD). This change is probably related to the development delay of the central nervous system in marsupials. The argument is based on the fact that marsupials are born after a short gestation. Since neonates need to travel from the mother’s vaginal canal to attach to a teat, there is a huge investment in the early development of the forelimbs and facial structures (skeleton and muscles). Conversely, neurocranial development will occur more extensively during lactation (Smith 1996, 1997, 2001). As the bregma-lambda (BRLD) represents the longitudinal measurement of the neurocranium, the observed differences at earlier ontogenetic stages reflects the moment where the braincase starts growing together with the rest of the skull. This hypothesis is supported by a geometric morphometric analysis of skull growth in Didelphis (Sebastião and Marroig, in preparation, data not show) and can be easily observed too in the Electronic supplementary material by a quick inspection of the ages 0 and 1 matrices. Other important changes across age classes relates to the zygomaxillare inferior—maxillary tuberosity (ZIMT). This is evident in comparisons involving age classes 2, 3 and 4, and is related to the emergence of new molar teeth. As mentioned earlier, marsupial age classes are determined by tooth replacement and wear. These early ages (2, 3 and 4) are characterized by the continuous addition of new molar teeth at the tooth series, up to the point where four molars are emerged (age 4). As these new molar teeth appear in the end of the molar series, there is a rapid increase of the ZIMT distance, even inside a single age class, increasing the variance of this measurement and altering its covariance with others. This punctuated nature of the teeth eruption explains why ZIMT has an overall lower SRD score in these comparisons. Again, this can be easily verified by a simple inspection of the ages 2, 3 and 4 in the supplementary material. In particular, age 3 presents a low or negative covariance of ZIMT with all others traits which reflect a increased variation of this measure. Age 3 is defined by the third deciduous pre molar being present and the third molar erupting. Some specimens have the third molar erupting and the bone already forming around the tooth while others have the third molar erupting but still without any trace of the bone around it at the position where the landmark MT is taken. In those cases the landmark MT is taken at the root of the second molar which in turn lead to a huge increment in the variance of any distance based on landmark MT. This lead to a huge increase in the variation of ZIMT for this age class. Most of our 35 traits presents coefficient of variation for each age class around 7–11% in our sample of D. virginiana, but ZI-MT presents a CV of 58% at age 3 due to the way the age class is defined with the third molar erupting. Lower SRD scores are also found for the basion-opisthion (BAOPI), but for a different reason: lower growing rates. BAOPI describe the foramen magnum length, which has a lower growing rate throughout ontogeny, not following other measurements. Its size does not increase as much as the rest of the skull and, therefore, its covariances with other traits are constantly changing across age classes. In fact, BAOPI has the smaller average increment across consecutive ages and the ratio between the average of age 7 divided by the average of age 0 is just 1.26 while all other traits are 2 to almost 5 times larger in this same ratio (see Electronic supplementary material). Therefore, like the theoretical matrices results, the ontogenetic matrices of Didelphis are simple and clear examples showing the application of the SRD and how this tool is able to pinpoint where the differences and similarities between any pair of matrices are concentrated.

The results of the comparisons among mammalian taxa also support the SRD method as a useful tool in the arsenal for comparing variance/covariance patterns and magnitudes. As can be seen in Fig. 8, differences between Caenolestes and Macropus seem to be mainly associated to the cranial base. Traits APETTS, OPILD and BAOPI present very low SRD scores. This is particularly interesting if we consider biological differences between these marsupial taxa, specially the skull connection with the vertebrate column. In Macropus, the medulla oblongata (extension of the spinal cord) enters the foramen magnum in a ventrally displaced position, result of its specialization to the bipedal posture. Caenolestes, as most of marsupials, has its medulla entering the skull through a posteriorly displaced foramen, due to a quadruped posture. In this sense, observed differences between these taxa for cranial base traits may reflect a specialization to bipedalism in Macropus. This is consistent with the fact that comparisons between Macropus and other marsupial taxa with posteriorly displaced foramen magnum (results not shown) reveal the same basic pattern of trait divergence.

Another interesting result comes from the CebusSaimiri comparison. Not only are they sister taxa, but also share very similar integration patterns and ontogenetic trajectories with differences being a result of simple allometric scaling (Marroig 2007). Yet, they have dissimilar integration magnitudes (Marroig and Cheverud 2001; Shirai and Marroig 2010) and, therefore, changes between these two matrices should follow the pattern described by our third theoretical matrix comparisons, in which we changed intermodule correlations magnitudes and consequently the overall magnitude of integration. As can be seen in Fig. 9, observed changes agree with the expected pattern, with high values for the SRD scores of almost all traits. Notice also the small scale of both axes with only very small deviations from the averages. Interestingly, traits showing the larger differences between the two matrices and a larger variance in the vector correlation distribution are those that involve distances between the same landmarks described in Marroig (2007) involved in the larger allometric shape differences between these two genera.

Finally, in the SRD comparison between Calomys G- and P-matrices, it is clear by their average SRD score (and also by the average RS correlation) that these two matrices have strong similarities in their structure. With respect to their differences, almost all traits showing smaller vector correlations and larger variances between these matrices have heritabilities close to zero. This result reflects the fact that the estimates of genetic parameters in this particular Calomys sample (so far, since these are preliminary results based on a subset of the sample that will be available in the future) are based on a small effective sample size (average Neff = 12, see Cheverud 1995). Thus, due to the low levels of genetic variation available for these traits in this sample estimations of genetic correlations based in these preliminary heritabilities misbehave under the REML algorithm, reducing the overall level of similarity between G and P. It is also possible that those traits identified in Fig. 10 represent indeed local divergence in matrix structure between the G- and P-matrices of Calomys. Further work will help clarify this issue.

It is worth mentioning that SRD profiles can become impractical if the number of traits increases beyond perhaps 80 or 100 traits. The same is not true for the SRD bivariate plot, which would not be affected by the number of traits and can be easily used to compare matrices with large ranks. In any case, both types of graphs can be transformed into tables and the user can inspect these tables even if the dimensionality of the problem (rank of the matrices) is not manageable to present in a graphical form, as the profile plot (say 200 or 300 traits). In fact, our executable gives the user a table which he/she can input in any other program to plot the results.

Users should also be aware that matrices are estimated with some degree of error (Cheverud 1995, 1996) and indefinitely increasing the number of traits will have a negative impact on the estimation of the true population matrix structure, unless bigger samples are used. This problem can be very serious in current state of the art applications in the field of geometric morphometrics, where it seems to be a common practice to have just a few specimens per species sampled, while attempting to estimate variance/covariance matrices that are usually increased two- or three-fold (depending if 2D or 3D landmarks are being used) in regard to the number of original landmarks. This is not a problem of the SRD method per se, but one that affects any method or statistical inference based on small samples and high rank matrices that, accordingly, will have a strong noise to signal ratio.

Conclusion

We here extended the random skewers approach and described a method (Selection Response decomposition—SRD) capable of accomplishing the goal of pinpointing similarities and differences between pairs of matrices. In order to test the efficiency of the SRD in detecting particular differences among matrices, we performed a series of comparisons. First, theoretical matrices with known a priori structure were compared and, in all cases, the method was able to determine exactly which traits were responsible for differences among them. Next, comparisons were made among age classes for a single species through its ontogeny. The observed changes in the SRD scores mirror clear ontogenetic changes in traits relationships that are easily observed on the matrices and on the average growth across the defined static ages. Last, comparisons were made among mammalian taxa and between a phenotypic and genetic V/CV matrix. Detailed interpretations could be made regarding matrix comparisons with the SRD which, to us, are enlightening if we compare it to traditional global indexes of similarity (random skewers, T-method, among others), because it is possible to dissect to some extent where changes and stability in matrix structure are concentrated. In this sense, SRD provides a step forward in our arsenal of methods for matrix comparisons and should provide the quantitative evolutionary biology with a new tool for analyzing and comparing variance/covariance patterns.