Print

Cross-sex genetic correlation

Cross-sex genetic correlations (implemented in ASReml)


Background


Many traits are expressed in both males and females. Considering cross-sex genetic correlations is often worthwhile.

Firstly, an often-made (implicit) assumption is that the same genes underlie the expression of a given trait in both sexes. Hence, models may include 'sex' as a fixed effect (thus correcting for possible differences in the mean), but it may also be worthwhile to check the sex-specific additive genetic variances and the covariance between them. If the genetic correlation (scaled covariance) between the sexes is statistically equal to unity, one has a non-arbitrary argument to consider both sexes jointly in further analyses of the trait. Even if the genetic correlation is unity, the additive genetic variance and/or the heritability of a trait may still vary between the sexes.

Secondly, in many biologically interesting situations, we may expect that the sex-specific breeding values of traits are not perfectly aligned across the sexes. That is, the genetic correlation will be below unity, or even below zero. This expectation is most pronounced in analysis of intralocus sexual conflict, where one expects that fitness (or fitness-related traits) are negatively genetically correlated across the sexes. Further examples would include investigation of multiple traits, where cross-trait/cross-sex relationships may entail 'hidden' repercussions for understanding the evolutionary dynamics. An example is provided by Brommer et al. (2007, PLoS ONE e744).

Implementation


Below, I present a generic implementation of cross-sex correlations in ASReml by coding trait "A" as two different traits depending on whether it is expressed in a female (trait "trait_fem") or a male (trait "trait_mal"). The data-file therefore contains missing values (e.g. '-999') for the expression of the trait in the opposite sex. Hence, individual i is a female with trait_fem = 10 and trait _mal = -999, whereas individual j who is a male has trait _fem = -999 and trait _mal = 10, and so on. This already illustrates how a two-sex model differs from a simple two trait model (see Bivariate models) in the way no single individual expressed a trait as both a female and a male. Hence, whereas phenotypic (and permanent environmental and residual) correlations are meaningful for ordinary two-trait models, they are not estimable in two-sex models. The only estimable correlation is on the additive genetic level, where the resemblance of relatives of opposite sex can be used to estimate the additive genetic covariance. In ASReml, one therefore a priori sets these covariances to zero. In other software, this may not be possible and one should check that zero (or a value close to zero) are estimated for these inestimable covariances. See the code below on how to implement this in ASReml. If one can identify common-environmental effects than these can be added as for the Bivariate models.

Second, given the explicit interest in testing whether the cross-sex correlation is equal to unity or zero, it is worthwhile to implement testing. Because we are operating in a likelihood framework, it makes sense to construct a model where the genetic correlation is a priori constrained to unity. Below, this is implemented in “part 2” of the code (by specifying “!dopart 2” you can run this code). The likelihood of a thus constrained model can be compared with an unconstrained one using a Likelihood Ratio Test (LRT), which is equal to -2 x difference in Log(Likelihood). A similar test can be constructed for testing whether the covariance is zero (“part 3”), which is also implemented elsewhere on this site.

Notice

(i) Below I present my implementation of how to constrain the genetic correlation to unity. I do this by using the CORGH variance structure (which is based on estimating a correlation and 2 variances (in that order), rather than a variance, covariance and second variance). I further fix the correlation element in the matrix to 0.9999. In practice, this will return an estimate for the correlation of 1.0000 (you can check the output file for this). I do this, because if you a priori set the correlation to 1, ASReml will automatically assume that the sex-specific variances are equal. Arguably, however, one can have both a genetic correlation of 1 (ranking of the breeding values is identical in the two sexes), but still different variances. There are also other ways to specify a genetic correlation of unity.

(ii) In carrying out a LRT for testing whether the genetic correlation differs from unity, we encounter one of the more philosophical issues of the mixed-model frequentist approach. This issue has to do with the boundary conditions on the inference that one wishes to draw. In a standard approach, one would test the LRT as a chi-square value with one (1) degree of freedom, because the covariance term is constrained. However, because a meaningful correlation is constrained to the interval -1, +1, testing whether a correlation differs from unity is essentially asking whether it is significantly lower than one. Because of this, one can argue that the observed chi-square has to be tested against a chi-square distribution that is an equal mix of a chi-square distribution with one degree of freedom and one with zero degrees of freedom. In practice, this mix means (in this case!), one-tailed testing (or: dividing your P-value by two). Note that a similar argumentation applies to testing whether variance components differ from zero (since variances cannot be negative). See, for example, Self & Liang. (1987; Journal of the American Statistical Society 82: 605-610) for details on these issues.

ASREML  model for r_a across sexes, no PE corr across sexes

#next section describes data file, each column heading must be indented

  ANIMAL	!P	
  trait_mal	 !M-999  # missing value defined; it often helps to divide each sex-specific trait
  trait_fem	 !M-999  # by its own standard deviation to aid in convergence
  FixedEffect	!I            # a factorial fixed effect
 

ped_all_all.ped  !alpha !make   #!skip 1       # pedigree file with qualifiers

datafile.asd   !dopart 1  # name of datafile and specification of which part of the code below to run
			                 
!part 1
################################################################################
	     # conventional bivariate trait animal model with separate sexes
############################################################################

trait_mal trait_fem ~ Trait  Trait.FixedEffect  !r  Trait.ANIMAL  Trait.ide(ANIMAL)

1 2 2 !STEP 0.01

# Below for error structure. Matrix is US of size number of observations, 0 tells asreml to count them.
# The “!GUFU” specifies that the second matrix element is fixed to the value given (=0)
0      
Trait 0 US !GUFU
   1.0       
   0.000       1.0   

# first matrix is 2x2 (0 counts the number of traits) unstructured matrix (can also use correlation CORR)
Trait.ANIMAL 2
Trait 0 US   
  1
  .1 1
ANIMAL

Trait.ide(ANIMAL) 2
Trait 0 US !GUFU
  1    
   0.000      1
ide(ANIMAL)
# Above also a priori sets the covariance to zero as for the residuals, since no individual was both male and female

!part 2
################################################################################
	     # conventional bivariate trait animal model with separate sexes, rA = 1
############################################################################

trait_mal trait_fem ~ Trait  Trait.FixedEffect  !r  Trait.ANIMAL   Trait.ide(ANIMAL)

1 2 2 !STEP 0.01

0      
Trait 0 US !GUFU 
   1.0       
   0.000       1.0   

# Matrix is 2x2 correlation matrix. First element (that is, the correlation) is fixed to unity. 
# See the explanation on www.wildanimalmodels.org
Trait.ANIMAL 2
Trait 0 CORGH !GFUU 
  0.99999
  1   1
ANIMAL 

Trait.ide(ANIMAL) 2
Trait 0 US !GUFU
  1    
   0.000      1
ide(ANIMAL)


!part 2
################################################################################
	     # conventional bivariate trait animal model with separate sexes, rA = 0
############################################################################

trait_mal trait_fem ~ Trait  Trait.FixedEffect  !r  Trait.ANIMAL   Trait.ide(ANIMAL)

1 2 2 !STEP 0.01

0      
Trait 0 US !GUFU   
   1.0       
   0.000       1.0   

# Matrix is 2x2 matrix with covariance fixed to zero. 
Trait.ANIMAL 2
Trait 0 US   !GUFU
  1
  0 1
ANIMAL

Trait.ide(ANIMAL) 2
Trait 0 US !GUFU
  1    
   0.000      1
ide(ANIMAL)


Menu

Main Menu

Recently visited pages