imaging data pulled: 2019-12-04
clinical data pulled: 2019-12-04
code written: 2019-09-30
last ran: 2019-12-08
website: http://rpubs.com/navona/NM_SN_demo
github: https://github.com/navonacalarco/CurAge/blob/master/scripts/analysis/04_NM_ROI_SN_demoAnalysis.Rmd


Here we conduct a preliminary group-wise analysis of neuromelanin in the substantia nigra (SN). We use data from the N=31 participants with neuromelanin scans as of 2019-10-19, including 16 patients with late-life depression (LLD) and 15 healthy controls (HC). We have omitted participant SEN015 for outlier values.


NM by group

We calculated the primary NM outcome variables reported in Chen (2014) (i.e., volume and CNR) in all slices in which the LC was visually apparent. Volume is a simple sum across all slices. CNR is a weighted average across all slices by volume.

LLD, n=16 HC, n=15 p
Slice count 3.12 (0.50) 2.93 (0.59) .338
Volume 477.95 (240.95) 389.71 (247.89) .323
CNR 7.82 (1.40) 6.90 (1.37) .076

NM by group distribution

Here, we see that these null results are not an upshot of outliers or non-normalcy in slice count, or the two main outcome variables.


Regression analysis: sex

We want to look at the differences in volume / CNR (outcome variable) between sexes (predictor variable), as this will indicate if sex should be covaried for in the above analyses. As there are no significant differences in volume or CNR, sex should not be covaried for.

model <- lm(totalVolume ~ Sex, data = df)
summary(model)
## 
## Call:
## lm(formula = totalVolume ~ Sex, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -411.81 -117.01  -33.97   97.59  653.23 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   464.61      56.34   8.246 4.31e-09 ***
## SexM          -75.84      90.56  -0.838    0.409    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 245.6 on 29 degrees of freedom
## Multiple R-squared:  0.02362,    Adjusted R-squared:  -0.01005 
## F-statistic: 0.7014 on 1 and 29 DF,  p-value: 0.4092

Above, we see that the average volume for females is 464.61 and for males is lower at 388.77. The p value for the dummy variable SexM is not significant, suggesting that there is no statistical evidence of a difference in volume between sexes.

#linear regression
model <- lm(weightedCNR ~ Sex, data = df)
summary(model)
## 
## Call:
## lm(formula = weightedCNR ~ Sex, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.0670 -0.5169  0.3180  0.8418  2.9531 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   7.2589     0.3338  21.748   <2e-16 ***
## SexM          0.3052     0.5365   0.569    0.574    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.455 on 29 degrees of freedom
## Multiple R-squared:  0.01104,    Adjusted R-squared:  -0.02306 
## F-statistic: 0.3237 on 1 and 29 DF,  p-value: 0.5738

Above, we see that the average CNR for females is 7.26 and for males is slightly higher at 7.56. The p value for the dummy variable SexM is not significant, suggesting that there is no statistical evidence of a difference in CNR between sexes.


Regression analysis: age

We want to look at the differences in volume / CNR (outcome variable) between age (predictor variable), as this will indicate if age should be covaried for in the above analyses. As there are no significant differences in volume or CNR, age should not be covaried for.

model <- lm(totalVolume ~ Age, data = df)
summary(model)
## 
## Call:
## lm(formula = totalVolume ~ Age, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -413.99 -122.58  -64.24   95.84  599.65 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)  222.386    437.987   0.508    0.615
## Age            3.055      6.253   0.489    0.629
## 
## Residual standard error: 247.5 on 29 degrees of freedom
## Multiple R-squared:  0.008163,   Adjusted R-squared:  -0.02604 
## F-statistic: 0.2387 on 1 and 29 DF,  p-value: 0.6288

Above, we see no statistical evidence of a difference in volume by age.

## 
## Call:
## lm(formula = weightedCNR ~ Age, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.9289 -0.6393  0.1652  0.6927  2.0287 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 15.06348    2.15462   6.991  1.1e-07 ***
## Age         -0.11031    0.03076  -3.586  0.00122 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.218 on 29 degrees of freedom
## Multiple R-squared:  0.3072, Adjusted R-squared:  0.2833 
## F-statistic: 12.86 on 1 and 29 DF,  p-value: 0.001215

Above, we see a significiant difference in CNR by age! As age goes up, CNR goes down.


Sex-by-diagnosis interaction

We want to know if the relationship between sex and SN volume / CNR differs between LLD and HC groups.

totalVolume ~ Sex * Diagnosis

#first, look at interaction with LLD as reference
summary(lm(data=df, totalVolume ~ Sex * Diagnosis))
## 
## Call:
## lm(formula = totalVolume ~ Sex * Diagnosis, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -316.60 -153.75  -26.95   85.90  638.76 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        508.55      68.81   7.390 5.98e-08 ***
## SexM              -163.22     158.92  -1.027    0.314    
## DiagnosisHC       -139.15     122.45  -1.136    0.266    
## SexM:DiagnosisHC   197.06     205.80   0.958    0.347    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 248.1 on 27 degrees of freedom
## Multiple R-squared:  0.0722, Adjusted R-squared:  -0.03089 
## F-statistic: 0.7004 on 3 and 27 DF,  p-value: 0.56

