Top Banner
Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawC on.R GenEpiHelperFunctions.R jepq.txt
39

Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Dec 20, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Longitudinal ModelingNathan, Lindon & Mike

LongitudinalTwinAnalysis_MatrixRawCon.R

GenEpiHelperFunctions.R

jepq.txt

Page 2: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Estimate time-dependent genetic and environmental effects- changes in the magnitude of genetic & environmental influence across time- same versus different genes across development- identify factors driving change versus factors maintaining stability

Improve power by using multiple observations from the same individual and the cross twin cross trait correlations

Why run longitudinal models?

Page 3: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Cholesky Decomposition - Advantages - Logical: organized such that all factors are constrained

to impact later, but not earlier time points- Requires few assumptions, can predict any pattern of change

- Disadvantages- Not falsifiable- No predictions

- Feasible for limited number of measurementsLatent Growth Curve ModelingSimplex Modeling

Common methods for longitudinal data analyses

Page 4: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Recap common pathway model

Latent Growth Models

Simplex Models

Lindon’s esoteric input

Presentation layout

Page 5: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Phenotype 1

1 1 1

AC CCEC

a11

c11e11

Common Path

Phenotype 2

Phenotype 3

f11 f21

f21

AS2 CS2 ES2AS3 CS3 ES3AS1 CS1 ES1

1 1 1 1 1 1 1 1 1

Common Pathway

Page 6: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Common Pathway: Genetic components of variance

Phenotype 1

1

AC

a11

Common Path

Phenotype 2

Phenotype 3

f11 f21

f21

As2 As3As1

1 1 1

f11

f21

f31

a11 X a11’& + = A

as11as22

as33

as11as22

as33

X’

