Main Results
Main Results
The final curated CLOZUK3 longitudinal dataset included 811 participants, with a total of 2,362 FBC and pharmacokinetic assays taken on the same day. Participants had a mean (SD) age of 40.1 (12.2) years; 28.9% were female (N = 234) and 71.1% were male (N = 577). Full descriptive statistics of the sample at the point of lowest ANC are given in Table 2. While the first occurrence of each individual on our ZTAS dataset is not necessarily the date they started clozapine, we note that about a third of the CLOZUK3 individuals with valid data (32.6%; 264/547) had records spanning at least a year of clozapine treatment.
The DAG (Supplementary Figure 2) displays the possible causal paths between ANC (the outcome), daily clozapine dose (the exposure variable), and plasma concentrations of clozapine and norclozapine (potential mediators between dose and ANC).
# get descriptive statistics for key variables
a <- describeBy(x = dplyr::select(CLOZUK3.fbc.pk.min, c("clozapine", "norclozapine", "dailydose", "TDS", "neut_num", "age_at_assay")), fast = TRUE, group = CLOZUK3.fbc.pk.min$SEX)
# split by sex
aF <- a$FEMALE
aM <- a$MALE
# key stats
Variable <- c('[Clozapine] (mg/L)', '[Norclozapine] (mg/L)', 'Daily dose (mg)', "TDS (hours)", "ANC (x10^9/L)", "Age")
Mean_M <- round(aM$mean, 3)
Mean_F <- round(aF$mean, 3)
SD_M <- round(aM$sd, 3)
SD_F <- round(aF$sd, 3)
Min_M <- round(aM$min, 3)
Min_F <- round(aF$min, 3)
Max_M <- round(aM$max, 3)
Max_F <- round(aF$max, 3)
Male <- cbind(Variable, Mean_M, SD_M, Min_M, Max_M)
Female <- cbind(Mean_F, SD_F, Min_F, Max_F)
table <- cbind(Male, Female)
kable(table, col.names = c("Variable", "Mean","SD","Min","Max", "Mean","SD","Min","Max"), caption = "Table 2. Summary of CLOZUK3 variables used in mediation analysis. Descriptive statistics presented for a ‘cross-sectional’ version of CLOZUK3 where only the entry associated with the lowest value of ANC per person is retained. TDS = Time between Dose and Sample; ANC = Absolute Neutrophil Count; [Clozapine] = Clozapine plasma concentration; [Norclozapine] = Norclozapine plasma concentration. ") %>%
kable_styling("none", full_width = T,
position = "left", font_size = 16) %>%
add_header_above(c(" " = 1, "Male" = 4, "Female" = 4)) %>%
kable_classic
Variable | Mean | SD | Min | Max | Mean | SD | Min | Max |
---|---|---|---|---|---|---|---|---|
[Clozapine] (mg/L) | 0.467 | 0.256 | 0.052 | 1.799 | 0.556 | 0.322 | 0.053 | 1.84 |
[Norclozapine] (mg/L) | 0.259 | 0.145 | 0.052 | 1.234 | 0.313 | 0.186 | 0.059 | 1.03 |
Daily dose (mg) | 360.637 | 136.473 | 100 | 900 | 324.797 | 134.547 | 100 | 900 |
TDS (hours) | 13.479 | 2.305 | 6.5 | 24 | 13.618 | 2.062 | 10 | 23.5 |
ANC (x10^9/L) | 4.166 | 1.286 | 2.01 | 7.41 | 4.292 | 1.258 | 2.02 | 7.24 |
Age | 39.099 | 11.863 | 18 | 68 | 42.406 | 12.804 | 19 | 84 |
Significant associations between pharmacokinetic and pharmacogenomic variables with ANC
# linear mixed effect regression models on longitudinal clozuk3 data
anc_dcnt <- lmer(neut_num~dailydose+clozapine+norclozapine+TDS+SEX+age_at_assay+std_age2 + (1|LUIN), data=CLOZUK3.fbc.pk.std) # base model
coefs1 <- data.frame(coef(summary(anc_dcnt)))
# including genetic predictors too
anc_dcnt_1a2_snp_as <- lmer(neut_num~dailydose+clozapine+norclozapine+est_score+rs2472297_T+rs61750900_T+rs2011425_G+rs1126545_T+TDS+SEX+age_at_assay+std_age2 + (1|LUIN), data=CLOZUK3.fbc.pk.gen.std) # base model + PGx (SNPs and CYP1A2 Activity Score)
coefs1b <- data.frame(coef(summary(anc_dcnt_1a2_snp_as)))
All pharmacokinetic variables were significantly associated with ANC (Table 3). ANC was inversely associated with clozapine plasma concentration (β = -0.166, p = 0.002 and positively associated with norclozapine plasma concentration (β = 0.219, p = 6^{-5}). In the original FBC scales, a reduction in ANC of 166 cells/mm3 was observed for every standard deviation increase in plasma clozapine concentration. Likewise, each standard deviation increase in plasma norclozapine concentration was accompanied by a 219 cells/mm3 increase in ANC. We note that daily clozapine dose was also associated with ANC in this model (β = 0.133, p = 1.1^{-4}), corresponding to an estimated rise of 133 cells/mm3 per standard deviation increase in the daily dose.
The pharmacokinetic variables dose, clozapine plasma concentration, and norclozapine plasma concentration remained significantly associated with ANC after incorporating pharmacogenomic predictors in the model for the subset of individuals with genetic data (Table 3). We found no evidence for association between ANC and any of the pharmacogenomic SNPs, PGS for clozapine and norclozapine, or variation in the HLA region (Supplementary Note).
We saw a significant, positive association between CYP1A2 activity score and ANC, in which increased CYP1A2 function (i.e., rapid CYP1A2 metabolism) was associated with increased neutrophil counts (β = 0.155, p = 0.006).As described in the Supplementary Note, this association was independent of rs2472297, a putative regulator of CYP1A2 activity and a genome-wide significant SNP in GWAS of clozapine pharmacokinetics23.
Finally, the presence of the Duffy-Null genotype, observed in just under 5% of the CLOZUK3 sample, was significantly associated with reduced ANC in our sample (β = -0.770; p = 0.002).
# create results table
tab_model(anc_dcnt, anc_dcnt_1a2_snp_as, show.est = TRUE, show.se = TRUE, show.ci = FALSE,
show.p = F, collapse.se = TRUE, show.intercept = FALSE, emph.p = TRUE, digits = 3, digits.re = 3,
#order.terms = c(1, 2, 7, 3, 4, 5 ,6),
string.pred = "Predictor", string.est = "Estimate (SE)",
dv.labels = c("Base Model (Clozapine Dose + Levels)", "Base Model + PGx Predictors"),
pred.labels = all_labels,
CSS = list(css.table = '+font-family: Roboto; width: 100%;', css.depvarhead = '+font-style: normal; font-weight: normal; text-align = centre',
css.thead = 'border-top: blank; text-align = centre; padding: 0.5cm;', css.tdata = 'padding: 0.25cm; text-align = centre;',
css.randomparts = 'border-top:1px solid;', css.firsttablerow = 'border-bottom: blank',
css.firstsumrow = 'border-top: 1px solid', css.footnote = 'text-align: left;',
css.summary = "padding-top:0.2cm; padding-bottom:0.2cm;"),
title = "Table 3. Results of two Linear Mixed-Effect Models exploring predictors of Absolute Neutrophil Count (ANC). Standardised regression coefficients are reported alongside standard error and p values estimated using the lmerTest package. PGx = Pharmacogenomic; TDS = Time between Dose and Sample; [Clozapine] = Clozapine plasma concentration; [Norclozapine] = Norclozapine plasma concentration; LUIN = Participant Identifier used in CLOZUK3; σ^2^ = Residual Variance; ICC = Intraclass Correlation Coefficient; t~00~ = Random Intercept Variance; N~LUIN~ = Number of participants.",
p.style = "stars"
)
Base Model (Clozapine Dose + Levels) | Base Model + PGx Predictors | |
---|---|---|
Predictor | Estimate (SE) | Estimate (SE) |
Daily dose |
0.133 *** (0.034) |
0.095 * (0.043) |
Clozapine |
-0.166 ** (0.054) |
-0.158 * (0.065) |
Norclozapine |
0.219 *** (0.055) |
0.225 *** (0.065) |
TDS |
0.039 (0.023) |
0.058 * (0.029) |
Sex (Male) |
-0.110 (0.089) |
-0.078 (0.114) |
Age |
0.220 *** (0.040) |
0.213 *** (0.051) |
Age squared |
-0.067 (0.038) |
-0.072 (0.048) |
CYP1A2 Activity Score |
0.155 ** (0.056) |
|
rs2472297_T |
0.008 (0.057) |
|
rs61750900_T |
0.043 (0.049) |
|
rs2011425_G |
-0.008 (0.052) |
|
rs1126545_T |
-0.020 (0.051) |
|
Random Effects | ||
σ2 | 0.748 | 0.713 |
τ00 | 0.883 LUIN | 0.965 LUIN |
ICC | 0.541 | 0.575 |
N | 811 LUIN | 517 LUIN |
Observations | 2362 | 1563 |
Marginal R2 / Conditional R2 | 0.052 / 0.565 | 0.060 / 0.601 |
|
Plasma Clozapine and Norclozapine levels mediate the Dose – ANC association.
# create residualised versions of parent variables for inclusion in mediation analysis with SEM.
# this allows covariates to be controlled for without including too many variables in the analysis and complicating the model.
# the residualised variables were created by regressing each variable against the covariates sex, age, age^2, and time between dose and sample (TDS).
CLOZUK3.fbc.pk.min$log_dose = NA
CLOZUK3.fbc.pk.min$log_dose = log(CLOZUK3.fbc.pk.min$dailydose)
reg_dose_u <- lm(log_dose ~ TDS+SEX+age_at_assay+std_age2, data=CLOZUK3.fbc.pk.min)$residuals
reg_cloz_g <- glm(clozapine ~ TDS+SEX+age_at_assay+std_age2, data=CLOZUK3.fbc.pk.min, family = Gamma(link = log))$residuals
reg_nor_g <- glm(norclozapine ~ TDS+SEX+age_at_assay+std_age2, data=CLOZUK3.fbc.pk.min, family = Gamma(link = log))$residuals
reg_anc_u <- lm(neut_num ~ TDS+SEX+age_at_assay+std_age2, data=CLOZUK3.fbc.pk.min)$residuals
Dose <- reg_dose_u
Clozapine <- reg_cloz_g
ANC <- reg_anc_u
Norclozapine <- reg_nor_g
# creating new dataframe containing these residualised variables.
Data <- data.frame(Dose = Dose, ANC = ANC, Clozapine = Clozapine, Norclozapine = Norclozapine)
# Standardise variables prior to sem so equivalent to past regression analyses.
Data <- datawizard::standardise(x = Data, select = c("Dose", "Clozapine", "Norclozapine"))
Data_og <- Data
library(lavaan)
# creating mediation model with ANC as outcome, dose as exposure, clozapine as M1, and norclozapine as M2.
multipleMediation <- '
ANC ~ b1 * Clozapine + b2 * Norclozapine + c * Dose
Clozapine ~ a1 * Dose
Norclozapine ~ d21 * Clozapine
indirect1 := a1 * b1
indirect2 := a1 * d21 * b2
total := c + (a1 * b1) + (a1 * d21 * b2)
Clozapine ~~ Norclozapine
'
# fit model with SEM in lavaan
fit3 <- sem(model = multipleMediation, data = Data)
The primary model (Figure 1) showed evidence of a significant direct effect of daily clozapine dose on ANC (β = 0.15, p = 9^{-4}). The indirect path via both clozapine and norclozapine plasma concentration was also significant (β = 0.057, p = 0.018). However, no indirect effect was observed when plasma clozapine concentration was considered as the sole mediator (β = -0.028, p = 0.116). Secondary analyses revealed that CYP1A2 activity scores appeared to account for part of these associations (Supplementary Note). However, as only some of the CLOZUK3 sample was genotyped (523/811), these models would have reduced statistical power in relation to our main analyses and their results should be considered with caution.
Sensitivity analyses were performed using non-residualised variables in the model, and also by testing single mediators in the longitudinal dataset. These were all consistent with the results of the primary analyses, suggesting that our models were not compromised through the covariates considered for residualisation, or the cross-sectional nature of our multiple mediation tests (Supplementary note).