Above, we see that LLD has no interaction between sex and volume.

#now, look at interaction with HC as reference
df$Diagnosis_recode <- fct_rev(df$Diagnosis)
summary(lm(data=df, totalVolume ~ Sex * Diagnosis_recode))
## 
## Call:
## lm(formula = totalVolume ~ Sex * Diagnosis_recode, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -316.60 -153.75  -26.95   85.90  638.76 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)   
## (Intercept)                369.40     101.29   3.647  0.00112 **
## SexM                        33.84     130.77   0.259  0.79774   
## Diagnosis_recodeLLD        139.15     122.45   1.136  0.26579   
## SexM:Diagnosis_recodeLLD  -197.06     205.80  -0.958  0.34679   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 248.1 on 27 degrees of freedom
## Multiple R-squared:  0.0722, Adjusted R-squared:  -0.03089 
## F-statistic: 0.7004 on 3 and 27 DF,  p-value: 0.56

Above, we see that, for HC, there is no relationship between sex and volume.

weightedCNR ~ Sex * Diagnosis

#first, look at interaction with LLD as reference
summary(lm(data=df, weightedCNR ~ Sex * Diagnosis))
## 
## Call:
## lm(formula = weightedCNR ~ Sex * Diagnosis, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.6197 -0.6748  0.2062  0.7724  2.3603 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        7.8517     0.3654  21.490  < 2e-16 ***
## SexM              -0.1663     0.8438  -0.197  0.84527    
## DiagnosisHC       -1.8772     0.6502  -2.887  0.00756 ** 
## SexM:DiagnosisHC   1.7155     1.0927   1.570  0.12808    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.317 on 27 degrees of freedom
## Multiple R-squared:  0.2451, Adjusted R-squared:  0.1612 
## F-statistic: 2.922 on 3 and 27 DF,  p-value: 0.05203

Above, we see that LLD have a relationship between sex and CNR, but no interaction between sex and diagnosis (LLD) and CNR.

#now, look at interaction with HC as reference
summary(lm(data=df, weightedCNR ~ Sex * Diagnosis_recode))
## 
## Call:
## lm(formula = weightedCNR ~ Sex * Diagnosis_recode, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.6197 -0.6748  0.2062  0.7724  2.3603 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                5.9745     0.5378  11.109 1.42e-11 ***
## SexM                       1.5492     0.6943   2.231  0.03416 *  
## Diagnosis_recodeLLD        1.8772     0.6502   2.887  0.00756 ** 
## SexM:Diagnosis_recodeLLD  -1.7155     1.0927  -1.570  0.12808    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.317 on 27 degrees of freedom
## Multiple R-squared:  0.2451, Adjusted R-squared:  0.1612 
## F-statistic: 2.922 on 3 and 27 DF,  p-value: 0.05203

Hypothesis that the relationship between the CNR and Sex is different by diagnosis. So, for example, want to know if sex has a relationship to CNR for one group but not the other. The presence of a significant interaction indicates that the effect of one predictor variable on the response variable is different at different values of the other predictor variable. It is tested by adding a term to the model in which the two predictor variables are multiplied.


Age-by-diagnosis interaction

We want to know if the relationship between age and SN volume / CNR differs between LLD and HC groups.

totalVolume ~ Age * Diagnosis

#first, look at interaction with LLD as reference
summary(lm(data=df, totalVolume ~ Age * Diagnosis))
## 
## Call:
## lm(formula = totalVolume ~ Age * Diagnosis, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -334.46 -162.53  -20.27  143.43  652.29 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)
## (Intercept)      -537.90     711.66  -0.756    0.456
## Age                15.05      10.50   1.433    0.163
## DiagnosisHC       949.62     930.31   1.021    0.316
## Age:DiagnosisHC   -15.36      13.37  -1.148    0.261
## 
## Residual standard error: 244.1 on 27 degrees of freedom
## Multiple R-squared:  0.102,  Adjusted R-squared:  0.002188 
## F-statistic: 1.022 on 3 and 27 DF,  p-value: 0.3984

Above, we see that LLD has no interaction.

#now, look at interaction with HC as reference
summary(lm(data=df, totalVolume ~ Age * Diagnosis_recode))
## 
## Call:
## lm(formula = totalVolume ~ Age * Diagnosis_recode, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -334.46 -162.53  -20.27  143.43  652.29 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)
## (Intercept)              411.7205   599.1765   0.687    0.498
## Age                       -0.3057     8.2757  -0.037    0.971
## Diagnosis_recodeLLD     -949.6205   930.3112  -1.021    0.316
## Age:Diagnosis_recodeLLD   15.3554    13.3727   1.148    0.261
## 
## Residual standard error: 244.1 on 27 degrees of freedom
## Multiple R-squared:  0.102,  Adjusted R-squared:  0.002188 
## F-statistic: 1.022 on 3 and 27 DF,  p-value: 0.3984