multiComPathACEModel <- mxModel("multiComPathACE",mxModel("ACE",

# Matrices to store a, c, and e path coefficients for latent phenotype(s)

mxMatrix( type="Lower", nrow=nf, ncol=nf, free=TRUE, values=.6, name="a" ),

# Matrices to store a, c, and e path coefficients for specific factors

mxMatrix( type="Diag", nrow=nv, ncol=nv, free=TRUE, values=4, name="as" ),

# Matrix f for factor loadings from common pathway to observerd phenotypes

mxMatrix( type="Full", nrow=nv, ncol=nf, free=TRUE, values=15, name="f" ),

# Matrices A, C, & E to compute variance componentsmxAlgebra( expression = f %&% (a %*% t(a)) + as %*% t(as), name="A" ),

as11 as22 as33

Page 7: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Common Pathway: Matrix algebra + variance components

T1 T2

T1A+C+E

T2A+C+E

Within twin (co)variance

multiComPathACEModel <- mxModel("multiComPathACE",mxModel("ACE",

# Matrices to store a, c, and e path coefficients for latent phenotype(s)

mxMatrix( type="Lower", nrow=nf, ncol=nf, free=TRUE, values=.6, name="a" ),mxMatrix( type="Lower", nrow=nf, ncol=nf, free=TRUE, values=.6, name=”c" ),mxMatrix( type="Lower", nrow=nf, ncol=nf, free=TRUE, values=.6, name=”e" ),

# Matrices to store a, c, and e path coefficients for specific factors

mxMatrix( type="Diag", nrow=nv, ncol=nv, free=TRUE, values=4, name="as" ),mxMatrix( type="Diag", nrow=nv, ncol=nv, free=TRUE, values=4, name=”cs" ),mxMatrix( type="Diag", nrow=nv, ncol=nv, free=TRUE, values=4, name=”es" ),

# Matrix f for factor loadings from common pathway to observerd phenotypes

mxMatrix( type="Full", nrow=nv, ncol=nf, free=TRUE, values=15, name="f" ),

# Matrices A, C, & E to compute variance componentsmxAlgebra( expression = f %&% (a %*% t(a)) + as %*% t(as), name="A" ),mxAlgebra( expression = f %&% (c %*% t(c)) + cs %*% t(cs), name=”C" ),mxAlgebra( expression = f %&% (e %*% t(e)) + es %*% t(es), name=”E" ),

Page 8: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

1 / 0.5 1

MZ T1 T2

T1A+C+E A+C

T2A+C A+C+E

DZ T1 T2

T1A+C+E 0.5@A+C

T20.5@A+C A+C+E

Twin 1 Twin 2

# Algebra for expected variance/covariance matrix in MZ

mxAlgebra( expression= rbind ( cbind(A+C+E , A+C),

cbind(A+C , A+C+E)), name="expCovMZ" ),

# Algebra for expected variance/covariance matrix in DZ

mxAlgebra( expression= rbind ( cbind(A+C+E , 0.5%x%A+C),

cbind(0.5%x%A+C ,A+C+E) ), name="expCovDZ" )

CP Model: Expected covariance

Page 9: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Got longitudinal data?

Phenotype 1

Time 1

Phenotype 1

Time 2

Phenotype 1

Time 3

How do variance components change over time?

Are they stable?

How to best explain change? Linear, non-linear?

Page 10: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Common Pathway Model

1

AI

a11c11

e11

f11 f21

AS2 CS2 ES2AS3 CS3 ES3AS1 CS1 ES1

1 1 1 1 1 1 1 1 1

1

CI

1

EI

f31

m

as11 as22 as33cs11

es11cs22

es22 cs33

es33

B

Page 11: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

CP to Latent Growth Curve Model

1

A1

a11c11

e11

f11f21

AS2 CS2 ES2AS3 CS3 ES3AS1 CS1 ES1

1 1 1 1 1 1 1 1 1

1

C1

1

E1

f31

m1

as11 as22 as33cs11

es11cs22

es22 cs33

es33

B1

f12

1

A2

a22 c22e22

f22

f32

1

C2

1

E2

m2

B2

f11

f21

f31

f11 f12

f21 f22

f31 f32

a11

c11

e11

a11

a22

c11

c22

e11

e22

nf <- 1

nf <- 2

Phenotype 1

Time 1

Phenotype 1

Time 2

Phenotype 1

Time 3

Page 12: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

CP to Latent Growth Curve Model

1

A1

a11c11

e11

f11f21

AS2 CS2 ES2AS3 CS3 ES3AS1 CS1 ES1

1 1 1 1 1 1 1 1 1

1

C1

1

E1

f31

a21

c21

e21

m1

as11 as22 as33cs11

es11cs22

es22 cs33

es33

B1

f12

1

A2

a22 c22e22

f22

f32

1

C2

1

E2

m2

B2

f11

f21

f31

f11 f12

f21 f22

f31 f32

a11

c11

e11

a11

a21 a22

c11

c21 c22

e11

e21 e22

nf <- 1

nf <- 2

Phenotype 1

Time 1

Phenotype 1

Time 2

Phenotype 1

Time 3

Page 13: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Latent Growth Curve Model

Phenotype 1

Time 1

1

AI

a11c11

e11

Intercept

Phenotype 1

Time 2

Phenotype 1

Time 3

1 10

AS2 CS2 ES2AS3 CS3 ES3AS1 CS1 ES1

1 1 1 1 1 1 1 1 1

1

CI

1

EI

1

As

a22 c22e22

Slope

11 2

1

Cs

1

Es

a21

c21

e21

im sm

as11 as22 as33cs11

es11cs22

es22 cs33

es33

Twin 1

Bi Bs

Intercept: Factor which explains initial variance components (and mean) for all measures. Accounts for the stability over time.

Slope: Factor which influences the rate of change in the variance components (and mean) over time. Slope(s) is (are) pre-defined: linear & non linear (quadratic, logistic, gompertz etc) hence factor loading constraints required.

Page 14: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Phenotype 1

Time 1

1

AI

a11

Intercept

Phenotype 1

Time 2

Phenotype 1

Time 3

1 10

AS2 AS3AS1

1 1 1

1

As

a22

Slope

11 2

a21

as11 as22 as33

Twin 1

LGC Model: Within twin genetic components of variance

a11

a21 a22

aS11aS22

aS33

1 0

1 1

1 2

Genetic pathway coefficients matrix

Factor loading matrix

Residual genetic pathway coefficients matrix

Page 15: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

1 0

1 1

1 2

& +a11

a21 a22

Xa11 a21

a22

’= A

aS11aS22

aS33

aS11aS22

aS33

X’

lgcACEModel <- mxModel("lgcACE",# Matrix for a path coefficients from latent factors to Int’ & Slope latent factorsmxMatrix( type="Lower", nrow=nf, ncol=nf, free=T, values=0.2, name=”a" ),

# Matrix for a path coefficients from residuals to observed phenotypesmxMatrix( type="Diag", nrow=nv, ncol=nv, free=T, values=0.2, name=”as”

# Factor loading matrix of Int & Slop on observed phenotypesmxMatrix( type="Full", nrow=nv, ncol=nf, free=F, values=c(1,1,1,0,1,2), name="F" ),

a112 + aS11

2 = Avar time 1

a112 + a21a11

+ a21a11 + a222 + aS22

2 = Avar time 2

a112 +2a21a11 + 2a21a11+ 2a22

2 + aS332 = Avar time 3

LGC Model: Specifying variance components in R

# Within twin total genetic (co) variance components # Latents factors + residuals

mxAlgebra … F %&% (a %*% t(a)) + as %*% t(as), name="A" ),

Page 16: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Phenotype 1

Time 1

Intercept

Phenotype 1

Time 2

Phenotype 1

Time 3

1 10

Slope

11 2

Im Sm

# Means for Intercept and Slope

# mxMatrix( type="Full", nrow=1, ncol=nv, free=TRUE, values= 80, name="Mean" ),

mxMatrix(type="Full", nrow=2, ncol=1, free=T, values=c(1,0.1), labels=c("Im","Sm"), name="Mean"),

# Betas / Sex effects on Int & Slope means

mxMatrix(type="Full", nrow=2, ncol=1, free=T, values=0.4,labels=c("Bi","Bs"), name="Beta" ),

# Factor loading matrix of Intercept and Slope on observed phenotypes

mxMatrix( type="Full", nrow=nv, ncol=2, free=F, values=c(1,1,1,0,1,2), name="F" ),

Twin 1

Bi Bs

LGC Model: Means & sex in R

Bi

Bs

im

sm

1 0

1 1

1 2

Means on observed phenotypes versus means on Intercept & Slope?

Page 17: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Phenotype 1

Time 1

Intercept

Phenotype 1

Time 2

Phenotype 1

Time 3

1 10

Slope

11 2

Im Sm

mxAlgebra … (F %*% (Mean + (sex_t1 %x% Beta))) … name = "expMean"),

Xim

sm

1 0

1 1

1 2

+

Bi Bs

SexT1

Bi

Bs

@ = Expected means for Twin 1

im + BiSexT1

sm+ BsSexT1X

1 0

1 1

1 2

(im + BiSexT1)

(im + BiSexT1 ) + 1(sm + BsSexT1 )

(im + BiSexT1) + 2(sm + BsSexT1 )

=

Time 1

Time 2

Time 3

Twin 1

LGC Model: Sex on the Means Algebra

Page 18: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

LGC Model: LongitudinalTwinAnalysis_MatrixRawCon.R

1. Inspect proportions of variance explained by A, C & E

2. Standardize pathway coefficients

3. Practical: Fit nested models (AE, CE & E) & compare to ACE

4. Practical: Change factor loadings to -1, 0, & 1 on slope & compare fit to ACE

5. Practical: Calculate genetic factor correlations between Intercept & Slope

6. Estimate the genetic factor correlation under the first model i.e. F=c(1,1,1,0,1,2)

7. Practical: Estimate the genetic factor correlation under the 2nd model i.e. F=c(1,1,1,-1,0,1)

8. Practical 3: Drop C specific effect on Slope & compare to full model

Page 19: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.
Page 20: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Phenotype 1

Time 1

1

AI

a11c11

e11

Intercept

Phenotype 1

Time 2

Phenotype 1

Time 3

1 10

AS2 CS2 ES2AS3 CS3 ES3AS1 CS1 ES1

1 1 1 1 1 1 1 1 1

1

CI

1

EI

1

As

a22 c22e22

Slope

11 2

1

Cs

1

Es

a21

c21

e21

im sm

as11 as22 as33cs11

es11cs22

es22 cs33

es33

Bi Bs

Latent Growth Curve Model

Page 21: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Phenotype 1

Time 1

Phenotype 1

Time 2

Phenotype 1

Time 3

me meme

1 1 1

u11 u22 u33

Twin 1

1

I1

i11

LF1

1

m1

b1

1

I3

i33

1

LF3

1

I2

i22

1

LF2

m2 m3

b2 b3

lf21 lf32

Simplex Models

Page 22: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Simplex Models

Simplex designs model changes in the latent factor structure over time by fitting auto-regressive or Markovian chains

Determine how much variation in a trait is caused by stable & enduring effects versus transient effects unique to each time

The chief advantage of this model is the ability to partition environmental & genetic variation at each time point into:

- genetic & environmental effects unique to each occasion- genetic and environmental effects transmitted from previous time points

Page 23: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Simplex Models

innovations

latent factor means

latent factors

observed phenotype

measurement error

Phenotype 1

Time 1

Phenotype 1

Time 2

Phenotype 1

Time 3

me meme

1 1 1

u11 u22 u33

1

I1

i11

LF1

1

m1

b1

1

I3

i33

1

LF3

1

I2

i22

1

LF2

m2 m3

b2 b3

lf21 lf32

Page 24: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Simplex Models: Within twin genetic (co)variance

1 0 0

0 1 0

0 0 1

?

? ?

? ? ?

ai11

ai22

ai33

Transmission pathways

Innovation pathways

A1 A2 A3

A3

A2

A1

Page 25: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Simplex Models: Within twin genetic (co)variance

SimplexACEModel <- mxModel("SimplexACE", mxModel("ACE", mxMatrix( type="Iden", nrow=nv, ncol=nv, name="I"), mxMatrix( type="Lower", nrow=nv, ncol=nv, free=c(F,T,F,F,T,F), name="at" ), # TransmissionsmxMatrix( type="Diag", nrow=nv, ncol=nv, free=TRUE, name="ai" ), # Innovations

mxAlgebra( expression=solve(I-at) %&% (ai %*% t(ai)), name="A" ), # A variance component

1 0 0

0 1 0

0 0 1

0

at21 0

0 at32 0

&ai11

ai22

ai33

-

-1

= Aai11

ai22

ai33

*

1 0 0

0 1 0

0 0 1

0

at21 0

0 at32 0

ai11

ai22

ai33

Transmission pathways

Innovation pathways

A1 A2 A3

A3

A2

A1

Page 26: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Simplex Models: E (co)variance + measurement error

SimplexACEModel <- mxModel("SimplexACE", mxModel("ACE", mxMatrix( type="Iden", nrow=nv, ncol=nv, name="I"), mxMatrix( type="Lower", nrow=nv, ncol=nv, free=c(F,T,F,F,T,F), name=”et" ), # TransmissionsmxMatrix( type="Diag", nrow=nv, ncol=nv, free=TRUE, name=”ei" ), # InnovationsmxMatrix( type="Diag", nrow=nv, ncol=nv, free=TRUE, labels=c("u","u","u"), name="me" ),mxAlgebra( expression=solve(I-et) %&% (ei %*% t(ei)) + (me %*% t(me)), name="E" ),# E var

1 0 0

0 1 0

0 0 1

0

et21 0

0 et32 0

&ei11

ei22

ei33

-

~

= E

ei11

ei22

ei33

*

u11

u22

u33

u11

u22

u33

*

’+

Page 27: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Simplex Models: Means & sex in R

# Estimate latent variable means mxMatrix( type="Lower", nrow=nv, ncol=nv, free=FALSE, values=1, name="T"), mxMatrix( type="Full", nrow=nv, ncol=1, free=TRUE, labels=c("m1","m2","m3"), name="m" ), mxAlgebra( expression= t(T %*% m), name="Means" ),

1

1 1

1 1 1

xm1

m2

m3

= m1 m1+m2 m1+m2+m3

mxMatrix( type="Full", nrow=1, ncol=nv, free=TRUE, labels=c(”b1",”b2",”b3"), values=c(1,1,1), name="Beta" ),mxModel("MZ", mxData(data.frame(mzData,mzDefs), type="raw" ), mxMatrix( type="Full", nrow=1, ncol=1, free=FALSE, labels=c("data.sex_1"), name="sex_t1"), mxMatrix( type="Full", nrow=1, ncol=1, free=FALSE, labels=c("data.sex_2"), name="sex_t2"), mxAlgebra(expression=cbind( (ACE.Means + (sex_t1 %x% ACE.Beta)),

(ACE.Means + (sex_t2 %x% ACE.Beta)) ), name="expMean"),

SexT1b1 b2 b3@ = b1SexT1 b2SexT1 b3SexT1

m1

+b1SexT1

m1 + m2

+b2SexT1

m1+m2+m3

+ b3SexT1

Time 1 Time 2 Time 3

Time 1 Time 2 Time 3

Page 28: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Simplex Model: LongitudinalTwinAnalysis_MatrixRawCon.R

1. Derive standardized pathway transmission coefficients

2. Derive standardized innovation pathway coefficients

3. Illustrate mean changes over time

4. Practical: Fit nested models (AE, CE & E) & compare to ACE

5. Practical: Estimate genetic & environmental correlations between phenotypes

6. Demonstrate how to drop ‘C’ innovations at Time 2 & Time 3 & compare to ACE

Page 29: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.
Page 30: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Phenotype 1

Time 1

1

AI

a11c11

e11

Intercept

Phenotype 1

Time 2

Phenotype 1

Time 3

1 10

AS2 CS2 ES2AS3 CS3 ES3AS1 CS1 ES1

1 1 1 1 1 1 1 1 1

1

CI

1

EI

1

As

a22 c22e22

Slope

11 2

1

Cs

1

Es

a21

c21

e21

im sm

as11 as22 as33cs11

es11cs22

es22 cs33

es33

Bi Bs

Latent Growth Curve Model

Page 31: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Phenotype 1

Time 1

Phenotype 1

Time 2

Phenotype 1

Time 3

me meme

1 1 1

u11 u22 u33

1

AI1

ai11

A1

1

m1

b1

1

AI3

ai33

1

A3

1

AI2

ai22

1

A2

m2 m3

b2 b3

at21 at32

Simplex Models

Page 32: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.
Page 33: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Phenotype

1 1 1

A C E

a c e

Phenotypic variance decomposition

Page 34: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

MZ T1 T2

T1A+C+E A+C

T2A+C A+C+E

DZ T1 T2

T1A+C+E 0.5@A+C

T20.5@A+C A+C+E

Univariate analysis: Expected within twin & cross-twin (co)variance

Page 35: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Phenotype 1

1 1 1

A1 C1 E1

a11c11

e11

Phenotype2

1 1 1

A2 C2 E2

a22c22

e22

e21c21a21

Twin 1

Bivariate & multivariate analyses (Cholesky decompositions)

Page 36: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

a11

a21 a22

a11 a21

a22

X = Aa11

2 a11a21

a11a21 a222

=

A1 A2

1

A1

a11

Phenotype2

1

A2

a22

a21

Twin 1

twinACEModel <- mxModel("ACE",

mxMatrix( type="Lower", nrow=nv, ncol=nv, free=TRUE, values=.6, name=”a"),

mxAlgebra( expression=a %*% t(a), name="A" ), #Total genetic variance

Pheno1

Pheno2

Pheno2Pheno1

Pheno1

Pheno2

Phenotype 1

Calculating within twin genetic (co)variance matrix

Page 37: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

c11

c21 c22

c11 c21

c22

X = Cc11

2 c11c21

c11c21 c222

=

C1 C2

twinACEModel <- mxModel("ACE",

mxMatrix( type="Lower", nrow=nv, ncol=nv, free=TRUE, values=.6, name=”c"),

mxAlgebra( expression=a %*% t(a), name=”C" ), #Total genetic variance

Pheno1

Pheno2

Pheno2Pheno1

Pheno1

Pheno2

Phenotype 1

1

C1

c11

Phenotype2

1

C2

c22

c21

Calculating within twin (co)variance matrices

Page 38: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Calculating within twin (co)variance matrix

mxAlgebra( expression=A+C+E, name="V" ),

T1

T1

a112+ c11

2 + e11

2a11a21+ c11c21 +

e11e21

a11a21+ c11c21 +

e11e21a22

2+ c222

+ e222

Page 39: Longitudinal Modeling Nathan, Lindon & Mike LongitudinalTwinAnalysis_MatrixRawCon.R GenEpiHelperFunctions.R jepq.txt.

Bivariate & multivariate analyses

1 / 0.5 1 / 0.51 1

Twin 1 Twin 2

MZ T1 T2

T1A+C+E A+C

T2A+C A+C+E

DZ T1 T2

T1A+C+E 0.5@A+C

T20.5@A+C A+C+E

# Algebra for expected variance/covariance matrix in MZ

mxAlgebra( expression= rbind ( cbind(A+C+E , A+C),

cbind(A+C , A+C+E)), name="expCovMZ" ),

# Algebra for expected variance/covariance matrix in DZmxAlgebra( expression= rbind ( cbind(A+C+E , 0.5%x%A+C),

cbind(0.5%x%A+C , A+C+E) ), name="expCovDZ" )