Above, we see that, for HC, there is a relationship between age and volume.


weightedCNR ~ Age * Diagnosis

#first, look at interaction with LLD as reference
summary(lm(data=df, weightedCNR ~ Age * Diagnosis))
## 
## Call:
## lm(formula = weightedCNR ~ Age * Diagnosis, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.7121 -0.7133  0.1226  0.8051  1.8305 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     15.40528    3.60782   4.270 0.000216 ***
## Age             -0.11237    0.05325  -2.110 0.044259 *  
## DiagnosisHC     -1.86158    4.71626  -0.395 0.696154    
## Age:DiagnosisHC  0.02015    0.06779   0.297 0.768583    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.237 on 27 degrees of freedom
## Multiple R-squared:  0.3338, Adjusted R-squared:  0.2598 
## F-statistic:  4.51 on 3 and 27 DF,  p-value: 0.01089

Above, we see that for LLD, CNR goes down with age.

#now, look at interaction with HC as reference
summary(lm(data=df, weightedCNR ~ Age * Diagnosis_recode))
## 
## Call:
## lm(formula = weightedCNR ~ Age * Diagnosis_recode, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.7121 -0.7133  0.1226  0.8051  1.8305 
## 
## Coefficients:
##                         Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             13.54370    3.03756   4.459  0.00013 ***
## Age                     -0.09222    0.04195  -2.198  0.03670 *  
## Diagnosis_recodeLLD      1.86158    4.71626   0.395  0.69615    
## Age:Diagnosis_recodeLLD -0.02015    0.06779  -0.297  0.76858    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.237 on 27 degrees of freedom
## Multiple R-squared:  0.3338, Adjusted R-squared:  0.2598 
## F-statistic:  4.51 on 3 and 27 DF,  p-value: 0.01089

Above, we see that for LLD, CNR goes down with age.


Power analysis

Here, we used the pwr package in R, which implements power analyses as described by Cohen (1988). We anticipate a total N=180 with a recruitment ratio of 2:1 of LLD (N=120) to HC (N=60). We posit a ‘small’ effect size of d=.2, and estimate on the basis of p=.05. Though we hypothesize that the HC group will have higher volume and CNR, we use a two-tailed test, given that our pilot analyses above suggest a trend in the other direction. We find that we are under-powered at ~.24 (a power of .8 is desirable). Also note that it is likely that fewer than N=180 (maximum SENDEP recruitment) will consent to the NM scan, so our true power is likely lower.

pwr.t2n.test(n1 = 120, n2 = 60, d = .2 , power = NULL, sig.level = .05, alternative = "two.sided")
## 
##      t test power calculation 
## 
##              n1 = 120
##              n2 = 60
##               d = 0.2
##       sig.level = 0.05
##           power = 0.2420247
##     alternative = two.sided

Non-linear

Xing et al. (2018) analyze CNR (“brightness”) using linear and non-linear regression models to characterize age effects in NM, in HCs, over the lifespan. Two reported findings are relevant to us:

First, they find that age effects are best described as a quadratic trajectory/inverted U, increasing from childhood to adolescence (<20), plateauing in adulthood-middle age (20-47), and declining in middle-older age (>47). Our data contains participants 60 to 82 years old (males: 60 to 82; females: NA to NA), so we can only speak to declining CNR in middle-older age, which we see.

They also found large volume in females compared to males, over 47 years old. We do not see this effect.


NM correlations

Volume. Here, we plot volume against continous demographic and clinical variables of interest (Pearson’s r).

The same data is plotted below, but with a unique regression line per group.


CNR. Here, we plot CNR against continous demographic and clinical variables of interest (Pearson’s r).

The same data is plotted below, but with a unique regression line per group.


Correlation values SN volume

Combined, n=31 LLD, n=16 HC, n=15
Age 0.090 0.375 -0.010
Education -0.200 0.050 -0.384
PHQ9 0.041 -0.294 -0.169
MADRS 0.082 -0.199 0.100
CIRS-G 0.158 0.402 -0.143
RBANS total -0.156 0.404 -0.602
RBANS immediate memory -0.163 0.085 -0.423
RBANS visuospatial -0.252 0.142 -0.633
RBANS language 0.053 0.495 -0.428
RBANS attention 0.118 0.446 -0.294
RBANS delayed memory -0.084 0.151 -0.327

Correlation values SN CNR

Combined, n=31 LLD, n=16 HC, n=15
Age -0.554 -0.482 -0.531
Education -0.102 0.060 -0.038
PHQ9 0.463 0.558 -0.047
MADRS 0.297 0.039 -0.008
CIRS-G -0.244 -0.374 -0.488
RBANS total 0.101 -0.045 0.217
RBANS immediate memory -0.049 -0.182 0.232
RBANS visuospatial 0.240 -0.057 0.660
RBANS language -0.270 -0.441 -0.083
RBANS attention -0.262 -0.196 -0.348
RBANS delayed memory 0.279 0.196 0.247