Abstract
This Rmarkdown notebook performs all of the statistical analysis for the associated manuscript. We included it in an effort to improve reproducibilty and provide full transparency regarding our statistical methods. After downloading the dataset and installing all the required R packages, this entire html file (including all the figures) can be created using Knitr.# load libraries
required_packages <- c("knitr",
"kableExtra",
"rmarkdown",
"plyr",
"dplyr",
"parallel",
"ggsci",
"ggplot2",
"GGally",
"reshape2",
"stringr",
"lmerTest",
"car",
"fdrtool",
"pheatmap",
"RColorBrewer",
"factoextra",
"NbClust",
"gridExtra",
"emmeans")
invisible(temp <- lapply(required_packages, function(x) require(x, quietly = T, character.only = TRUE) ))
# load data
load("data_combined.RData")
df$`Device Type` <- relevel(df$`Device Type`, ref = "HMII")
# subset to only HMII patients
df.HMII <- droplevels(subset(df, df$`Device Type` == "HMII"))
# set options
bc <- 14:42 # col index of b-cells in df
cyt <- 43:80 # col index of cytokines in df
bcellcyto <- c(bc,cyt)
# set patient groups
groups <- make.names(c("AgeGreater60",
"Sex",
"LowIntermacs",
"RVAD",
"Sensitized",
"VAD Indication",
"Survival"
))
# set significance requirements
FDRcutoff <- 0.1
pcutoff <- 0.05
# Efron's double standardization
double_standardize <- function(x, niter = 1000) {
for(i in 1:niter) x <- t(scale(t(scale(x))))
return(as.data.frame(x))
}
# Error bars
invisible(suppressMessages(require(Hmisc, quietly = T)))
stat_sum_df <- function(fun, geom="errorbar", ...) {
stat_summary(fun.data = fun, geom = geom, width = 1, ...)
}
# function that converts pvalues to star indicators
p2stars <- function(p){
if(is.null(p)) return(".")
if(is.na(p)) return(".")
if(p >= 0.1) s <- "."
if(p < 0.1 & p >= 0.05) s <- ".."
if(p < 0.05 & p >= 0.01) s <- ".*"
if(p < 0.01 & p >= 0.001) s <- ".**"
if(p < 0.001 & p >= 0.0001) s <- ".***"
if(p < 0.0001 & p >= 0) s <- ".****"
return(s)
}
Background: 20 heart-failure patients receiving the Heartmate-II mechanical circulatory support device (MCSD) were sampled at 7 timepoints after implantation. Each sample consisted of 67 biomarker measurements – 29 B-cell markers and 38 cytokine markers. Additionally, each patient was associated with 7 categorical variables, such as age, sex, interMACS score, and survival. Due to practical limitations, not all samples were complete; after accounting for missing data, there are a total of 105 datapoints.
Specific Aims: We had the following two specific aims: (1) Our primary aim was to identify if and how any of the 67 biomarkers are associated with any of the 7 categorical variables. (2) We also sought to describe any global patterns in the set of biomarkers, such as temporal patterns.
Methods: Our methods can be summarized sequentially according to the specific aims:
To identify biomarkers with interesting associations, we used a linear mixed effect model to model group or time effects, or group effects that changed in time. We estimated the local false discovery rate of these results, and reported results with \(q<\) 0.1.
To identify specific timepoints where group effects occur, we did a post-hoc analysis using estimated marginal means based on the mixed effect model. We adjusted the statistical significance of all results using the Benjamini-Hochberg method.
To identify biomarker clusters, we biclustered the standardized biomarkers and samples. We also clustered biomarkers by temporal similarity, using the marginal means of each standarized biomarker at every timepoint. We computed the optimal number of clusters for both approaches by maximizing average silhouette width.
We related biomarker clusters and temporal clusters to each other, and to the list of significant biomarkers found in (2), using Fisher’s exact test.
Data was collected from patients who underwent MCSD implantation at a single university medical center. Peripheral blood draws for cytokine and B-cell expression assays were performed at days 0,1,3,5,8,14,21. Cytokine and chemokine concentrations from plasma samples were assayed using the 38-multiplex MILLIPLEX Human Cytokine Chemokine Panel I. HLA class I and II single antigen Luminex antibody profiles were performed via flow cytometry on available samples. Allosensitization was defined as HLA antibody production (mean fluorescence intensity > 5000) during the MCSD course. B-cell multiparameter immunophenotypes were performed by staining peripheral blood mononuclear cells for surface markers using fluorochrome-tagged antibodies against CD3, CD5, CD11b, CD 19, CD24, CD27, CD38, CD268, IgD, IgM, and IgG (One Lambda, Inc.).
missing.ix <- Reduce(intersect, apply(df.HMII[,bcellcyto], 2, function(x) which(is.na(x))))
df.raw <- df.HMII[-missing.ix,]
df.raw <- df.raw[order(df.raw$PatientID),]
rownames(df.raw) <- 1:nrow(df.raw)
kable(df.raw,
digits = 3,
row.names = T,
caption = "Table 1: Raw data"
) %>%
kable_styling(bootstrap_options = c("striped",
"hover",
"condensed",
"responsive"),
font_size = 12) %>%
scroll_box(width = "100%", height = "300px")
PatientID | Time | Age | AgeGreater60 | Sex | LowIntermacs | InterMACS | RVAD | Sensitized | VAD Indication | Device Type | Outcome | Survival | num Total PBMC | num lymph | lymph | live lymph | CD3 of live lymph | CD19 of live lymph | CD19+CD27- | CD19+CD27+ | CD27+38++plasma blasts | CD27-38++ transitional | CD27-IgD+ mature naive | CD27+IgD- switched memory | CD27-IgD- switched memory | CD27+IgD+ unswitched memory | CD27+IgD-IgM+ switched memory | CD27+IgD+IgM+ nonswitched memory | CD19+27+IgG+IgM- memory | CD19+24dim38dim naive mature | CD19+24+38++transitional | CD19CD24hiCD38-memory | CD19+27-38+CD5+transitionals | CD19+CD268+ | CD268 of +27-38++transitional | CD19+CD11b+ | CD19+CD5+ | CD19+CD27+CD24hi | CD19+CD5+CD24hi | CD19+CD5+CD11b+ | CD19+27+IgD-38++IgG ASC | IL-12(p40) | IL-12(p70) | IFN-g | TNF-a | TNF-b | IL-4 | IL-5 | IL-9 | IL-10 | IL-13 | IL-17A | IL-1a | IL-1b | IL-2 | IL-3 | IL-6 | IL-15 | TGF-a | IFN-a2 | IL-8 | GRO | Eotaxin | MDC | IP-10 | MCP-1 | MCP-3 | Fractalkine | MIP-1a | MIP-1b | GM-CSF | IL-7 | G-CSF | VEGF | EGF | FGF-2 | Flt-3L | IL-1RA | sCD40L | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 0 | 65 | older | Male | low | 2 | No | NA | BTT | HMII | Alive s/p OHT | alive | 169154 | 35496 | 20.98 | 99.53 | 25.37 | 19.82 | 86.02 | 13.98 | 1.26 | 2.54 | 57.81 | 11.74 | 28.06 | 2.39 | 21.74 | 14.36 | 0.72 | 81.05 | 2.86 | 13.60 | 0.58 | 95.22 | 84.83 | 10.47 | 4.33 | 8.50 | 1.39 | 3.13 | 1.09 | 1.71 | 2.16 | 124.000 | 20.926 | 2.72 | 2.500 | 1.010 | 7.273 | 4.617 | 1.760 | 21.20 | 277.000 | 3.483 | 9.878 | 1.160 | 12.334 | 1.090 | 5.71 | 2.18 | 45.38 | 126.00 | 119.000 | 525.00 | 1174 | 392 | 3.03 | 27.25 | 2.030 | 47.654 | 60.843 | 1.268 | 33.267 | 486.000 | 54.27 | 6.05 | 1.92 | 4.47 | 793.00 |
2 | 1 | 1 | 65 | older | Male | low | 2 | No | NA | BTT | HMII | Alive s/p OHT | alive | 63082 | 9915 | 15.72 | 99.26 | 32.45 | 26.26 | 90.06 | 9.94 | 0.89 | 2.09 | 54.27 | 7.70 | 35.71 | 2.32 | 31.10 | 20.47 | 1.57 | 84.06 | 2.59 | 10.79 | 0.26 | 97.02 | 92.59 | 7.50 | 3.13 | 6.42 | 1.32 | 2.44 | 1.49 | 1.71 | 1.71 | 156.000 | 24.857 | 2.72 | 2.500 | 1.010 | 1.270 | 48.726 | 1.760 | 29.97 | 388.000 | 1.350 | 1.952 | 1.160 | 109.000 | 5.715 | 3.89 | 3.18 | 102.00 | 191.00 | 95.541 | 463.00 | 1079 | 552 | 3.03 | 35.53 | 2.030 | 62.089 | 12.293 | 2.005 | 109.000 | 509.000 | 64.48 | 26.13 | 1.92 | 19.50 | 841.00 |
3 | 1 | 3 | 65 | older | Male | low | 2 | No | NA | BTT | HMII | Alive s/p OHT | alive | 75921 | 21721 | 28.61 | 99.31 | 24.86 | 33.01 | 86.38 | 13.62 | 1.54 | 1.26 | 45.74 | 10.98 | 40.44 | 2.84 | 31.80 | 18.04 | 1.15 | 86.21 | 4.82 | 6.56 | 0.24 | 90.41 | 73.33 | 10.00 | 7.25 | 10.12 | 3.22 | 5.67 | 2.05 | 32.32 | 14.40 | 259.000 | 28.330 | 14.74 | 12.770 | 3.369 | 5.615 | 28.055 | 7.406 | 54.61 | 438.000 | 3.867 | 8.638 | 3.690 | 57.616 | 12.778 | 5.85 | 56.84 | 121.00 | 193.00 | 186.000 | 510.00 | 1365 | 464 | 35.08 | 152.00 | 2.030 | 87.775 | 44.032 | 10.100 | 81.038 | 687.000 | 70.06 | 117.00 | 1.92 | 151.00 | 801.00 |
4 | 1 | 5 | 65 | older | Male | low | 2 | No | NA | BTT | HMII | Alive s/p OHT | alive | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 1.71 | 5.07 | 134.000 | 41.230 | 2.72 | 2.813 | 1.809 | 4.930 | 23.012 | 1.760 | 26.38 | 316.000 | 1.219 | 1.230 | 2.735 | 15.579 | 5.021 | 2.73 | 25.80 | 78.31 | 231.00 | 213.000 | 462.00 | 2053 | 583 | 4.14 | 104.00 | 2.030 | 55.375 | 49.222 | 6.820 | 29.004 | 414.000 | 61.03 | 43.25 | 1.92 | 64.51 | 1230.00 |
5 | 1 | 8 | 65 | older | Male | low | 2 | No | NA | BTT | HMII | Alive s/p OHT | alive | 213808 | 36002 | 16.84 | 99.19 | 35.95 | 14.55 | 67.94 | 32.06 | 4.06 | 2.17 | 27.92 | 28.92 | 39.64 | 3.52 | 20.31 | 9.10 | 1.33 | 68.69 | 7.10 | 20.42 | 1.88 | 87.38 | 44.25 | 10.78 | 11.12 | 19.15 | 5.54 | 7.35 | 1.07 | 1.71 | 3.83 | 228.000 | 23.577 | 2.81 | 2.500 | 1.666 | 6.792 | 39.103 | 1.760 | 43.65 | 450.000 | 2.412 | 6.904 | 2.197 | 19.163 | 2.445 | 3.75 | 19.72 | 56.79 | 134.00 | 184.000 | 496.00 | 1214 | 430 | 3.03 | 90.07 | 2.030 | 72.549 | 44.681 | 4.448 | 51.520 | 735.000 | 78.74 | 94.11 | 1.92 | 133.00 | 912.00 |
6 | 1 | 21 | 65 | older | Male | low | 2 | No | NA | BTT | HMII | Alive s/p OHT | alive | 106970 | 31867 | 29.79 | 99.18 | 42.36 | 15.02 | 84.69 | 15.31 | 1.94 | 2.11 | 55.41 | 13.14 | 29.13 | 2.32 | 20.22 | 12.88 | 2.08 | 83.21 | 5.20 | 9.50 | 1.10 | 94.44 | 73.00 | 9.04 | 6.99 | 9.22 | 2.80 | 4.78 | 1.44 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
7 | 3 | 0 | 81 | older | Male | high | 3 | No | NA | DT | HMII | Died | dead | 119377 | 77509 | 64.93 | 99.61 | 58.50 | 7.99 | 62.67 | 37.33 | 9.10 | 4.82 | 36.73 | 31.90 | 25.62 | 5.74 | 11.47 | 8.95 | 0.40 | 69.54 | 7.69 | 9.41 | 2.61 | 76.44 | 57.91 | 23.29 | 20.76 | 15.39 | 5.42 | 14.90 | 2.60 | 6.39 | 6.65 | 11.372 | 21.497 | 3.51 | 2.320 | 6.303 | 1.590 | 6.039 | 2.111 | 5.18 | 4.727 | 1.920 | 1.450 | 2.558 | 38.074 | 5.729 | 2.57 | 19.65 | 32.02 | 123.00 | 133.000 | 380.00 | 1899 | 1054 | 26.14 | 112.00 | 2.230 | 32.026 | 20.483 | 7.783 | 58.902 | 70.513 | 7.02 | 95.30 | 0.39 | 89.23 | 624.00 |
8 | 3 | 1 | 81 | older | Male | high | 3 | No | NA | DT | HMII | Died | dead | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 41.70 | 5.35 | 39.418 | 40.838 | 13.66 | 17.416 | 2.457 | 4.050 | 57.842 | 9.006 | 7.14 | 46.122 | 4.879 | 6.666 | 3.299 | 119.000 | 26.234 | 2.86 | 67.14 | 112.00 | 206.00 | 180.000 | 411.00 | 1271 | 4441 | 35.46 | 169.00 | 33.419 | 100.000 | 54.262 | 5.253 | 43.646 | 118.000 | 24.49 | 79.63 | 0.39 | 224.00 | 1714.00 |
9 | 3 | 3 | 81 | older | Male | high | 3 | No | NA | DT | HMII | Died | dead | 96940 | 57658 | 59.48 | 99.70 | 55.52 | 9.21 | 72.15 | 27.85 | 3.85 | 3.82 | 48.41 | 21.75 | 23.49 | 6.35 | 12.10 | 16.04 | 0.28 | 75.30 | 3.72 | 6.65 | 2.11 | 80.52 | 67.33 | 15.80 | 15.23 | 6.71 | 1.32 | 8.86 | 0.26 | 17.15 | 6.00 | 20.672 | 15.342 | 7.00 | 5.509 | 7.681 | 2.040 | 8.932 | 3.799 | 4.45 | 17.129 | 2.699 | 3.725 | 3.108 | 25.794 | 15.326 | 2.57 | 74.20 | 34.62 | 85.04 | 162.000 | 348.00 | 897 | 1361 | 21.65 | 102.00 | 6.821 | 27.057 | 24.672 | 5.253 | 34.257 | 70.513 | 13.56 | 63.96 | 0.39 | 118.00 | 1014.00 |
10 | 3 | 5 | 81 | older | Male | high | 3 | No | NA | DT | HMII | Died | dead | 154373 | 73969 | 47.92 | 99.65 | 45.18 | 8.77 | 67.36 | 32.64 | 6.59 | 2.77 | 39.10 | 26.28 | 27.95 | 6.67 | 17.89 | 15.71 | 0.39 | 71.57 | 6.26 | 9.88 | 1.78 | 81.86 | 72.07 | 20.12 | 20.17 | 14.80 | 5.99 | 14.65 | 3.71 | 4.28 | 2.29 | 12.657 | 16.490 | 2.31 | 2.320 | 6.816 | 1.590 | 6.845 | 1.520 | 4.74 | 2.120 | 1.920 | 1.450 | 1.980 | 99.474 | 11.334 | 1.58 | 47.29 | 61.82 | 48.64 | 192.000 | 320.00 | 738 | 1071 | 10.05 | 46.41 | 2.230 | 21.777 | 11.020 | 1.520 | 37.403 | 27.750 | 2.89 | 23.91 | 0.39 | 52.69 | 361.00 |
11 | 3 | 8 | 81 | older | Male | high | 3 | No | NA | DT | HMII | Died | dead | 155610 | 63375 | 40.73 | 99.51 | 38.42 | 12.40 | 71.69 | 28.31 | 4.36 | 2.62 | 37.82 | 23.43 | 33.50 | 5.24 | 17.37 | 14.92 | 0.60 | 65.04 | 2.80 | 11.23 | 2.54 | 83.55 | 37.56 | 15.55 | 15.45 | 9.55 | 2.66 | 10.91 | 0.28 | 8.54 | 4.12 | 17.955 | 15.342 | 3.51 | 2.320 | 6.816 | 1.590 | 6.439 | 1.605 | 5.62 | 13.939 | 2.314 | 1.782 | 2.042 | 79.869 | 8.070 | 2.42 | 84.63 | 34.26 | 38.88 | 162.000 | 335.00 | 822 | 1054 | 16.46 | 84.38 | 2.980 | 19.937 | 20.483 | 2.734 | 21.566 | 90.169 | 10.50 | 41.25 | 0.39 | 77.29 | 562.00 |
12 | 3 | 14 | 81 | older | Male | high | 3 | No | NA | DT | HMII | Died | dead | 244245 | 115109 | 47.13 | 99.47 | 47.40 | 9.37 | 67.50 | 32.50 | 3.99 | 2.08 | 50.08 | 26.01 | 17.22 | 6.68 | 15.34 | 15.25 | 0.23 | 77.86 | 3.21 | 10.49 | 1.48 | 82.13 | 59.19 | 21.45 | 19.77 | 14.45 | 2.57 | 14.94 | 0.94 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
13 | 4 | 1 | 58 | younger | Male | high | 3 | Yes | No | BTT | HMII | Alive s/p OHT | alive | 246811 | 86529 | 35.06 | 93.49 | 67.96 | 17.48 | 81.66 | 18.34 | 2.05 | 6.85 | 51.33 | 13.69 | 29.91 | 5.08 | 15.68 | 5.94 | 0.19 | 61.95 | 0.76 | 13.51 | 4.07 | 92.62 | 34.06 | 6.90 | 12.07 | 8.00 | 2.54 | 3.85 | 0.26 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
14 | 4 | 3 | 58 | younger | Male | high | 3 | Yes | No | BTT | HMII | Alive s/p OHT | alive | 406771 | 90343 | 22.21 | 97.34 | 49.28 | 17.02 | 75.04 | 24.96 | 4.47 | 18.36 | 28.45 | 21.86 | 46.07 | 3.62 | 24.97 | 4.33 | 0.13 | 47.41 | 1.64 | 19.70 | 18.15 | 72.76 | 8.08 | 25.69 | 28.35 | 13.95 | 4.66 | 19.20 | 0.41 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
15 | 4 | 21 | 58 | younger | Male | high | 3 | Yes | No | BTT | HMII | Alive s/p OHT | alive | 330191 | 81636 | 24.72 | 94.57 | 45.14 | 14.70 | 70.51 | 29.49 | 8.94 | 16.23 | 38.92 | 23.53 | 30.83 | 6.72 | 23.93 | 7.07 | 0.18 | 46.63 | 2.35 | 16.12 | 8.59 | 74.45 | 39.90 | 24.19 | 21.18 | 12.62 | 3.26 | 12.93 | 0.38 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
16 | 7 | 0 | 65 | older | Female | low | 2 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 1073919 | 336538 | 31.34 | 100.00 | 63.29 | 14.80 | 93.05 | 6.95 | 0.73 | 8.05 | 75.49 | 4.55 | 19.16 | 0.80 | 7.25 | 8.78 | 28.04 | 88.72 | 2.51 | 5.18 | 1.02 | 90.49 | 68.18 | 2.32 | 4.09 | 1.69 | 3.48 | 1.27 | 5.78 | 103.00 | 34.40 | 73.796 | 17.487 | 330.00 | 74.260 | 18.401 | 16.683 | 51.466 | 82.515 | 12.80 | 150.000 | 15.178 | 15.208 | 9.970 | 26.235 | 21.107 | 8.44 | 133.00 | 39.26 | 415.00 | 111.000 | 298.00 | 443 | 296 | 138.00 | 125.00 | 10.503 | 37.240 | 39.468 | 13.629 | 111.000 | 409.000 | 77.43 | 78.89 | 10.95 | 301.00 | 5998.00 |
17 | 7 | 1 | 65 | older | Female | low | 2 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 270301 | 97229 | 35.97 | 91.63 | 18.43 | 61.67 | 97.68 | 2.32 | 0.20 | 5.85 | 69.45 | 1.63 | 28.19 | 0.73 | 27.57 | 21.43 | 17.05 | 84.32 | 7.26 | 2.73 | 0.84 | 99.44 | 97.60 | 0.54 | 2.64 | 1.51 | 3.63 | 0.29 | 3.40 | 16.38 | 6.78 | 46.507 | 34.398 | 28.79 | 11.752 | 0.814 | 4.999 | 1481.000 | 8.712 | 8.92 | 17.769 | 2.325 | 4.279 | 2.360 | 63.109 | 16.386 | 5.90 | 34.66 | 152.00 | 295.00 | 55.059 | 278.00 | 1037 | 409 | 21.48 | 40.32 | 6.177 | 30.898 | 20.452 | 2.676 | 177.000 | 224.000 | 36.40 | 47.22 | 0.92 | 160.00 | 5604.00 |
18 | 7 | 3 | 65 | older | Female | low | 2 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 499016 | 78019 | 15.63 | 89.41 | 25.83 | 51.38 | 92.98 | 7.02 | 0.32 | 4.66 | 51.34 | 6.31 | 41.59 | 0.76 | 36.49 | 5.96 | 22.81 | 73.48 | 6.73 | 7.93 | 0.33 | 98.78 | 96.52 | 1.31 | 2.06 | 5.19 | 2.68 | 0.59 | 2.45 | 16.38 | 6.52 | 31.962 | 18.537 | 34.49 | 16.410 | 2.113 | 4.287 | 78.861 | 9.272 | 9.04 | 17.769 | 2.902 | 2.861 | 3.595 | 11.983 | 22.669 | 9.71 | 14.43 | 38.26 | 183.00 | 56.470 | 219.00 | 307 | 219 | 29.76 | 47.34 | 5.053 | 3.891 | 7.570 | 2.878 | 33.464 | 191.000 | 16.92 | 81.03 | 0.92 | 99.54 | 4583.00 |
19 | 7 | 8 | 65 | older | Female | low | 2 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 115825 | 32513 | 28.07 | 91.04 | 44.61 | 15.76 | 80.52 | 19.48 | 4.16 | 7.82 | 49.91 | 18.37 | 30.52 | 1.20 | 14.87 | 3.33 | 30.19 | 61.08 | 8.70 | 12.56 | 1.58 | 89.80 | 76.71 | 2.87 | 6.07 | 11.12 | 8.08 | 1.59 | 1.17 | 37.61 | 21.91 | 70.846 | 24.832 | 57.61 | 38.448 | 5.988 | 8.685 | 44.610 | 13.488 | 17.95 | 55.857 | 7.772 | 7.570 | 7.238 | 14.443 | 23.376 | 10.40 | 81.88 | 77.46 | 332.00 | 132.000 | 332.00 | 1453 | 632 | 38.47 | 104.00 | 12.646 | 40.206 | 31.261 | 7.509 | 79.659 | 354.000 | 26.71 | 180.00 | 0.92 | 274.00 | 7156.00 |
20 | 7 | 21 | 65 | older | Female | low | 2 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 407080 | 97651 | 23.99 | 91.29 | 66.96 | 12.20 | 84.66 | 15.34 | 2.88 | 5.60 | 61.89 | 13.73 | 22.65 | 1.74 | 20.16 | 7.23 | 29.39 | 68.49 | 5.28 | 10.60 | 1.17 | 92.50 | 54.35 | 3.48 | 6.53 | 9.61 | 8.34 | 1.85 | 2.83 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
21 | 8 | 0 | 43 | younger | Male | low | 2 | Yes | No | BTT | HMII | Alive s/p OHT | alive | 515760 | 266115 | 51.60 | 96.30 | 69.66 | 8.57 | 72.22 | 27.78 | 6.26 | 4.77 | 43.09 | 26.01 | 28.26 | 2.63 | 16.67 | 2.67 | 28.25 | 50.35 | 0.41 | 12.78 | 4.47 | 84.76 | 19.47 | 9.56 | 4.55 | 8.29 | 0.87 | 2.18 | 0.75 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
22 | 8 | 8 | 43 | younger | Male | low | 2 | Yes | No | BTT | HMII | Alive s/p OHT | alive | 539521 | 223872 | 41.49 | 96.72 | 60.02 | 12.63 | 80.13 | 19.87 | 1.66 | 2.48 | 43.56 | 19.52 | 35.24 | 1.68 | 20.46 | 3.67 | 20.54 | 55.76 | 0.18 | 10.80 | 2.43 | 87.82 | 13.25 | 6.55 | 5.96 | 4.65 | 0.95 | 2.51 | 0.65 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
23 | 8 | 21 | 43 | younger | Male | low | 2 | Yes | No | BTT | HMII | Alive s/p OHT | alive | 564317 | 216312 | 38.33 | 97.40 | 55.80 | 4.83 | 74.19 | 25.81 | 5.35 | 5.77 | 37.90 | 25.72 | 34.76 | 1.62 | 17.99 | 2.18 | 31.75 | 61.61 | 0.77 | 13.44 | 6.97 | 76.55 | 6.97 | 10.34 | 11.14 | 4.46 | 0.94 | 5.14 | 2.43 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
24 | 10 | 0 | 43 | younger | Male | high | 3 | No | No | BTT | HMII | Alive s/p OHT | alive | 92221 | 27988 | 30.35 | 85.45 | 55.78 | 1.51 | 85.56 | 14.44 | 0.28 | 0.28 | 55.28 | 4.72 | 39.72 | 0.28 | 0.00 | 1.89 | 1.89 | 89.44 | 0.00 | 2.78 | 0.00 | 15.00 | 0.00 | 3.33 | 0.83 | 0.28 | 0.28 | 3.33 | 0.00 | 7.64 | 8.05 | 12.160 | 18.210 | 2.65 | 2.810 | 2.640 | 2.960 | 12.830 | 1.500 | 2.82 | 2.930 | 1.340 | 0.600 | 2.050 | 88.780 | 4.370 | 4.15 | 28.83 | 39.26 | 873.00 | 84.790 | 386.00 | 413 | 361 | 15.64 | 102.00 | 3.080 | 25.630 | 12.440 | 3.660 | 40.120 | 112.000 | 84.03 | 48.41 | 2.75 | 67.22 | 13502.00 |
25 | 10 | 1 | 43 | younger | Male | high | 3 | No | No | BTT | HMII | Alive s/p OHT | alive | 273746 | 46755 | 17.08 | 93.25 | 50.14 | 7.57 | 88.27 | 11.73 | 0.09 | 2.12 | 54.52 | 3.36 | 42.00 | 0.12 | 8.40 | 6.87 | 0.00 | 92.00 | 0.12 | 3.45 | 0.00 | 3.94 | 11.43 | 1.12 | 0.64 | 2.76 | 0.33 | 2.15 | 0.00 | 1.74 | 3.20 | 8.390 | 13.870 | 2.65 | 2.810 | 2.640 | 2.960 | 5.480 | 1.500 | 2.63 | 1.040 | 0.420 | 0.020 | 0.960 | 56.230 | 6.110 | 2.78 | 12.80 | 22.38 | 257.00 | 109.000 | 212.00 | 207 | 352 | 2.90 | 59.32 | 3.080 | 10.480 | 4.350 | 2.300 | 35.160 | 31.280 | 16.68 | 40.19 | 1.22 | 37.18 | 3646.00 |
26 | 10 | 3 | 43 | younger | Male | high | 3 | No | No | BTT | HMII | Alive s/p OHT | alive | 156053 | 71752 | 45.98 | 78.38 | 35.43 | 27.12 | 78.57 | 21.43 | 0.24 | 0.60 | 58.56 | 5.80 | 18.33 | 17.31 | 12.67 | 72.96 | 0.53 | 94.06 | 0.49 | 5.11 | 0.28 | 22.79 | 27.47 | 0.81 | 5.53 | 0.01 | 0.29 | 0.19 | 0.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
27 | 10 | 5 | 43 | younger | Male | high | 3 | No | No | BTT | HMII | Alive s/p OHT | alive | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 28.26 | 29.24 | 25.930 | 19.130 | 12.01 | 9.860 | 4.910 | 2.960 | 12.270 | 2.300 | 8.31 | 8.480 | 4.420 | 6.460 | 5.600 | 31.690 | 12.300 | 6.41 | 65.76 | 22.02 | 605.00 | 111.000 | 650.00 | 279 | 320 | 27.98 | 245.00 | 8.330 | 34.600 | 26.450 | 10.410 | 112.000 | 184.000 | 48.97 | 197.00 | 24.56 | 128.00 | 8387.00 |
28 | 10 | 8 | 43 | younger | Male | high | 3 | No | No | BTT | HMII | Alive s/p OHT | alive | 156053 | 71752 | 45.98 | 78.38 | 35.43 | 27.12 | 78.57 | 21.43 | 0.24 | 0.60 | 58.56 | 5.80 | 18.33 | 17.31 | 12.67 | 72.96 | 0.53 | 94.06 | 0.49 | 5.11 | 0.28 | 22.79 | 27.47 | 0.81 | 5.53 | 0.01 | 0.29 | 0.19 | 0.00 | 70.58 | 65.90 | 45.390 | 26.340 | 33.60 | 24.140 | 10.790 | 5.940 | 18.220 | 4.580 | 16.86 | 22.040 | 10.800 | 17.200 | 14.210 | 33.990 | 19.940 | 11.61 | 146.00 | 23.83 | 661.00 | 105.000 | 765.00 | 325 | 270 | 45.41 | 414.00 | 17.810 | 51.840 | 49.970 | 22.030 | 205.000 | 266.000 | 76.21 | 266.00 | 48.57 | 276.00 | 9997.00 |
29 | 13 | 0 | 61 | older | Male | low | 2 | No | No | BTT | HMII | Alive s/p OHT | alive | 411616 | 119210 | 28.96 | 90.82 | 73.63 | 5.88 | 74.30 | 25.70 | 2.80 | 6.46 | 57.94 | 19.20 | 18.72 | 4.13 | 19.10 | 15.42 | 15.30 | 53.51 | 13.78 | 25.19 | 0.21 | 47.23 | 53.77 | 5.75 | 5.92 | 22.63 | 3.46 | 2.55 | 0.74 | 74.33 | 630.00 | 1198.000 | 29.033 | 285.00 | 6.710 | 41.890 | 282.000 | 58.746 | 108.000 | 242.00 | 1363.000 | 17.372 | 74.166 | 4.089 | 381.000 | 11.334 | 76.55 | 183.00 | 145.00 | 703.00 | 339.000 | 938.00 | 642 | 424 | 191.00 | 439.00 | 51.380 | 409.000 | 169.000 | 31.768 | 254.000 | 3217.000 | 299.00 | 1084.00 | 546.00 | 877.00 | 6887.00 |
30 | 13 | 1 | 61 | older | Male | low | 2 | No | No | BTT | HMII | Alive s/p OHT | alive | 430509 | 79492 | 18.46 | 89.31 | 52.10 | 20.45 | 87.13 | 12.87 | 1.23 | 4.76 | 58.11 | 9.15 | 30.55 | 2.20 | 29.86 | 18.05 | 10.37 | 63.63 | 10.23 | 17.43 | 0.06 | 74.05 | 72.50 | 2.36 | 2.98 | 10.68 | 1.72 | 1.03 | 2.89 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
31 | 13 | 3 | 61 | older | Male | low | 2 | No | No | BTT | HMII | Alive s/p OHT | alive | 395713 | 119670 | 30.24 | 97.90 | 23.79 | 6.27 | 82.17 | 17.83 | 0.79 | 1.99 | 49.95 | 13.01 | 33.91 | 3.13 | 28.36 | 16.83 | 5.00 | 56.33 | 7.13 | 26.73 | 0.02 | 79.50 | 82.88 | 1.96 | 5.55 | 16.30 | 3.61 | 1.88 | 0.42 | 4.28 | 159.00 | 409.000 | 41.124 | 12.27 | 2.320 | 4.307 | 20.356 | 15.581 | 16.793 | 121.00 | 61.854 | 2.899 | 4.794 | 1.980 | 49.157 | 20.020 | 28.46 | 32.56 | 102.00 | 524.00 | 415.000 | 305.00 | 282 | 465 | 41.67 | 203.00 | 12.431 | 121.000 | 35.967 | 2.120 | 73.622 | 945.000 | 39.60 | 451.00 | 55.87 | 159.00 | 676.00 |
32 | 13 | 8 | 61 | older | Male | low | 2 | No | No | BTT | HMII | Alive s/p OHT | alive | 329840 | 73468 | 22.27 | 98.63 | 70.61 | 3.73 | 51.50 | 48.50 | 8.32 | 3.77 | 33.46 | 41.29 | 20.92 | 4.33 | 25.19 | 5.89 | 24.07 | 46.40 | 3.73 | 34.64 | 0.07 | 64.14 | 28.43 | 10.35 | 9.61 | 38.78 | 4.62 | 5.55 | 2.91 | 100.00 | 430.00 | 1063.000 | 57.719 | 245.00 | 135.000 | 21.182 | 84.771 | 41.826 | 160.000 | 229.00 | 580.000 | 22.030 | 72.412 | 10.670 | 229.000 | 25.806 | 54.08 | 223.00 | 143.00 | 966.00 | 310.000 | 777.00 | 1415 | 796 | 217.00 | 325.00 | 45.047 | 411.000 | 137.000 | 44.518 | 266.000 | 2406.000 | 193.00 | 908.00 | 321.00 | 732.00 | 7464.00 |
33 | 13 | 14 | 61 | older | Male | low | 2 | No | No | BTT | HMII | Alive s/p OHT | alive | 350294 | 88823 | 25.36 | 97.63 | 74.37 | 4.37 | 73.35 | 26.65 | 4.91 | 4.83 | 56.54 | 21.32 | 19.84 | 2.30 | 34.68 | 11.25 | 18.37 | 61.98 | 5.78 | 20.55 | 0.04 | 63.91 | 47.54 | 6.81 | 6.17 | 21.77 | 2.90 | 2.74 | 3.00 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
34 | 16 | 0 | 39 | younger | Female | high | 3 | Yes | No | BTT | HMII | Died post OHT | dead | 52016 | 30920 | 59.44 | 95.77 | 55.57 | 24.62 | 58.73 | 41.27 | 2.14 | 0.97 | 53.01 | 5.05 | 5.45 | 36.50 | 9.39 | 81.29 | 2.88 | 81.48 | 5.65 | 9.02 | 0.48 | 97.75 | 71.83 | 0.67 | 22.89 | 0.34 | 1.78 | 0.49 | NA | 11.66 | 5.99 | 5.180 | 18.210 | 2.65 | 2.810 | 2.640 | 2.960 | 2.600 | 1.500 | 3.19 | 3.790 | 0.750 | 1.140 | 1.270 | 12.840 | 1.920 | 2.78 | 22.29 | 13.36 | 205.00 | 120.000 | 433.00 | 852 | 235 | 13.38 | 108.00 | 17.980 | 22.860 | 7.890 | 3.660 | 26.920 | 114.000 | 27.36 | 63.49 | 6.10 | 47.28 | 2960.00 |
35 | 16 | 1 | 39 | younger | Female | high | 3 | Yes | No | BTT | HMII | Died post OHT | dead | 75516 | 48801 | 64.62 | 92.13 | 52.90 | 18.64 | 70.39 | 29.61 | 2.92 | 2.21 | 62.18 | 5.13 | 7.98 | 24.70 | 13.79 | 69.54 | 3.19 | 84.14 | 3.64 | 6.36 | 0.41 | 94.93 | 43.78 | 0.57 | 15.61 | 0.23 | 0.91 | 0.36 | NA | 6.69 | 4.54 | 3.850 | 13.310 | 2.65 | 2.810 | 2.640 | 2.960 | 15.360 | 1.500 | 2.89 | 2.390 | 0.640 | 1.550 | 1.060 | 51.270 | 3.890 | 2.78 | 23.91 | 29.12 | 139.00 | 53.210 | 184.00 | 503 | 192 | 13.38 | 162.00 | 30.710 | 25.630 | 7.270 | 3.380 | 58.260 | 135.000 | 10.50 | 52.34 | 4.60 | 111.00 | 1306.00 |
36 | 16 | 3 | 39 | younger | Female | high | 3 | Yes | No | BTT | HMII | Died post OHT | dead | 250612 | 130454 | 52.05 | 95.75 | 60.05 | 3.29 | 46.04 | 53.96 | 1.34 | 3.89 | 33.08 | 32.47 | 8.29 | 26.15 | 3.56 | 34.61 | 0.09 | 76.71 | 0.39 | 13.20 | 0.28 | 39.79 | 14.38 | 2.26 | 1.56 | 10.45 | 2.89 | 3.04 | 0.08 | 22.58 | 5.49 | 6.580 | 15.690 | 2.77 | 2.810 | 2.640 | 2.960 | 19.820 | 1.500 | 3.96 | 4.710 | 1.750 | 5.060 | 1.270 | 242.000 | 7.410 | 6.23 | 43.70 | 45.47 | 205.00 | 139.000 | 201.00 | 614 | 498 | 27.61 | 259.00 | 37.910 | 41.540 | 13.790 | 4.520 | 90.330 | 187.000 | 20.67 | 91.18 | 20.95 | 94.90 | 1637.00 |
37 | 16 | 5 | 39 | younger | Female | high | 3 | Yes | No | BTT | HMII | Died post OHT | dead | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 36.87 | 8.59 | 9.500 | 14.150 | 5.49 | 4.340 | 2.640 | 2.960 | 3.860 | 1.500 | 4.92 | 8.120 | 2.050 | 5.620 | 1.480 | 49.360 | 5.860 | 3.77 | 51.10 | 19.90 | 214.00 | 142.000 | 261.00 | 1163 | 556 | 27.24 | 145.00 | 37.770 | 41.540 | 20.750 | 5.700 | 54.980 | 210.000 | 28.80 | 99.93 | 38.44 | 100.00 | 3060.00 |
38 | 16 | 8 | 39 | younger | Female | high | 3 | Yes | No | BTT | HMII | Died post OHT | dead | 212478 | 120477 | 56.70 | 85.12 | 48.36 | 12.51 | 79.57 | 20.43 | 1.35 | 2.14 | 58.73 | 12.87 | 18.44 | 9.96 | 5.63 | 34.32 | 0.11 | 86.74 | 0.41 | 6.88 | 0.15 | 35.30 | 53.09 | 1.23 | 0.75 | 2.36 | 1.04 | 1.47 | NA | 39.75 | 7.52 | 10.260 | 14.990 | 6.70 | 4.900 | 2.640 | 3.060 | 5.960 | 1.500 | 5.57 | 11.870 | 2.670 | 6.610 | 1.480 | 49.000 | 5.860 | 3.86 | 55.20 | 17.87 | 278.00 | 105.000 | 428.00 | 1180 | 309 | 30.12 | 162.00 | 41.370 | 49.350 | 22.170 | 5.990 | 67.210 | 220.000 | 34.39 | 108.00 | 31.81 | 119.00 | 3873.00 |
39 | 17 | 0 | 70 | older | Female | low | 2 | No | NA | DT | HMII | Alive | alive | 86135 | 70306 | 81.62 | 93.71 | 74.50 | 1.59 | 61.74 | 38.26 | 1.91 | 2.67 | 33.97 | 14.50 | 26.81 | 24.71 | 20.67 | 62.47 | 9.03 | 73.00 | 2.00 | 24.71 | 1.27 | 20.23 | 71.43 | 0.48 | 12.79 | 0.38 | 3.24 | 0.48 | 4.60 | 2.81 | 7.26 | 7.290 | 173.000 | 2.65 | 2.810 | 2.640 | 2.960 | 12.550 | 1.500 | 4.28 | 8.850 | 0.640 | 0.770 | 1.160 | 2.930 | 3.890 | 3.28 | 27.19 | 22.83 | 145.00 | 70.170 | 765.00 | 1478 | 482 | 9.57 | 94.83 | 94.860 | 103.000 | 8.520 | 3.660 | 18.060 | 120.000 | 19.71 | 40.19 | 28.19 | 51.59 | 1276.00 |
40 | 17 | 1 | 70 | older | Female | low | 2 | No | NA | DT | HMII | Alive | alive | 81004 | 41334 | 51.03 | 94.06 | 53.64 | 2.99 | 61.70 | 38.30 | 3.10 | 2.75 | 39.07 | 13.34 | 22.12 | 25.47 | 12.58 | 63.11 | 15.99 | 78.92 | 2.93 | 17.38 | 3.35 | 23.24 | 71.88 | 0.52 | 11.70 | 0.09 | 1.29 | 0.52 | 9.83 | 7.64 | 4.08 | 4.170 | 41.980 | 2.65 | 2.810 | 2.640 | 2.960 | 133.000 | 1.500 | 2.63 | 7.760 | 0.420 | 1.770 | 0.910 | 98.210 | 8.740 | 4.54 | 15.89 | 77.14 | 211.00 | 64.900 | 374.00 | 1714 | 959 | 5.00 | 64.16 | 21.350 | 54.290 | 8.520 | 2.560 | 284.000 | 52.100 | 11.10 | 21.92 | 7.15 | 51.59 | 1301.00 |
41 | 17 | 3 | 70 | older | Female | low | 2 | No | NA | DT | HMII | Alive | alive | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 0.22 | 3.20 | 3.220 | 21.580 | 2.65 | 2.810 | 2.640 | 2.960 | 15.210 | 1.500 | 2.63 | 2.520 | 0.420 | 0.020 | 0.680 | 58.680 | 7.800 | 3.77 | 8.37 | 31.94 | 83.16 | 74.380 | 388.00 | 644 | 432 | 2.90 | 49.55 | 8.660 | 30.220 | 4.630 | 1.790 | 14.940 | 45.600 | 11.69 | 14.26 | 1.53 | 29.96 | 690.00 |
42 | 17 | 5 | 70 | older | Female | low | 2 | No | NA | DT | HMII | Alive | alive | 90024 | 39434 | 43.80 | 95.32 | 68.83 | 5.62 | 71.59 | 28.41 | 0.85 | 1.66 | 35.23 | 13.02 | 35.80 | 15.96 | 22.94 | 52.37 | 5.85 | 76.42 | 1.14 | 21.83 | 0.62 | 14.54 | 48.57 | 0.38 | 4.69 | 0.00 | 0.80 | 0.38 | 0.62 | 0.58 | 3.63 | 3.220 | 25.010 | 2.65 | 2.810 | 2.640 | 2.960 | 23.480 | 1.500 | 2.63 | 2.390 | 0.420 | 0.100 | 0.860 | 31.820 | 7.670 | 11.61 | 15.89 | 41.91 | 454.00 | 91.330 | 506.00 | 670 | 421 | 3.21 | 54.44 | 14.370 | 37.430 | 6.660 | 2.300 | 33.500 | 58.260 | 15.08 | 19.42 | 6.10 | 41.52 | 1837.00 |
43 | 17 | 8 | 70 | older | Female | low | 2 | No | NA | DT | HMII | Alive | alive | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 37.61 | 21.91 | 44.071 | 23.633 | 39.20 | 9.532 | 6.428 | 5.102 | 32.860 | 7.062 | 12.93 | 20.414 | 2.167 | 3.138 | 5.978 | 41.851 | 8.190 | 4.95 | 63.21 | 39.70 | 328.00 | 175.000 | 323.00 | 808 | 540 | 34.88 | 91.67 | 13.604 | 48.125 | 30.231 | 5.864 | 59.949 | 466.000 | 81.74 | 150.00 | 4.51 | 195.00 | 9741.00 |
44 | 17 | 14 | 70 | older | Female | low | 2 | No | NA | DT | HMII | Alive | alive | 106791 | 80532 | 75.41 | 88.82 | 79.92 | 1.57 | 62.32 | 37.68 | 1.70 | 4.02 | 28.04 | 22.86 | 34.11 | 15.00 | 23.92 | 39.41 | 15.03 | 61.61 | 3.66 | 34.55 | 1.97 | 20.36 | 73.33 | 0.80 | 8.57 | 0.27 | 1.79 | 0.98 | 0.71 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
45 | 18 | 0 | 63 | older | Male | low | 1 | No | NA | BTT | HMII | Died | dead | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 60.38 | 32.81 | 186.000 | 38.833 | 32.98 | 21.709 | 3.051 | 5.621 | 37.885 | 11.091 | 29.33 | 189.000 | 6.338 | 16.504 | 4.089 | 278.000 | 17.668 | 7.17 | 59.99 | 54.99 | 695.00 | 232.000 | 211.00 | 828 | 1145 | 50.86 | 107.00 | 10.251 | 111.000 | 31.722 | 7.153 | 120.000 | 533.000 | 28.75 | 322.00 | 2.34 | 224.00 | 3524.00 |
46 | 18 | 1 | 63 | older | Male | low | 1 | No | NA | BTT | HMII | Died | dead | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 63.95 | 40.14 | 249.000 | 28.453 | 32.98 | 21.709 | 3.357 | 4.711 | 28.562 | 11.091 | 38.39 | 220.000 | 6.089 | 13.032 | 4.089 | 124.000 | 15.114 | 5.01 | 59.99 | 41.74 | 638.00 | 289.000 | 303.00 | 509 | 713 | 59.63 | 121.00 | 9.867 | 123.000 | 56.352 | 7.153 | 82.196 | 685.000 | 46.72 | 384.00 | 14.39 | 229.00 | 5489.00 |
47 | 18 | 3 | 63 | older | Male | low | 1 | No | NA | BTT | HMII | Died | dead | 366713 | 77282 | 21.07 | 98.61 | 66.55 | 12.44 | 93.65 | 6.35 | 0.53 | 0.60 | 62.22 | 4.68 | 32.38 | 0.72 | 19.94 | 9.89 | 28.23 | 83.18 | 0.51 | 14.38 | 0.30 | 94.72 | 54.39 | 2.07 | 11.33 | 2.86 | 3.40 | 1.48 | 3.58 | 65.71 | 24.75 | 198.000 | 26.329 | 40.68 | 18.837 | 4.631 | 4.711 | 20.178 | 9.696 | 29.66 | 185.000 | 5.841 | 11.411 | 4.293 | 71.642 | 12.166 | 3.92 | 74.20 | 35.60 | 1110.00 | 222.000 | 300.00 | 489 | 627 | 50.86 | 126.00 | 9.479 | 104.000 | 51.467 | 10.275 | 77.933 | 727.000 | 62.42 | 422.00 | 11.03 | 219.00 | 9557.42 |
48 | 18 | 5 | 63 | older | Male | low | 1 | No | NA | BTT | HMII | Died | dead | 262251 | 55344 | 21.10 | 99.55 | 62.37 | 14.39 | 93.00 | 7.00 | 1.03 | 0.69 | 65.71 | 4.74 | 28.37 | 1.17 | 25.93 | 17.28 | 25.93 | 79.87 | 1.20 | 17.05 | 0.48 | 97.76 | 58.18 | 2.27 | 11.13 | 4.12 | 4.91 | 1.87 | 6.10 | 89.92 | 70.33 | 309.000 | 36.344 | 103.00 | 29.010 | 8.732 | 7.037 | 28.329 | 24.712 | 57.19 | 384.000 | 8.403 | 25.681 | 5.347 | 93.592 | 18.950 | 6.40 | 67.14 | 51.06 | 434.00 | 238.000 | 328.00 | 896 | 536 | 91.53 | 134.00 | 14.161 | 155.000 | 92.272 | 10.890 | 115.000 | 873.000 | 64.87 | 398.00 | 65.30 | 368.00 | 2247.00 |
49 | 18 | 8 | 63 | older | Male | low | 1 | No | NA | BTT | HMII | Died | dead | 309193 | 61091 | 19.76 | 98.15 | 56.62 | 7.24 | 83.61 | 16.39 | 3.27 | 1.52 | 58.03 | 11.90 | 28.13 | 1.93 | 24.65 | 11.36 | 1.52 | 79.53 | 1.45 | 13.33 | 0.97 | 92.63 | 25.76 | 3.50 | 9.23 | 7.57 | 3.73 | 3.48 | 0.00 | 60.38 | 17.64 | 183.000 | 34.233 | 42.23 | 20.268 | 6.645 | 4.488 | 29.029 | 11.795 | 27.05 | 177.000 | 6.089 | 10.605 | 3.887 | 154.000 | 12.585 | 3.77 | 56.39 | 56.34 | 1534.00 | 165.000 | 446.00 | 487 | 478 | 53.19 | 121.00 | 10.759 | 85.242 | 37.382 | 13.310 | 79.359 | 700.000 | 104.00 | 490.00 | 12.72 | 151.00 | 9557.42 |
50 | 19 | 0 | 68 | older | Male | high | 3 | No | NA | DT | HMII | Died | dead | 147997 | 54649 | 36.93 | 91.75 | 79.63 | 7.62 | 74.86 | 25.14 | 0.60 | 3.45 | 62.45 | 22.87 | 12.30 | 2.38 | 45.98 | 9.28 | 13.61 | 74.33 | 2.67 | 21.19 | 0.84 | 91.31 | 90.15 | 3.58 | 2.25 | 21.79 | 1.36 | 0.58 | 0.34 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
51 | 19 | 1 | 68 | older | Male | high | 3 | No | NA | DT | HMII | Died | dead | 177687 | 56400 | 31.74 | 97.13 | 69.76 | 12.60 | 81.83 | 18.17 | 0.65 | 1.61 | 55.77 | 16.13 | 26.02 | 2.09 | 53.19 | 10.70 | 11.57 | 82.92 | 1.38 | 13.98 | 0.28 | 89.83 | 85.59 | 3.78 | 1.85 | 14.65 | 1.30 | 0.68 | 0.18 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
52 | 19 | 3 | 68 | older | Male | high | 3 | No | NA | DT | HMII | Died | dead | 233155 | 67140 | 28.80 | 98.44 | 74.89 | 5.32 | 81.96 | 18.04 | 1.00 | 1.88 | 49.03 | 16.59 | 32.90 | 1.48 | 49.92 | 7.20 | 12.83 | 83.44 | 1.39 | 12.98 | 0.14 | 89.70 | 69.70 | 4.58 | 1.62 | 13.89 | 1.08 | 1.08 | 0.17 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
53 | 19 | 5 | 68 | older | Male | high | 3 | No | NA | DT | HMII | Died | dead | 99257 | 29455 | 29.68 | 97.33 | 62.48 | 4.73 | 80.60 | 19.40 | 1.84 | 1.25 | 45.06 | 18.36 | 35.25 | 1.33 | 44.61 | 6.32 | 12.27 | 82.89 | 0.88 | 13.20 | 0.09 | 83.55 | 35.29 | 7.23 | 3.54 | 14.75 | 2.29 | 3.02 | 1.20 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
54 | 19 | 8 | 68 | older | Male | high | 3 | No | NA | DT | HMII | Died | dead | 76358 | 18702 | 24.49 | 97.32 | 29.48 | 11.10 | 86.29 | 13.71 | 2.43 | 0.50 | 37.92 | 12.13 | 48.32 | 1.63 | 46.45 | 11.70 | 11.35 | 83.96 | 0.20 | 10.50 | 0.06 | 57.82 | 50.00 | 9.95 | 29.60 | 10.20 | 0.64 | 9.36 | 0.80 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
55 | 21 | 0 | 46 | younger | Male | low | 2 | No | NA | DT | HMII | Alive | alive | 226762 | 25868 | 11.41 | 89.41 | 25.31 | 12.05 | 55.06 | 44.94 | 11.31 | 2.69 | 14.79 | 42.57 | 39.95 | 2.69 | 19.87 | 3.88 | 32.88 | 68.95 | 10.48 | 13.57 | 0.59 | 80.62 | 22.67 | 31.91 | 19.38 | 15.58 | 10.37 | 16.55 | 8.18 | 2.18 | 2.45 | 60.794 | 34.617 | 2.31 | 2.320 | 1.245 | 1.590 | 68.832 | 1.520 | 7.45 | 2.120 | 1.920 | 1.450 | 1.980 | 130.000 | 3.544 | 14.61 | 5.57 | 47.27 | 442.00 | 52.814 | 249.00 | 328 | 245 | 3.98 | 55.48 | 2.230 | 19.937 | 2.737 | 3.987 | 21.566 | 118.000 | 2.89 | 23.91 | 0.39 | 52.69 | 1293.00 |
56 | 21 | 3 | 46 | younger | Male | low | 2 | No | NA | DT | HMII | Alive | alive | 244049 | 39386 | 16.14 | 94.94 | 40.46 | 13.23 | 40.93 | 59.07 | 13.36 | 3.17 | 8.33 | 54.90 | 32.28 | 4.49 | 18.52 | 4.21 | 23.83 | 55.18 | 13.87 | 19.39 | 1.44 | 70.53 | 35.67 | 33.62 | 33.47 | 22.86 | 15.26 | 25.81 | 5.11 | 2.18 | 2.71 | 17.955 | 26.715 | 9.57 | 2.320 | 1.893 | 1.590 | 3.759 | 1.520 | 3.89 | 2.120 | 1.920 | 1.450 | 1.980 | 59.228 | 1.623 | 7.17 | 8.93 | 60.31 | 820.00 | 73.754 | 165.00 | 347 | 262 | 3.98 | 63.62 | 2.230 | 18.052 | 2.737 | 3.358 | 15.234 | 90.169 | 11.56 | 77.19 | 0.39 | 33.64 | 2726.00 |
57 | 21 | 5 | 46 | younger | Male | low | 2 | No | NA | DT | HMII | Alive | alive | 344736 | 250121 | 72.55 | 89.83 | 7.54 | 3.81 | 45.84 | 54.16 | 3.96 | 1.53 | 13.39 | 52.70 | 32.18 | 1.72 | 67.14 | 2.92 | 2.44 | 74.68 | 6.81 | 13.91 | 0.21 | 63.33 | 58.02 | 33.05 | 30.94 | 19.83 | 13.96 | 26.74 | 0.22 | 2.18 | 4.12 | 15.278 | 24.202 | 12.27 | 2.320 | 2.457 | 1.590 | 4.492 | 1.520 | 3.07 | 2.120 | 1.920 | 1.450 | 2.558 | 43.554 | 1.623 | 2.86 | 23.32 | 48.13 | 1082.00 | 71.954 | 125.00 | 260 | 251 | 5.90 | 77.95 | 2.230 | 18.052 | 7.234 | 7.153 | 27.925 | 153.000 | 29.97 | 118.00 | 0.39 | 52.69 | 4714.00 |
58 | 21 | 8 | 46 | younger | Male | low | 2 | No | NA | DT | HMII | Alive | alive | 216934 | 140093 | 64.58 | 96.37 | 4.78 | 7.22 | 22.49 | 77.51 | 13.49 | 0.64 | 7.22 | 67.61 | 15.17 | 10.00 | 35.88 | 7.82 | 17.22 | 51.28 | 39.40 | 6.56 | 1.33 | 62.59 | 58.06 | 66.67 | 64.59 | 53.00 | 50.26 | 63.78 | 4.97 | 2.18 | 2.45 | 24.797 | 23.042 | 8.26 | 2.320 | 1.625 | 1.590 | 3.060 | 1.520 | 4.03 | 2.120 | 1.920 | 1.450 | 1.980 | 44.329 | 0.827 | 2.13 | 5.57 | 54.35 | 370.00 | 84.966 | 89.52 | 348 | 255 | 3.98 | 46.41 | 2.230 | 9.990 | 2.520 | 2.120 | 9.035 | 55.097 | 2.89 | 23.91 | 0.39 | 27.20 | 1113.00 |
59 | 21 | 14 | 46 | younger | Male | low | 2 | No | NA | DT | HMII | Alive | alive | 215820 | 66785 | 30.94 | 92.54 | 17.20 | 6.01 | 25.88 | 74.12 | 9.15 | 1.45 | 3.09 | 71.72 | 22.44 | 2.74 | 65.43 | 3.42 | 0.04 | 69.38 | 15.93 | 8.85 | 0.74 | 50.58 | 24.07 | 52.78 | 48.88 | 32.28 | 28.19 | 44.04 | 0.04 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
60 | 21 | 21 | 46 | younger | Male | low | 2 | No | NA | DT | HMII | Alive | alive | 670692 | 523014 | 77.98 | 96.05 | 5.07 | 2.64 | 23.61 | 76.39 | 4.11 | 0.49 | 4.79 | 73.53 | 18.68 | 3.00 | 42.40 | 2.72 | 4.49 | 71.95 | 20.81 | 5.51 | 0.45 | 48.22 | 44.62 | 60.13 | 60.26 | 39.07 | 36.82 | 56.38 | 1.49 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
61 | 22 | 0 | 75 | older | Male | low | 2 | No | NA | DT | HMII | Alive | alive | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 59.97 | 33.76 | 44.886 | 35.293 | 48.50 | 30.282 | 52.148 | 11.702 | 46.900 | 18.224 | 10.78 | 72.616 | 5.569 | 5.458 | 11.016 | 23.895 | 17.965 | 7.15 | 143.00 | 43.59 | 989.00 | 135.000 | 584.00 | 662 | 925 | 40.52 | 163.00 | 13.354 | 43.750 | 59.591 | 13.629 | 94.278 | 449.000 | 104.00 | 196.00 | 0.92 | 248.00 | 10443.75 |
62 | 22 | 1 | 75 | older | Male | low | 2 | No | NA | DT | HMII | Alive | alive | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 6.42 | 13.61 | 24.600 | 30.292 | 4.17 | 3.956 | 10.044 | 3.491 | 27.540 | 3.964 | 5.69 | 3.190 | 0.940 | 1.805 | 2.360 | 69.905 | 14.225 | 3.22 | 64.43 | 56.18 | 263.00 | 47.791 | 495.00 | 624 | 1321 | 16.57 | 80.75 | 6.352 | 20.019 | 15.869 | 3.706 | 57.971 | 119.000 | 6.20 | 184.00 | 0.92 | 49.17 | 2297.00 |
63 | 22 | 3 | 75 | older | Male | low | 2 | No | NA | DT | HMII | Alive | alive | 121794 | 28129 | 23.10 | 97.05 | 52.79 | 16.42 | 70.08 | 29.92 | 0.29 | 0.54 | 50.71 | 21.46 | 22.96 | 4.86 | 34.18 | 12.51 | 23.49 | 39.78 | 0.31 | 55.18 | 0.35 | 96.01 | 16.67 | 1.74 | 5.27 | 23.38 | 2.95 | 1.00 | 0.10 | 2.77 | 13.90 | 16.630 | 13.668 | 9.16 | 2.970 | 3.372 | 2.078 | 10.277 | 6.347 | 2.66 | 4.260 | 1.165 | 1.090 | 2.360 | 36.910 | 7.340 | 2.59 | 60.77 | 27.10 | 698.00 | 100.000 | 514.00 | 323 | 606 | 25.83 | 54.27 | 4.276 | 23.867 | 33.318 | 4.024 | 31.548 | 264.000 | 61.66 | 124.00 | 0.92 | 69.60 | 10443.75 |
64 | 22 | 5 | 75 | older | Male | low | 2 | No | NA | DT | HMII | Alive | alive | 82157 | 17295 | 21.05 | 99.20 | 72.54 | 7.41 | 68.21 | 31.79 | 1.10 | 0.55 | 48.47 | 22.90 | 23.60 | 5.04 | 31.90 | 13.57 | 18.10 | 37.84 | 0.47 | 56.73 | 0.35 | 92.37 | 14.29 | 2.05 | 7.79 | 26.20 | 4.72 | 1.42 | 1.02 | 17.15 | 11.58 | 21.356 | 25.652 | 9.57 | 5.509 | 5.963 | 3.002 | 17.410 | 6.315 | 3.89 | 23.573 | 2.504 | 1.494 | 5.132 | 87.134 | 12.166 | 2.86 | 56.39 | 33.82 | 845.00 | 150.000 | 484.00 | 556 | 814 | 19.17 | 130.00 | 6.685 | 27.906 | 20.483 | 10.890 | 40.533 | 185.000 | 70.35 | 99.39 | 2.34 | 118.00 | 7899.00 |
65 | 22 | 8 | 75 | older | Male | low | 2 | No | NA | DT | HMII | Alive | alive | 154810 | 27067 | 17.48 | 98.04 | 72.18 | 5.03 | 74.91 | 25.09 | 0.90 | 1.65 | 58.05 | 14.76 | 20.82 | 6.37 | 23.43 | 25.71 | 22.57 | 44.94 | 0.60 | 49.36 | 0.71 | 86.59 | 22.73 | 3.30 | 7.64 | 20.15 | 4.87 | 1.72 | 0.00 | 10.19 | 18.30 | 30.677 | 25.655 | 16.47 | 9.100 | 6.693 | 4.896 | 29.159 | 3.022 | 8.07 | 3.688 | 1.295 | 1.557 | 8.079 | 68.056 | 13.360 | 5.90 | 58.29 | 31.79 | 671.00 | 47.791 | 696.00 | 506 | 704 | 18.84 | 102.00 | 12.748 | 17.993 | 11.877 | 5.864 | 44.162 | 198.000 | 49.71 | 115.00 | 1.39 | 114.00 | 10443.75 |
66 | 22 | 21 | 75 | older | Male | low | 2 | No | NA | DT | HMII | Alive | alive | 197936 | 15446 | 7.80 | 95.86 | 50.35 | 5.44 | 79.13 | 20.87 | 3.98 | 3.11 | 52.30 | 15.90 | 29.81 | 1.99 | 20.23 | 5.78 | 24.86 | 40.62 | 1.12 | 50.06 | 1.89 | 62.36 | 8.00 | 7.20 | 9.94 | 13.17 | 3.60 | 5.09 | 1.55 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
67 | 23 | 0 | 30 | younger | Female | high | 3 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 114586 | 35996 | 31.41 | 100.00 | 59.03 | 11.31 | 75.87 | 24.13 | 1.52 | 7.69 | 69.83 | 11.67 | 10.20 | 8.30 | 27.80 | 29.94 | 2.04 | 84.64 | 0.64 | 10.54 | 0.61 | 91.57 | 61.34 | 4.99 | 7.15 | 11.57 | 5.92 | 2.53 | 1.92 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
68 | 23 | 1 | 30 | younger | Female | high | 3 | No | Yes | BTT | HMII | Alive s/p OHT | alive | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 13.27 | 4.09 | 22.842 | 12.996 | 2.80 | 2.970 | 1.098 | 0.346 | 6.097 | 2.290 | 3.48 | 3.190 | 0.940 | 0.850 | 2.360 | 103.000 | 4.849 | 4.64 | 2.91 | 28.25 | 276.00 | 25.145 | 449.00 | 274 | 442 | 7.15 | 31.49 | 3.050 | 10.241 | 2.290 | 1.036 | 12.701 | 13.318 | 2.92 | 110.00 | 0.92 | 39.59 | 1621.00 |
69 | 23 | 3 | 30 | younger | Female | high | 3 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 349054 | 129419 | 37.08 | 95.25 | 62.35 | 8.81 | 79.64 | 20.36 | 2.72 | 4.45 | 57.70 | 13.93 | 25.89 | 2.48 | 57.14 | 13.49 | 8.69 | 74.29 | 3.76 | 12.35 | 1.41 | 85.87 | 62.53 | 3.41 | 5.43 | 7.67 | 1.40 | 1.92 | 1.06 | 72.99 | 13.61 | 25.476 | 15.689 | 9.16 | 4.312 | 3.544 | 2.168 | 12.912 | 2.432 | 6.98 | 3.190 | 1.430 | 0.850 | 5.769 | 30.560 | 4.849 | 4.20 | 59.53 | 23.70 | 268.00 | 56.470 | 507.00 | 350 | 496 | 15.38 | 108.00 | 3.050 | 23.400 | 13.860 | 7.400 | 61.926 | 158.000 | 3.85 | 123.00 | 0.92 | 108.00 | 2374.00 |
70 | 23 | 5 | 30 | younger | Female | high | 3 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 447309 | 176789 | 39.52 | 93.00 | 53.57 | 9.32 | 80.92 | 19.08 | 2.16 | 5.73 | 56.72 | 12.51 | 28.43 | 2.34 | 47.68 | 12.19 | 11.00 | 73.80 | 4.44 | 12.53 | 2.57 | 83.88 | 49.09 | 5.24 | 6.82 | 8.32 | 2.18 | 2.28 | 1.72 | 75.52 | 39.53 | 49.720 | 16.363 | 80.35 | 13.585 | 14.246 | 8.044 | 28.002 | 22.225 | 15.11 | 23.132 | 3.869 | 4.279 | 13.928 | 30.947 | 13.071 | 8.12 | 149.00 | 16.40 | 384.00 | 120.000 | 681.00 | 419 | 400 | 41.84 | 179.00 | 5.172 | 46.471 | 46.582 | 14.665 | 126.000 | 364.000 | 36.57 | 89.46 | 22.99 | 224.00 | 4716.00 |
71 | 23 | 8 | 30 | younger | Female | high | 3 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 558290 | 301468 | 54.00 | 95.62 | 47.73 | 7.04 | 79.13 | 20.87 | 3.43 | 7.49 | 53.19 | 13.48 | 30.32 | 3.01 | 36.36 | 14.54 | 12.10 | 70.55 | 5.15 | 11.89 | 3.51 | 79.79 | 52.89 | 6.98 | 8.50 | 7.82 | 1.92 | 3.09 | 1.96 | 55.93 | 9.15 | 32.389 | 17.862 | 2.80 | 2.970 | 3.716 | 1.989 | 10.711 | 2.290 | 7.10 | NA | NA | 12.466 | 2.360 | 17.125 | 3.019 | 4.20 | 57.05 | 18.04 | 905.00 | 265.000 | 855.00 | 393 | 618 | 22.99 | 71.07 | 3.050 | 22.929 | 32.290 | 4.131 | 50.068 | 170.000 | NA | 97.14 | 17.70 | 80.29 | 10443.75 |
72 | 23 | 14 | 30 | younger | Female | high | 3 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 479402 | 362845 | 75.69 | 97.95 | 44.30 | 6.30 | 76.53 | 23.47 | 3.90 | 11.10 | 34.99 | 12.04 | 50.31 | 2.66 | 21.93 | 14.88 | 10.05 | 70.21 | 4.66 | 7.31 | 7.73 | 49.96 | 29.38 | 13.44 | 17.37 | 5.64 | 3.01 | 6.95 | 2.28 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
73 | 23 | 21 | 30 | younger | Female | high | 3 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 334942 | 191418 | 57.15 | 93.28 | 70.35 | 4.04 | 70.89 | 29.11 | 6.20 | 17.70 | 56.45 | 19.57 | 20.44 | 3.53 | 38.91 | 14.64 | 10.35 | 55.11 | 6.61 | 14.34 | 8.70 | 80.96 | 58.92 | 7.58 | 7.96 | 10.11 | 2.08 | 2.08 | 2.48 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
74 | 24 | 0 | 67 | older | Male | low | 2 | Yes | NA | BTT | HMII | Died | dead | 129980 | 41600 | 32.00 | 91.40 | 39.03 | 2.85 | 49.63 | 50.37 | 7.02 | 11.55 | 28.37 | 29.11 | 20.79 | 21.72 | 19.43 | 28.34 | 9.80 | 69.59 | 4.90 | 20.33 | 6.13 | 31.15 | 33.60 | 20.15 | 22.27 | 0.28 | 4.25 | 16.54 | 2.09 | 33.99 | 28.59 | 16.040 | 25.430 | 12.01 | 7.920 | 6.660 | 3.530 | 19.960 | 3.020 | 7.39 | 10.910 | 3.870 | 5.620 | 7.350 | 29.050 | 11.190 | 6.77 | 80.92 | 26.34 | 485.00 | 156.000 | 684.00 | 574 | 531 | 28.71 | 233.00 | 9.210 | 37.430 | 28.250 | 15.220 | 112.000 | 158.000 | 41.01 | 59.87 | 50.92 | 139.00 | 4188.00 |
75 | 24 | 1 | 67 | older | Male | low | 2 | Yes | NA | BTT | HMII | Died | dead | 59478 | 20182 | 33.93 | 89.07 | 44.50 | 10.08 | 60.93 | 39.07 | 2.10 | 2.70 | 42.88 | 13.69 | 17.66 | 25.77 | 13.06 | 46.12 | 3.13 | 81.35 | 1.16 | 16.11 | 0.83 | 37.58 | 6.12 | 5.52 | 11.64 | 0.06 | 1.49 | 2.76 | 4.07 | 4.02 | 3.20 | 2.320 | 19.970 | 2.65 | 2.810 | 2.640 | 2.960 | 405.000 | 1.500 | 2.63 | 2.130 | 0.460 | 0.450 | 0.860 | 99.660 | 13.000 | 2.78 | 12.80 | 206.00 | 266.00 | 84.610 | 329.00 | 197 | 841 | 3.21 | 39.72 | 8.990 | 27.180 | 6.360 | 2.830 | 565.000 | 23.210 | 11.10 | 10.23 | 1.22 | 38.63 | 1588.00 |
76 | 24 | 3 | 67 | older | Male | low | 2 | Yes | NA | BTT | HMII | Died | dead | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 6.69 | 9.68 | 5.520 | 72.480 | 2.65 | 2.810 | 2.640 | 2.960 | 12.830 | 1.500 | 3.81 | 3.490 | 3.700 | 1.140 | 1.870 | 30.080 | 8.600 | 3.57 | 26.36 | 120.00 | 339.00 | 166.000 | 633.00 | 484 | 808 | 12.17 | 90.21 | 79.330 | 79.230 | 12.440 | 4.520 | 64.780 | 75.100 | 48.83 | 38.04 | 18.56 | 55.88 | 3892.00 |
77 | 24 | 5 | 67 | older | Male | low | 2 | Yes | NA | BTT | HMII | Died | dead | 26646 | 9754 | 36.61 | 98.69 | 58.32 | 7.57 | 64.88 | 35.12 | 2.06 | 0.55 | 46.50 | 12.62 | 17.70 | 23.18 | 15.07 | 53.31 | 12.50 | 83.40 | 1.10 | 15.64 | 1.76 | 28.12 | 0.00 | 7.54 | 16.46 | 0.55 | 1.92 | 6.04 | 13.00 | 0.58 | 3.20 | 3.220 | 34.140 | 2.65 | 2.810 | 2.640 | 2.960 | 39.370 | 1.500 | 2.63 | 2.930 | 0.420 | 0.020 | 0.540 | 66.160 | 8.470 | 3.38 | 5.65 | 51.46 | 66.05 | 106.000 | 497.00 | 1069 | 1138 | 2.90 | 29.91 | 6.510 | 29.470 | 5.480 | 1.550 | 51.690 | 2.870 | 3.21 | 8.86 | 43.82 | 41.52 | 535.00 |
78 | 24 | 8 | 67 | older | Male | low | 2 | Yes | NA | BTT | HMII | Died | dead | 73641 | 21944 | 29.80 | 96.79 | 48.91 | 4.47 | 62.74 | 37.26 | 2.84 | 3.16 | 37.47 | 17.79 | 24.95 | 19.79 | 19.46 | 38.11 | 9.46 | 79.79 | 1.89 | 13.58 | 1.24 | 27.05 | 20.00 | 14.11 | 13.37 | 0.21 | 2.74 | 10.53 | 3.31 | 2.44 | 4.08 | 4.340 | 49.370 | 2.65 | 2.810 | 2.640 | 2.960 | 25.260 | 1.500 | 2.63 | 6.360 | 0.420 | 0.100 | 0.770 | 74.530 | 10.920 | 5.20 | 8.37 | 91.97 | 73.49 | 135.000 | 493.00 | 1207 | 1273 | 2.90 | 49.55 | 17.980 | 28.710 | 7.270 | 2.560 | 35.160 | 14.190 | 3.93 | 8.86 | 52.09 | 35.74 | 551.00 |
79 | 25 | 0 | 68 | older | Male | low | 2 | No | No | BTT | HMII | Alive s/p OHT | alive | 44004 | 20612 | 46.84 | 43.65 | 15.61 | 21.54 | 49.64 | 50.36 | 10.37 | 0.57 | 15.94 | 45.15 | 33.18 | 5.73 | 24.69 | 5.68 | 20.25 | 44.58 | 1.55 | 36.17 | 0.88 | 67.23 | 27.27 | 32.35 | 15.48 | 20.02 | 4.49 | 10.94 | 2.76 | 71.72 | 47.35 | 26.349 | 37.381 | 158.00 | 33.334 | 10.660 | 8.044 | 35.402 | 46.417 | 6.87 | NA | 10.690 | 8.792 | 2.398 | 99.342 | 9.045 | 6.48 | 97.08 | 46.45 | 297.00 | 181.000 | 191.00 | 567 | 222 | 49.74 | 80.75 | 6.059 | 37.993 | 25.593 | 20.817 | 174.000 | 399.000 | 44.78 | 92.77 | 41.52 | NA | 4980.00 |
80 | 25 | 1 | 68 | older | Male | low | 2 | No | No | BTT | HMII | Alive s/p OHT | alive | 99731 | 23424 | 23.49 | 91.81 | 41.33 | 10.89 | 35.24 | 64.76 | 11.83 | 1.62 | 18.71 | 59.21 | 16.19 | 5.89 | 28.16 | 5.89 | 18.53 | 39.98 | 4.66 | 42.16 | 2.33 | 84.07 | 2.63 | 22.55 | 15.21 | 40.28 | 6.07 | 9.70 | 3.96 | 29.43 | 17.11 | 20.632 | 25.281 | 48.50 | 22.252 | 5.900 | 4.692 | 222.000 | 11.168 | 3.91 | 72.616 | 4.422 | 2.060 | 2.360 | 191.000 | 11.918 | 7.37 | 68.02 | 138.00 | 324.00 | 136.000 | 149.00 | 347 | 223 | 30.17 | 80.75 | 4.036 | 30.061 | 12.370 | 7.619 | 280.000 | 331.000 | 21.43 | 70.73 | 2.56 | 274.00 | 3581.00 |
81 | 25 | 3 | 68 | older | Male | low | 2 | No | No | BTT | HMII | Alive s/p OHT | alive | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 74.26 | 46.69 | 17.521 | 32.607 | 125.00 | 34.355 | 9.340 | 7.512 | 18.328 | 13.879 | 4.56 | 190.000 | 13.031 | 14.904 | 2.360 | 35.125 | 11.629 | 8.85 | 37.42 | 35.14 | 218.00 | 222.000 | 173.00 | 1649 | 290 | 71.92 | 85.48 | 3.557 | 52.272 | 44.557 | 15.485 | 186.000 | 514.000 | 30.19 | 168.00 | 48.69 | 743.00 | 1283.00 |
82 | 25 | 5 | 68 | older | Male | low | 2 | No | No | BTT | HMII | Alive s/p OHT | alive | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 63.06 | 27.96 | 35.932 | 31.732 | 44.55 | 16.008 | 3.051 | 5.621 | 18.791 | 10.391 | 5.03 | 152.000 | 11.673 | 14.663 | 1.980 | 35.584 | 10.919 | 6.56 | 45.46 | 42.92 | 420.00 | 180.000 | 216.00 | 2058 | 291 | 95.02 | 121.00 | 5.314 | 63.342 | 43.034 | 23.444 | 164.000 | 411.000 | 28.75 | 257.00 | 28.67 | 330.00 | 1677.00 |
83 | 25 | 8 | 68 | older | Male | low | 2 | No | No | BTT | HMII | Alive s/p OHT | alive | 129637 | 50001 | 38.57 | 90.65 | 44.41 | 6.05 | 30.66 | 69.34 | 17.12 | 4.05 | 10.62 | 66.50 | 19.60 | 3.28 | 26.41 | 3.46 | 13.37 | 39.74 | 7.15 | 39.49 | 11.91 | 71.97 | 2.70 | 32.48 | 33.14 | 43.91 | 7.81 | 22.70 | 3.82 | 40.52 | 23.75 | 22.842 | 21.835 | 74.36 | 13.123 | 5.021 | 5.931 | 27.077 | 9.272 | 4.67 | 134.000 | 12.603 | 9.710 | 2.360 | 53.765 | 8.759 | 6.48 | 60.77 | 35.38 | 426.00 | 223.000 | 224.00 | 1195 | 211 | 57.75 | 93.20 | 3.857 | 32.945 | 29.201 | 15.485 | 185.000 | 523.000 | 35.17 | 121.00 | 27.51 | 602.00 | 4088.00 |
84 | 25 | 14 | 68 | older | Male | low | 2 | No | No | BTT | HMII | Alive s/p OHT | alive | 134368 | 46363 | 34.50 | 88.32 | 34.25 | 4.63 | 32.47 | 67.53 | 12.86 | 8.38 | 8.91 | 64.89 | 22.88 | 3.32 | 24.78 | 3.89 | 13.58 | 36.16 | 6.01 | 40.33 | 13.77 | 72.11 | 1.89 | 29.89 | 26.36 | 42.80 | 6.17 | 15.97 | 3.29 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
85 | 27 | 0 | 64 | older | Male | low | 2 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 59881 | 8971 | 14.98 | 97.40 | 50.06 | 9.57 | 75.84 | 24.16 | 3.59 | 8.13 | 64.83 | 13.40 | 15.67 | 6.10 | 19.31 | 18.81 | 16.83 | 76.67 | 6.10 | 6.82 | 2.00 | 88.16 | 47.06 | 10.53 | 11.24 | 10.41 | 9.93 | 6.94 | 11.93 | 16.38 | 67.35 | 180.000 | 62.930 | 127.00 | 2.970 | 36.468 | 4.794 | 25.690 | 5.645 | 46.84 | 139.000 | 1.295 | 17.624 | 2.360 | 148.000 | 9.904 | 9.46 | 143.00 | 64.82 | 261.00 | 507.000 | 809.00 | 891 | 476 | 76.81 | 136.00 | 18.740 | 113.000 | 98.896 | 20.817 | 358.000 | 925.000 | 91.47 | 168.00 | 123.00 | 653.00 | 761.00 |
86 | 27 | 1 | 64 | older | Male | low | 2 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 60193 | 23874 | 39.66 | 96.72 | 58.83 | 16.24 | 80.37 | 19.63 | 1.87 | 3.31 | 68.58 | 10.62 | 14.72 | 6.08 | 21.33 | 22.83 | 3.80 | 80.61 | 3.63 | 8.03 | 0.33 | 94.16 | 57.26 | 2.96 | 5.01 | 10.19 | 4.72 | 1.41 | 1.24 | 3.57 | 32.49 | 145.000 | 59.668 | 35.43 | 2.970 | 12.151 | 4.287 | 29.390 | 5.645 | 54.69 | 26.852 | 0.940 | 6.660 | 2.360 | 142.000 | 12.494 | 6.13 | 91.76 | 118.00 | 294.00 | 354.000 | 659.00 | 811 | 759 | 35.98 | 83.92 | 12.544 | 90.832 | 44.557 | 39.375 | 223.000 | 830.000 | 67.87 | 147.00 | 58.83 | 260.00 | 528.00 |
87 | 27 | 3 | 64 | older | Male | low | 2 | No | Yes | BTT | HMII | Alive s/p OHT | alive | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 8.66 | 39.21 | 135.000 | 67.453 | 61.20 | 3.273 | 20.290 | 5.826 | 23.842 | 5.819 | 45.26 | 64.203 | 1.569 | 9.863 | 3.090 | 66.315 | 10.766 | 5.31 | 155.00 | 68.00 | 355.00 | 420.000 | 945.00 | 1063 | 603 | 56.22 | 136.00 | 16.032 | 94.647 | 49.105 | 19.468 | 230.000 | 804.000 | 72.71 | 206.00 | 83.10 | 435.00 | 814.00 |
88 | 27 | 5 | 64 | older | Male | low | 2 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 135335 | 27834 | 20.57 | 97.35 | 44.75 | 5.61 | 63.22 | 36.78 | 8.49 | 17.63 | 39.01 | 23.16 | 30.72 | 7.11 | 17.53 | 10.38 | 12.16 | 42.70 | 4.93 | 19.28 | 4.68 | 67.37 | 4.10 | 26.64 | 17.76 | 19.21 | 14.54 | 14.47 | 10.60 | 2.18 | 38.51 | 215.000 | 76.341 | 16.50 | 2.320 | 10.862 | 2.224 | 8.932 | 1.520 | 53.96 | 36.506 | 1.920 | 7.437 | 1.980 | 105.000 | 8.874 | 7.63 | 77.70 | 68.16 | 389.00 | 204.000 | 723.00 | 1321 | 487 | 50.26 | 160.00 | 12.674 | 125.000 | 27.485 | 45.764 | 177.000 | 710.000 | 55.82 | 360.00 | 90.56 | 239.00 | 351.00 |
89 | 27 | 8 | 64 | older | Male | low | 2 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 247113 | 62042 | 25.11 | 96.41 | 43.93 | 14.82 | 78.42 | 21.58 | 2.52 | 5.24 | 65.35 | 12.22 | 17.53 | 4.90 | 20.39 | 17.20 | 2.93 | 77.86 | 2.11 | 8.78 | 2.94 | 84.64 | 9.70 | 10.64 | 13.93 | 9.90 | 11.59 | 8.48 | 3.51 | 22.57 | 29.97 | 91.301 | 58.481 | 24.03 | 7.004 | 8.899 | 5.515 | 27.077 | 7.972 | 25.93 | 37.523 | 2.650 | 3.138 | 5.142 | 70.641 | 12.783 | 7.59 | 94.97 | 56.14 | 551.00 | 288.000 | 717.00 | 1003 | 373 | 39.51 | 130.00 | 9.800 | 75.273 | 27.655 | 7.838 | 145.000 | 524.000 | 52.18 | 137.00 | 41.89 | 251.00 | 338.00 |
90 | 27 | 14 | 64 | older | Male | low | 2 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 142053 | 56983 | 40.11 | 93.01 | 62.72 | 12.87 | 85.10 | 14.90 | 0.69 | 1.64 | 68.02 | 8.40 | 21.03 | 2.55 | 17.03 | 13.68 | 1.08 | 83.33 | 0.37 | 7.38 | 0.26 | 79.00 | 16.07 | 3.01 | 5.85 | 5.16 | 5.24 | 1.77 | 0.70 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
91 | 27 | 21 | 64 | older | Male | low | 2 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 60384 | 17029 | 28.20 | 93.65 | 40.96 | 21.36 | 83.80 | 16.20 | 1.47 | 2.32 | 63.52 | 9.69 | 23.80 | 2.99 | 23.55 | 15.58 | 0.91 | 78.16 | 1.09 | 8.13 | 1.00 | 83.65 | 17.72 | 4.70 | 8.42 | 5.99 | 7.22 | 3.76 | 1.56 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
92 | 28 | 0 | 25 | younger | Female | high | 3 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 47645 | 37377 | 78.45 | 94.61 | 2.47 | 9.41 | 78.56 | 17.02 | 1.71 | 4.63 | 34.94 | 16.09 | 44.77 | 4.21 | 4.35 | 28.99 | 59.42 | 67.26 | 3.10 | 26.22 | 7.50 | 72.82 | 53.90 | 13.50 | 28.20 | 3.04 | 7.70 | 7.67 | 0.96 | 9.61 | 35.14 | 22.350 | 20.460 | 3.79 | 22.660 | 3.480 | 3.530 | 9.020 | 3.210 | 9.75 | 7.060 | 1.210 | 1.550 | 0.770 | 20.320 | 2.980 | 2.78 | 20.67 | 13.18 | 290.00 | 37.840 | 754.00 | 653 | 382 | 20.62 | 170.00 | 9.210 | 42.210 | 9.160 | 3.660 | 54.980 | 131.000 | 33.28 | 78.76 | 74.92 | 178.00 | 1807.00 |
93 | 28 | 1 | 25 | younger | Female | high | 3 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 87452 | 43025 | 49.20 | 91.54 | 1.98 | 26.71 | 92.06 | 6.76 | 0.77 | 4.67 | 47.21 | 4.70 | 45.17 | 2.92 | 6.06 | 18.18 | 60.61 | 81.01 | 3.95 | 14.10 | 12.04 | 85.97 | 79.84 | 5.82 | 14.15 | 1.11 | 4.77 | 2.84 | 0.00 | 12.71 | 13.67 | 11.390 | 16.950 | 2.77 | 3.020 | 2.690 | 2.960 | 29.730 | 1.790 | 5.89 | 3.490 | 1.610 | 2.220 | 2.640 | 103.000 | 6.370 | 5.67 | 25.55 | 37.67 | 369.00 | 23.230 | 830.00 | 341 | 373 | 18.73 | 111.00 | 6.740 | 23.260 | 13.120 | 5.700 | 76.070 | 128.000 | 32.15 | 77.14 | 17.37 | 97.61 | 3031.00 |
94 | 28 | 3 | 25 | younger | Female | high | 3 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 124056 | 80873 | 65.19 | 95.41 | 0.37 | 14.36 | 90.47 | 5.98 | 0.39 | 0.60 | 41.84 | 4.26 | 51.08 | 2.81 | 18.82 | 35.29 | 43.53 | 86.97 | 0.10 | 11.32 | 1.10 | 75.49 | 12.12 | 3.80 | 14.94 | 0.24 | 0.88 | 3.25 | 0.00 | 37.44 | 26.01 | 28.120 | 25.360 | 9.28 | 13.970 | 5.470 | 5.150 | 38.770 | 3.780 | 11.03 | 16.650 | 3.350 | 5.760 | 5.140 | 32.780 | 7.800 | 5.95 | 60.09 | 24.86 | 338.00 | 39.760 | 682.00 | 2208 | 349 | 27.24 | 174.00 | 11.700 | 30.960 | 38.010 | 10.120 | 76.070 | 213.000 | 35.85 | 86.63 | 43.82 | 185.00 | 2088.00 |
95 | 28 | 5 | 25 | younger | Female | high | 3 | No | Yes | BTT | HMII | Alive s/p OHT | alive | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 27.69 | 16.65 | 26.730 | 24.380 | 9.95 | 7.920 | 2.820 | 4.000 | 58.110 | 1.790 | 8.23 | 7.760 | 1.750 | 3.200 | 3.390 | 44.050 | 4.860 | 3.77 | 51.92 | 25.90 | 506.00 | 38.490 | 451.00 | 1325 | 306 | 19.69 | 141.00 | 6.280 | 18.330 | 27.170 | 7.470 | 68.020 | 184.000 | 35.13 | 89.68 | 25.77 | 160.00 | 2691.00 |
96 | 28 | 8 | 25 | younger | Female | high | 3 | No | Yes | BTT | HMII | Alive s/p OHT | alive | 87840 | 57990 | 66.02 | 95.60 | 0.11 | 15.80 | 89.00 | 9.49 | 1.56 | 5.02 | 45.89 | 7.18 | 43.54 | 3.39 | 6.10 | 19.51 | 56.71 | 84.23 | 3.14 | 9.95 | 10.70 | 72.13 | 52.73 | 7.06 | 17.53 | 0.74 | 3.13 | 5.13 | 0.13 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
97 | 30 | 0 | 49 | younger | Male | high | 3 | No | NA | DT | HMII | Alive | alive | 196315 | 122053 | 62.17 | 95.37 | 60.66 | 22.66 | 91.10 | 8.90 | 0.45 | 4.95 | 85.57 | 6.30 | 5.42 | 2.71 | 13.13 | 28.32 | 20.05 | 86.32 | 2.45 | 5.42 | 0.96 | 98.68 | 94.19 | 2.50 | 2.96 | 4.63 | 1.24 | 0.33 | 0.89 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
98 | 30 | 1 | 49 | younger | Male | high | 3 | No | NA | DT | HMII | Alive | alive | 91909 | 37622 | 40.93 | 96.10 | 43.22 | 38.85 | 95.48 | 4.52 | 0.14 | 2.19 | 85.07 | 3.09 | 10.33 | 1.51 | 21.03 | 27.23 | 9.08 | 88.84 | 1.13 | 3.91 | 0.23 | 98.77 | 88.27 | 1.16 | 1.16 | 2.34 | 0.38 | 0.21 | 0.45 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
99 | 30 | 5 | 49 | younger | Male | high | 3 | No | NA | DT | HMII | Alive | alive | 153762 | 86281 | 56.11 | 95.83 | 65.54 | 24.24 | 91.12 | 8.88 | 0.65 | 2.84 | 81.43 | 6.30 | 9.62 | 2.65 | 21.14 | 28.73 | 15.89 | 83.00 | 1.97 | 6.74 | 0.36 | 98.22 | 93.16 | 3.20 | 2.29 | 5.47 | 1.11 | 0.77 | 1.56 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
100 | 30 | 8 | 49 | younger | Male | high | 3 | No | NA | DT | HMII | Alive | alive | 82406 | 47485 | 57.62 | 92.71 | 65.75 | 17.46 | 91.79 | 8.21 | 1.08 | 1.99 | 76.35 | 5.70 | 15.41 | 2.54 | 20.56 | 26.95 | 11.99 | 78.67 | 1.35 | 7.97 | 0.28 | 97.55 | 85.62 | 2.65 | 2.56 | 5.19 | 1.18 | 0.86 | 1.79 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
101 | 32 | 0 | 72 | older | Male | high | 4 | Yes | NA | BTT | HMII | Died | dead | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 2.77 | 2.98 | 33.241 | 14.342 | 3.42 | 2.970 | 0.420 | 0.853 | 3.452 | 2.290 | 13.82 | 3.190 | 0.940 | 0.850 | 2.360 | 50.340 | 2.770 | 5.07 | 17.40 | 64.31 | 653.00 | 26.894 | 241.00 | 316 | 496 | 12.21 | 15.96 | 3.050 | 12.001 | 8.034 | 2.282 | 17.749 | 119.000 | 3.85 | 236.00 | 0.92 | 44.32 | 1793.00 |
102 | 32 | 1 | 72 | older | Male | high | 4 | Yes | NA | BTT | HMII | Died | dead | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 2.77 | 24.67 | 100.000 | 10.761 | 20.24 | 2.970 | 8.281 | 0.853 | 136.000 | 3.964 | 19.25 | 3.688 | 0.940 | 1.090 | 2.360 | 130.000 | 11.629 | 6.13 | 45.48 | 139.00 | 541.00 | 88.075 | 437.00 | 264 | 768 | 20.97 | 77.56 | 5.231 | 40.568 | 66.481 | 1.717 | 408.000 | 245.000 | 55.44 | 141.00 | 16.95 | 74.91 | 10443.75 |
103 | 32 | 3 | 72 | older | Male | high | 4 | Yes | NA | BTT | HMII | Died | dead | 424375 | 21971 | 5.18 | 71.78 | 56.98 | 18.53 | 79.84 | 20.16 | 3.08 | 0.51 | 57.91 | 14.07 | 24.06 | 3.97 | 31.74 | 15.95 | 13.65 | 57.94 | 0.65 | 28.51 | 0.17 | 93.57 | 53.33 | 2.87 | 9.69 | 15.61 | 3.87 | 2.16 | 3.99 | 2.18 | 6.65 | 125.000 | 14.770 | 4.61 | 2.320 | 14.644 | 1.590 | 22.499 | 1.520 | 18.98 | 2.120 | 1.920 | 1.450 | 1.980 | 72.656 | 11.749 | 1.99 | 23.32 | 48.13 | 195.00 | 286.000 | 323.00 | 579 | 874 | 10.05 | 63.62 | 2.448 | 45.479 | 16.356 | 0.944 | 52.863 | 60.307 | 4.34 | 61.08 | 0.39 | 52.69 | 813.00 |
104 | 32 | 5 | 72 | older | Male | high | 4 | Yes | NA | BTT | HMII | Died | dead | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 2.77 | 10.24 | 45.698 | 19.436 | 2.80 | 2.970 | 13.723 | 0.458 | 31.010 | 2.290 | 9.91 | 3.190 | 0.940 | 0.850 | 2.360 | 109.000 | 9.904 | 3.42 | 31.87 | 57.12 | 177.00 | 35.314 | 337.00 | 361 | 834 | 30.99 | 61.08 | 3.916 | 39.476 | 11.877 | 2.878 | 32.504 | 142.000 | 2.92 | 154.00 | 0.92 | 69.60 | 1160.00 |
105 | 32 | 8 | 72 | older | Male | high | 4 | Yes | NA | BTT | HMII | Died | dead | 177249 | 103442 | 58.36 | 76.40 | 15.43 | 5.64 | 65.13 | 34.87 | 5.21 | 0.20 | 35.56 | 27.91 | 31.90 | 4.62 | 26.60 | 8.28 | 13.24 | 67.89 | 0.29 | 20.13 | 0.00 | 78.60 | 22.22 | 5.50 | 16.09 | 25.56 | 6.80 | 4.73 | 0.89 | 2.18 | 2.98 | 74.914 | 45.496 | 2.31 | 2.320 | 4.146 | 1.590 | 63.920 | 1.520 | 21.62 | 2.120 | 20.861 | 1.450 | 1.980 | 773.000 | 19.378 | 33.60 | 45.46 | 368.00 | 630.00 | 220.000 | 265.00 | 523 | 1437 | 110.00 | 102.00 | 4.899 | 63.342 | 35.967 | 3.045 | 101.000 | 80.459 | 15.43 | 193.00 | 0.39 | 234.00 | 2752.00 |
For each pair of categories, we tested statistical independence using Fisher’s exact test, and ranked the results by \(p\)-value.
# make sure column names are valid R variables before fitting
df.HMII.valid <- df.HMII
colnames(df.HMII.valid) <- make.names(colnames(df.HMII), unique = T)
# get one value per patient
df.HMII.factors <- df.HMII.valid[match(levels(df.HMII.valid$PatientID), df.HMII.valid$PatientID),]
# compute all pairwise contingency tables
factorpairs <- as.list(as.data.frame(combn(groups, 2)))
tables <- lapply(factorpairs, function(this_pair){
table(df.HMII.factors[, as.character(this_pair[1])], df.HMII.factors[, as.character(this_pair[2])])
})
# compute all Fisher exact tests
fishertests <- lapply(tables, function(this_table) fisher.test(this_table))
fisher.p <- lapply(fishertests, function(x) x$p)
fisher.q <- as.list(p.adjust(fisher.p, method = "BH"))
fisher.OR <- lapply(fishertests, function(x) x$estimate)
fisher.CI <- lapply(fishertests, function(x) x$conf.int)
# error check
fisher.p[is.null(fisher.p)] <- NA
fisher.OR[is.null(fisher.OR)] <- NA
fisher.CI[is.null(fisher.CI)] <- c(NA, NA)
# collect results
fisher.all <- data.frame(
factorA = unlist(lapply(factorpairs, function(x) as.character(x[1]))),
factorB = unlist(lapply(factorpairs, function(x) as.character(x[2]))),
OddsRatio = unlist(fisher.OR),
lowerCL = do.call(rbind, fisher.CI)[,1],
upperCL = do.call(rbind, fisher.CI)[,2],
pvalue = unlist(fisher.p),
qvalue = unlist(fisher.q),
stars = unlist(lapply(unlist(fisher.p), p2stars)))
qtable <- fisher.all
qtable[,-c(1,2,8)] <- signif(fisher.all[,-c(1,2,8)], 3)
qtable.ordered <- qtable[order(qtable$pvalue),]
qtable.ordered %>%
kable(escape = F, row.names = F, caption = "Table 2: Categorical associations") %>%
kable_styling(bootstrap_options = c("striped",
"hover",
"condensed",
"responsive"),
font_size = 12)
factorA | factorB | OddsRatio | lowerCL | upperCL | pvalue | qvalue | stars |
---|---|---|---|---|---|---|---|
AgeGreater60 | LowIntermacs | 7.8800 | 0.83500 | 124.00 | 0.0648 | 0.81 | .. |
RVAD | Survival | 5.3700 | 0.41900 | 94.60 | 0.1310 | 0.81 | . |
Sex | Sensitized | 0.0971 | 0.00107 | 2.49 | 0.1900 | 0.81 | . |
RVAD | Sensitized | 0.0000 | 0.00000 | 3.41 | 0.2000 | 0.81 | . |
RVAD | VAD.Indication | 0.0000 | 0.00000 | 2.39 | 0.2600 | 0.81 | . |
AgeGreater60 | Survival | 4.6300 | 0.36900 | 269.00 | 0.3250 | 0.81 | . |
LowIntermacs | Survival | 0.2970 | 0.01990 | 2.96 | 0.3360 | 0.81 | . |
AgeGreater60 | Sex | 2.8300 | 0.24000 | 44.70 | 0.3470 | 0.81 | . |
AgeGreater60 | RVAD | 0.3540 | 0.02240 | 4.17 | 0.3470 | 0.81 | . |
Sex | LowIntermacs | 2.1600 | 0.18600 | 33.40 | 0.6170 | 1.00 | . |
LowIntermacs | RVAD | 0.4630 | 0.02990 | 5.39 | 0.6170 | 1.00 | . |
AgeGreater60 | Sensitized | 1.8600 | 0.07690 | 49.00 | 1.0000 | 1.00 | . |
AgeGreater60 | VAD.Indication | 1.4700 | 0.14600 | 21.50 | 1.0000 | 1.00 | . |
Sex | RVAD | 1.4300 | 0.09300 | 89.20 | 1.0000 | 1.00 | . |
Sex | VAD.Indication | 1.9400 | 0.13500 | 118.00 | 1.0000 | 1.00 | . |
Sex | Survival | 1.9400 | 0.13500 | 118.00 | 1.0000 | 1.00 | . |
LowIntermacs | Sensitized | 1.0000 | 0.04220 | 23.70 | 1.0000 | 1.00 | . |
LowIntermacs | VAD.Indication | 0.7610 | 0.07280 | 7.87 | 1.0000 | 1.00 | . |
Sensitized | VAD.Indication | 0.0000 | 0.00000 | Inf | 1.0000 | 1.00 | . |
Sensitized | Survival | 0.0000 | 0.00000 | 58.40 | 1.0000 | 1.00 | . |
VAD.Indication | Survival | 1.2400 | 0.08080 | 13.80 | 1.0000 | 1.00 | . |
We plotted the conditional distributions for each pair of categorical labels, using the GGally
package.
ggpairs(df.HMII.valid, columns = groups) + ggplot2::theme_grey(base_size = 7)
Figure 1: Conditional distributions
We identified statistical associations in the longitudinal data using a linear mixed effect model implemented in the lmerTest
package, which builds upon the commonly used lme4
package. We specifically used a random intercept model, of the form
lmer(y ~ Group + Time + Group:Time + (1|PatientID))
,
where y
is a biomarker, Group
and Time
are both factor variables, Group:Time
denotes their interaction, and the (1|PatientID)
term specifies a random intercept for each patient to account for the repeated measures. There are therefore 3 hypotheses being tested – one for each of the terms in this model. Namely, the first tests the equivalence of means across group levels, the second tests the equivalence of means across timepoints, and the third tests that the effect between group levels changes in time.
In implementing the proper contrasts and statistical tests in R, we followed the recommendations here and here, by using the zero-sum contrast contr.sum
, and conducting tests based on the type-III sums of squares by using the Anova(..., type="III")
function in the car
package. Type-III sums of squares test a main effect after the other main effect and interaction. The significance estimates are therefore valid in the presence of significant interactions.
# make sure column names are valid R variables before fitting
df.HMII.valid <- df.HMII
colnames(df.HMII.valid) <- make.names(colnames(df.HMII), unique = T)
# function to fit a two-way repeated measures anova
anova.fit <- function(this_group, this_variable, this_df){
this_df$Time <- as.factor(this_df$Time)
this_formula <- as.formula(paste0(this_variable, " ~ ", this_group, " * Time + (1|PatientID)"))
# set contrasts
contrasts(this_df[[this_group]]) <- contr.sum
contrasts(this_df$Time) <- contr.sum
# fit model
this_model <- lmer(this_formula, data = this_df)
return(list(model = this_model, group = this_group, variable = this_variable))
}
# function to get stats on the model fit
get.anovatable <- function(anova.fit.obj){
# unpack
this_model <- anova.fit.obj$model
this_variable <- anova.fit.obj$variable
this_group <- anova.fit.obj$group
# compute p-values
this_aov <- as.data.frame(Anova(this_model, type="III"))[-1,]
# annotate with additional variables
this_aov$parameter <- rownames(this_aov)
this_aov$variable <- rep(this_variable, nrow(this_aov))
this_aov$group <- rep(this_group, nrow(this_aov))
return(this_aov)
}
# create the list of variable ~ group comparisons to run mclapply over
groups.by.vars <- unlist(lapply(make.names(groups, unique = T), function(this_group){
lapply(make.names(colnames(df.HMII[,bcellcyto]), unique = T), function(this_variable){
list(group = this_group, variable = this_variable)
})
}), recursive = F)
# fit all models in parallel
models.HMII <- mclapply(groups.by.vars, function(this_e){
anova.fit(this_e$group, this_e$variable, df.HMII.valid)
}, mc.cores = detectCores()-1)
# compute statistics in parallel
anovatable.0 <- mclapply(models.HMII, function(this_model_obj){
get.anovatable(this_model_obj)
}, mc.cores = detectCores()-1)
# include original variable names and add an index for splitting on later
anovatable <- lapply(1:length(anovatable.0), function(ii){
this_table <- anovatable.0[[ii]]
name.ix <- match(unique(this_table$variable), colnames(df.HMII.valid))
this_table$variable.valid <- this_table$variable
this_table$variable <- rep(colnames(df.HMII)[name.ix], nrow(this_table))
this_table$testid <- rep(ii, nrow(this_table))
this_table
})
In all, there were 469 models fit, each with 3 terms, for a total of 1407 hypotheses tested. We estimated local false discovery rates and \(q\)-values using the fdrtool
package, which alsp produced three figures illustrating the mixture model of the \(p\)-value distribution and the local false discovery rate.
# compute fdr
models <- as.data.frame(do.call(rbind, anovatable))
fdrobj <- fdrtool(models$`Pr(>Chisq)`, statistic = "pvalue", verbose = F)
Figure 2: Local false discovery rate
models$qval <- fdrobj$qval
models$lfdr <- fdrobj$lfdr
anovatable.fdr <- split(models, models$testid)
We ranked the discoveries by \(p\)-value, and reported all results with \(q<\) 0.1 as statistically significant.
# collect pvalues and qvalues into matrix
models.fdr <- do.call(rbind, anovatable.fdr)
qmat <- dcast(models.fdr, group+parameter~variable, value.var = "qval")
pmat <- dcast(models.fdr, group+parameter~variable, value.var = "Pr(>Chisq)")
lfdrmat <- dcast(models.fdr, group+parameter~variable, value.var = "lfdr")
# find significant results and mark with text qvalue
qmask <- signif(qmat[,-c(1,2)], 2)
qmask[qmat[,-c(1,2)] > FDRcutoff] <- ""
keep.signif <- apply(t(qmask), 1, function(x) !all(x == ""))
#
# # create heatmap of results
# pheatmap(-log10(t(qmat[,-c(1,2)])[keep.signif,c(3,1,2,4:nrow(pmat))]),
# color = colorRampPalette(brewer.pal(n = 9, name = "Greens"))(4),
# breaks = c(seq(0, -log10(0.1), length.out = 2),
# seq(-log10(0.1)+0.001, max(-log10(t(qmat[,-c(1,2)])[keep.signif,])), length.out = 2)),
# labels_col = pmat$parameter[c(3,1,2,4:nrow(pmat))],
# display_numbers = t(qmask)[keep.signif,c(3,1,2,4:nrow(pmat))],
# number_color = "white",
# fontsize_number = 6,
# cluster_cols = F,
# cluster_rows = F,
# gaps_col = seq(3, nrow(pmat), by = 3),
# border_color = NA,
# legend = F,
# main = paste0("ANOVA results (FDR=", FDRcutoff, ")"))
# gather significant results into a table
resulttable <- do.call(rbind, apply(which(qmask != "", arr.ind = T), 1, function(x){
data.frame(biomarker = colnames(qmat)[-c(1,2)][x[2]],
group = qmat$group[x[1]],
parameter = qmat$parameter[x[1]],
pvalue = pmat[,-c(1,2)][x[1], x[2]],
qvalue = qmat[,-c(1,2)][x[1], x[2]],
lfdr = lfdrmat[,-c(1,2)][x[1], x[2]],
stars = p2stars(pmat[,-c(1,2)][x[1], x[2]]))
}))
resulttable.sort <- resulttable[order(resulttable$pvalue), , drop = F]
resulttable.sort[,c("pvalue","qvalue")] <- signif(resulttable.sort[,c("pvalue","qvalue")], 3)
rownames(resulttable.sort) <- 1:nrow(resulttable.sort)
resulttable.sort %>%
# mutate(
# pvalue = cell_spec(pvalue, color = ifelse(resulttable.sort$pvalue > pcutoff, "grey", "green")),
# qvalue = cell_spec(qvalue, color = ifelse(resulttable.sort$qvalue > FDRcutoff, "grey", "green"))
# ) %>%
kable(escape = F, row.names = T, caption = "Table 3: Statistically significant results") %>%
kable_styling(bootstrap_options = c("striped",
"hover",
"condensed",
"responsive"),
font_size = 10) %>%
scroll_box(width = "100%")
biomarker | group | parameter | pvalue | qvalue | lfdr | stars | |
---|---|---|---|---|---|---|---|
1 | MCP-1 | VAD.Indication | VAD.Indication:Time | 1.00e-07 | 0.000112 | 0.0001117 | .**** |
2 | G-CSF | RVAD | Time | 2.00e-07 | 0.000112 | 0.0001117 | .**** |
3 | MCP-1 | VAD.Indication | Time | 3.00e-07 | 0.000112 | 0.0004958 | .**** |
4 | CD27+IgD-IgM+ switched memory | Sensitized | Time | 7.00e-07 | 0.000208 | 0.0118223 | .**** |
5 | num lymph | AgeGreater60 | AgeGreater60 | 1.02e-05 | 0.002530 | 0.0561648 | .**** |
6 | IL-8 | RVAD | Time | 1.00e-04 | 0.017700 | 0.0561648 | .*** |
7 | G-CSF | RVAD | RVAD:Time | 1.01e-04 | 0.017900 | 0.0655772 | .*** |
8 | IP-10 | VAD.Indication | VAD.Indication:Time | 1.54e-04 | 0.023800 | 0.1170453 | .*** |
9 | CD19+CD268+ | RVAD | Time | 5.02e-04 | 0.053200 | 0.1170453 | .*** |
10 | CD268 of +27-38++transitional | AgeGreater60 | AgeGreater60:Time | 6.17e-04 | 0.059200 | 0.1170453 | .*** |
11 | GRO | Sensitized | Time | 7.11e-04 | 0.063300 | 0.1170453 | .*** |
12 | CD19 of live lymph | Sex | Time | 7.78e-04 | 0.066000 | 0.1170453 | .*** |
13 | CD27+IgD-IgM+ switched memory | Sensitized | Sensitized:Time | 8.15e-04 | 0.067300 | 0.1170453 | .*** |
14 | CD19+27+IgD-38++IgG ASC | RVAD | Time | 8.60e-04 | 0.068800 | 0.1170453 | .*** |
15 | TNF-a | VAD.Indication | VAD.Indication:Time | 8.64e-04 | 0.068900 | 0.1170453 | .*** |
16 | sCD40L | Sensitized | Time | 9.34e-04 | 0.071200 | 0.1170453 | .*** |
17 | IL-1b | LowIntermacs | Time | 1.20e-03 | 0.077900 | 0.1170453 | .** |
18 | CD19+CD268+ | AgeGreater60 | Time | 1.41e-03 | 0.082000 | 0.1170453 | .** |
19 | CD19+27+IgD-38++IgG ASC | LowIntermacs | LowIntermacs | 1.51e-03 | 0.083700 | 0.1170453 | .** |
20 | CD19+CD268+ | Survival | Time | 1.53e-03 | 0.084000 | 0.1170453 | .** |
21 | CD19+CD5+CD11b+ | VAD.Indication | Time | 1.58e-03 | 0.084800 | 0.1170453 | .** |
22 | IL-5 | LowIntermacs | LowIntermacs | 1.59e-03 | 0.084900 | 0.1170453 | .** |
23 | TNF-a | VAD.Indication | VAD.Indication | 1.59e-03 | 0.085000 | 0.1170453 | .** |
24 | CD27-IgD+ mature naive | AgeGreater60 | Time | 1.67e-03 | 0.086000 | 0.2201208 | .** |
25 | G-CSF | Survival | Time | 1.84e-03 | 0.091300 | 0.3213720 | .** |
# long
df.long <- melt(df.HMII, id.vars = colnames(df)[1:13])
names(df.long) <- make.names(names(df.long))
# list of identifiers for significant results to plot
unique_results <- unique(resulttable.sort[,c("biomarker","group")])
# compute group means and CI using emmeans
posthoc.means <- lapply(1:nrow(unique_results), function(ii){
testid <- unique(models.fdr$testid[models.fdr$variable == unique_results$biomarker[ii] &
models.fdr$group == unique_results$group[ii]])
posthoc_group <- emmeans(models.HMII[[testid]]$model,
as.character(unique_results$group[ii]),
by = "Time"
#lmer.df = "satterthwaite"
)
return(posthoc_group)
})
# compute posthoc tests
posthoc.tests.0 <- lapply(posthoc.means, function(this_means){
tests <- contrast(this_means, "pairwise", reverse = T)
posthoc_summary <- rbind(tests, adjust = "none")
posthoc.df <- as.data.frame(posthoc_summary)
#posthoc.df$bonferroni <- p.adjust(posthoc.df$p.value, method = "bonferroni")
#posthoc.df$stars <- sapply(posthoc.df$p.value, p2stars)
return(posthoc.df)
})
# get longform for FDR adjustment
posthoc.tests.all <- do.call(rbind, lapply(1:length(posthoc.tests.0), function(ii){
posthoc.tests.0[[ii]]$id <- rep(ii, nrow(posthoc.tests.0[[ii]]))
posthoc.tests.0[[ii]]
}))
# compute q-values over all tests
posthoc.tests.all$q.value <- p.adjust(posthoc.tests.all$p.value, method = "BH")
posthoc.tests.all$stars <- sapply(posthoc.tests.all$p.value, p2stars)
posthoc.tests <- split(posthoc.tests.all, posthoc.tests.all$id)
# collapse posthoc.means into dataframes for plotting
posthoc.means.df <- lapply(posthoc.means, function(this_means){
this_df <- as.data.frame(this_means)
this_df
})
We did posthoc tests for all mixed effect models previously flagged as significant (\(q<\) 0.1). Each grouping was evaluated at every timepoint, using the emmeans
package to compute confidence intervals and statistical significance of the observed effects.
The emmeans
package package provides methods for obtaining estimated marginal means (EMMs, also known as least-squares means) for factor combinations in mixed-effect models. Estimated marginal means (see Searle et al. 1980) are popular for summarizing linear models that include factors. According to its documentation, the EMMs are based on the mixed-effect model – not directly on data. They are computed on a reference grid consisting of all combinations of factor levels, with each covariate set to its average. EMMs are then predictions on this reference grid, or marginal averages thereof (equally weighted by default). For balanced experimental designs, they are just the marginal means. For unbalanced data, they in essence estimate the marginal means you would have observed that the data arisen from a balanced experiment.
After all models were evaluated, we adjusted the 123 resulting \(p\)-values using the Benjamini-Hochberg method to obtain \(q\)-values.
We plotted results for each of the statistically significant associations (\(q<\) 0.1). We plotted time on the x-axis, and biomarker level on the y-axis, with patients in different groups shown using different colors. Values for each individual patient are shown in the background with high transparency. Superimposed on top are the estimated marginal means and standard error bars found by emmeans
, which we pieced together for display using LOESS regression.
# make all timeseries plots
plots.ts <- mclapply(1:nrow(unique_results), function(ii){
this_var <- as.character(unique_results[ii, "biomarker"])
this_groups <- as.character(unique_results[ii, "group"])
this_df.0 <- droplevels(subset(df.long, df.long$variable == this_var))
this_df <- droplevels(this_df.0[!is.na(this_df.0$value),]) # drop NAs
# get emmeans with CI
this_posthoc <- posthoc.means.df[[ii]]
this_df.0 <- droplevels(subset(df.long, df.long$variable == this_var))
this_df <- droplevels(this_df.0[!is.na(this_df.0$value),])
gg.em <- ggplot(this_posthoc) +
aes(x = as.numeric(as.character(Time)), y = emmean) +
aes_string(group = this_groups,
color = this_groups,
fill = this_groups) +
geom_line(data = this_df,
aes(group = PatientID,
y = value),
alpha = .2,
position=position_dodge(0.5)) +
geom_point(data = this_df,
aes(group = PatientID,
y = value),
alpha = .1,
position=position_dodge(0.5)) +
geom_point(alpha = 1, position=position_dodge(0.5)) +
geom_errorbar(aes(ymin=emmean-SE, ymax=emmean+SE), width=1,
position=position_dodge(0.5)) +
stat_smooth(method = "loess",
aes_string(group = this_groups),
size = 1,
span = .5,
se = F,
alpha = 0.1,
position=position_dodge(0.5)) +
scale_color_aaas() + scale_fill_aaas() +
xlab("Time (days after surgery)") +
ylab(this_var) +
scale_x_continuous(breaks = unique(this_df$Time)) +
ggtitle(paste(this_var)) +
theme_classic()
gg.em
}, mc.cores = detectCores()-1)
names(plots.ts) <- paste(unique_results$biomarker, unique_results$group, sep = " | ")
# # make all timeseries plots
# plots.ts <- mclapply(1:nrow(unique_results), function(ii){
# this_var <- as.character(unique_results[ii, "biomarker"])
# this_groups <- as.character(unique_results[ii, "group"])
# this_df.0 <- droplevels(subset(df.long, df.long$variable == this_var))
# this_df <- droplevels(this_df.0[!is.na(this_df.0$value),])
# ggplot(this_df) +
# aes(x = Time, y = value, group = PatientID) +
# aes_string(color = this_groups, fill = this_groups) +
# geom_line(alpha = 0.2) +
# geom_point(alpha = 0.1) +
# stat_summary(fun.y = mean,
# aes_string(group = this_groups),
# geom=c("point"),
# position = position_dodge(.5)) +
# stat_summary(fun.y = mean,
# aes_string(group = this_groups),
# geom=c("line"),
# size = 2,
# position = position_dodge(.5)) +
# # stat_smooth(method = "loess",
# # aes_string(group = this_groups),
# # size = .01,
# # span = 1,
# # alpha = 0.1) +
# stat_sum_df(function(x) mean_cl_normal(x, conf.int = 0.68),
# mapping = aes_string(group = this_groups),
# position = position_dodge(.5)) +
# scale_color_aaas() + scale_fill_aaas() +
# xlab("Time (days after surgery)") +
# ylab(this_var) +
# scale_x_continuous(breaks = unique(this_df$Time)) +
# ggtitle(paste(this_var)) +
# theme_classic()
# }, mc.cores = detectCores()-1)
# names(plots.ts) <- paste(unique_results$biomarker, unique_results$group, sep = " | ")
# print out results
for(ii in 1:length(plots.ts)){
cat(" \n###", names(plots.ts)[ii], "\n")
suppressWarnings(print(plots.ts[[ii]]))
cat(" \n")
testid <- unique(models.fdr$testid[models.fdr$variable == unique_results$biomarker[ii] &
models.fdr$group == unique_results$group[ii]])
this_anova <- anovatable.fdr[[testid]][,c("variable", "group", "parameter", "Chisq", "Df", "Pr(>Chisq)", "qval", "lfdr")]
this_anova$stars <- sapply(this_anova$`Pr(>Chisq)`, p2stars)
print(this_anova %>%
# mutate(
# pvalue = cell_spec(pvalue, color = ifelse(resulttable.sort$pvalue > pcutoff, "grey", "green")),
# qvalue = cell_spec(qvalue, color = ifelse(resulttable.sort$qvalue > FDRcutoff, "grey", "green"))
# ) %>%
kable(escape = F, row.names = F, caption = "Table 4a: Mixed effect model results") %>%
kable_styling(bootstrap_options = c("striped",
"hover",
"condensed",
"responsive"),
font_size = 10) %>%
scroll_box(width = "100%"))
cat(" \n")
print(posthoc.tests[[ii]] %>%
# mutate(
# pvalue = cell_spec(pvalue, color = ifelse(resulttable.sort$pvalue > pcutoff, "grey", "green")),
# qvalue = cell_spec(qvalue, color = ifelse(resulttable.sort$qvalue > FDRcutoff, "grey", "green"))
# ) %>%
kable(escape = F, row.names = T, caption = "Table 4b: Post-hoc test results") %>%
kable_styling(bootstrap_options = c("striped",
"hover",
"condensed",
"responsive"),
font_size = 10) %>%
scroll_box(width = "100%"))
cat(" \n")
}
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
MCP-1 | VAD.Indication | VAD.Indication | 0.7665451 | 1 | 0.3812880 | 0.7363448 | 0.9789241 | . |
MCP-1 | VAD.Indication | Time | 36.1407299 | 4 | 0.0000003 | 0.0001117 | 0.0004958 | .**** |
MCP-1 | VAD.Indication | VAD.Indication:Time | 37.5815741 | 4 | 0.0000001 | 0.0001117 | 0.0001117 | .**** |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | BTT - DT | -229.19441 | 261.8155 | 38.48326 | -0.8754043 | 0.3867852 | 1 | 0.8649924 | . |
2 | 1 | BTT - DT | -1625.50837 | 283.1057 | 45.24753 | -5.7417004 | 0.0000007 | 1 | 0.0000912 | .**** |
3 | 3 | BTT - DT | -161.53318 | 261.8155 | 38.48326 | -0.6169734 | 0.5408856 | 1 | 0.9762969 | . |
4 | 5 | BTT - DT | -101.07243 | 264.3065 | 39.28634 | -0.3824062 | 0.7042211 | 1 | 0.9762969 | . |
5 | 8 | BTT - DT | -27.77866 | 261.8155 | 38.48326 | -0.1061002 | 0.9160540 | 1 | 0.9762969 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
G-CSF | RVAD | RVAD | 0.9711906 | 1 | 0.3243834 | 0.7103671 | 0.8927675 | . |
G-CSF | RVAD | Time | 36.8079880 | 4 | 0.0000002 | 0.0001117 | 0.0001117 | .**** |
G-CSF | RVAD | RVAD:Time | 23.4918035 | 4 | 0.0001010 | 0.0178547 | 0.0655772 | .*** |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
6 | 0 | No - Yes | 57.27106 | 58.12202 | 43.65005 | 0.9853590 | 0.3298784 | 2 | 0.8649924 | . |
7 | 1 | No - Yes | -217.04263 | 58.54155 | 44.20407 | -3.7074975 | 0.0005807 | 2 | 0.0178550 | .*** |
8 | 3 | No - Yes | 6.54831 | 58.12202 | 43.65005 | 0.1126649 | 0.9108128 | 2 | 0.9762969 | . |
9 | 5 | No - Yes | 43.95582 | 58.54155 | 44.20407 | 0.7508483 | 0.4567226 | 2 | 0.9369736 | . |
10 | 8 | No - Yes | 30.06753 | 58.12202 | 43.65005 | 0.5173172 | 0.6075465 | 2 | 0.9762969 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
CD27+IgD-IgM+ switched memory | Sensitized | Sensitized | 1.636678 | 1 | 0.2007818 | 0.6480377 | 0.7942120 | . |
CD27+IgD-IgM+ switched memory | Sensitized | Time | 39.142294 | 6 | 0.0000007 | 0.0002077 | 0.0118223 | .**** |
CD27+IgD-IgM+ switched memory | Sensitized | Sensitized:Time | 20.986487 | 5 | 0.0008148 | 0.0672896 | 0.1170453 | .*** |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
11 | 0 | No - Yes | -0.3198014 | 7.298960 | 11.34126 | -0.0438147 | 0.9658141 | 3 | 0.9762969 | . |
12 | 1 | No - Yes | -4.2757570 | 7.471146 | 12.32437 | -0.5723027 | 0.5774078 | 3 | 0.9762969 | . |
13 | 3 | No - Yes | -18.2856784 | 7.579877 | 12.94933 | -2.4123977 | 0.0314150 | 3 | 0.2920877 | .* |
14 | 5 | No - Yes | NA | NA | NA | NA | NA | 3 | NA | . |
15 | 8 | No - Yes | -0.9703014 | 7.298960 | 11.34126 | -0.1329369 | 0.8965727 | 3 | 0.9762969 | . |
16 | 14 | No - Yes | 10.7841008 | 8.442165 | 18.02794 | 1.2774094 | 0.2176642 | 3 | 0.8439723 | . |
17 | 21 | No - Yes | -3.2676447 | 8.171663 | 16.32281 | -0.3998751 | 0.6944327 | 3 | 0.9762969 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
num lymph | AgeGreater60 | AgeGreater60 | 19.46946 | 1 | 0.0000102 | 0.0025306 | 0.0561648 | .**** |
num lymph | AgeGreater60 | Time | 11.87890 | 6 | 0.0647256 | 0.5054532 | 0.7021147 | .. |
num lymph | AgeGreater60 | AgeGreater60:Time | 16.81779 | 6 | 0.0099767 | 0.2453627 | 0.4469460 | .** |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
18 | 0 | younger - older | -7938.938 | 37018.14 | 71.50935 | -0.2144608 | 0.8307982 | 4 | 0.9762969 | . |
19 | 1 | younger - older | 14918.008 | 42015.79 | 71.89144 | 0.3550572 | 0.7235863 | 4 | 0.9762969 | . |
20 | 3 | younger - older | 35033.304 | 39756.46 | 71.81324 | 0.8811978 | 0.3811505 | 4 | 0.8649924 | . |
21 | 5 | younger - older | 128946.753 | 51060.17 | 71.98442 | 2.5253883 | 0.0137596 | 4 | 0.1692434 | .* |
22 | 8 | younger - older | 86550.394 | 35476.52 | 71.35865 | 2.4396529 | 0.0171884 | 4 | 0.1921977 | .* |
23 | 14 | younger - older | 127334.245 | 62078.37 | 71.76727 | 2.0511855 | 0.0439001 | 4 | 0.3253995 | .* |
24 | 21 | younger - older | 206076.627 | 52337.71 | 71.97003 | 3.9374407 | 0.0001883 | 4 | 0.0115784 | .*** |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
IL-8 | RVAD | RVAD | 0.1597045 | 1 | 0.6894287 | 0.8345596 | 1.0000000 | . |
IL-8 | RVAD | Time | 23.5113244 | 4 | 0.0001001 | 0.0177453 | 0.0561648 | .*** |
IL-8 | RVAD | RVAD:Time | 14.4619692 | 4 | 0.0059577 | 0.1881234 | 0.4469460 | .** |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
25 | 0 | No - Yes | 12.722592 | 31.84028 | 44.25998 | 0.3995754 | 0.6913910 | 5 | 0.9762969 | . |
26 | 1 | No - Yes | -39.432494 | 32.07257 | 44.81088 | -1.2294772 | 0.2253096 | 5 | 0.8439723 | . |
27 | 3 | No - Yes | -22.785204 | 31.84028 | 44.25998 | -0.7156094 | 0.4779910 | 5 | 0.9369736 | . |
28 | 5 | No - Yes | 7.511063 | 32.07257 | 44.81088 | 0.2341896 | 0.8159045 | 5 | 0.9762969 | . |
29 | 8 | No - Yes | -108.874850 | 31.84028 | 44.25998 | -3.4194063 | 0.0013586 | 5 | 0.0334222 | .** |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
IP-10 | VAD.Indication | VAD.Indication | 2.796429 | 1 | 0.0944745 | 0.5543465 | 0.7021147 | .. |
IP-10 | VAD.Indication | Time | 1.654803 | 4 | 0.7989103 | 0.8539194 | 1.0000000 | . |
IP-10 | VAD.Indication | VAD.Indication:Time | 22.574963 | 4 | 0.0001539 | 0.0238200 | 0.1170453 | .*** |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
30 | 0 | BTT - DT | -456.9398 | 273.2854 | 38.25226 | -1.6720245 | 0.1026812 | 6 | 0.4857612 | . |
31 | 1 | BTT - DT | -601.5382 | 295.3929 | 45.00832 | -2.0364004 | 0.0476194 | 6 | 0.3253995 | .* |
32 | 3 | BTT - DT | 266.7728 | 273.2854 | 38.25226 | 0.9761692 | 0.3351139 | 6 | 0.8649924 | . |
33 | 5 | BTT - DT | 542.2843 | 275.8720 | 39.05338 | 1.9657100 | 0.0564712 | 6 | 0.3655769 | .. |
34 | 8 | BTT - DT | 349.2766 | 273.2854 | 38.25226 | 1.2780656 | 0.2089277 | 6 | 0.8439723 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
CD19+CD268+ | RVAD | RVAD | 0.0657854 | 1 | 0.7975751 | 0.8537106 | 1.0000000 | . |
CD19+CD268+ | RVAD | Time | 24.0929914 | 6 | 0.0005021 | 0.0532019 | 0.1170453 | .*** |
CD19+CD268+ | RVAD | RVAD:Time | 12.4104462 | 5 | 0.0295766 | 0.3899639 | 0.5885059 | .* |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
35 | 0 | No - Yes | -8.208955 | 14.69446 | 27.02123 | -0.5586429 | 0.5810058 | 7 | 0.9762969 | . |
36 | 1 | No - Yes | -9.137837 | 14.77439 | 27.57950 | -0.6184918 | 0.5413261 | 7 | 0.9762969 | . |
37 | 3 | No - Yes | 19.786479 | 14.74034 | 27.34278 | 1.3423355 | 0.1905271 | 7 | 0.8369584 | . |
38 | 5 | No - Yes | 2.599656 | 17.76246 | 47.79183 | 0.1463567 | 0.8842554 | 7 | 0.9762969 | . |
39 | 8 | No - Yes | 12.127541 | 14.22223 | 24.06332 | 0.8527175 | 0.4022239 | 7 | 0.8679569 | . |
40 | 14 | No - Yes | NA | NA | NA | NA | NA | 7 | NA | . |
41 | 21 | No - Yes | 3.335001 | 15.86875 | 34.96004 | 0.2101616 | 0.8347616 | 7 | 0.9762969 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
CD268 of +27-38++transitional | AgeGreater60 | AgeGreater60 | 0.2322852 | 1 | 0.6298345 | 0.8216969 | 1.0000000 | . |
CD268 of +27-38++transitional | AgeGreater60 | Time | 13.6403081 | 6 | 0.0339226 | 0.4075803 | 0.5885059 | .* |
CD268 of +27-38++transitional | AgeGreater60 | AgeGreater60:Time | 23.6053408 | 6 | 0.0006171 | 0.0592243 | 0.1170453 | .*** |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
42 | 0 | younger - older | -12.194879 | 12.75736 | 32.78655 | -0.9559094 | 0.3461137 | 8 | 0.8649924 | . |
43 | 1 | younger - older | -10.781971 | 13.48779 | 38.80777 | -0.7993877 | 0.4289315 | 8 | 0.9096306 | . |
44 | 3 | younger - older | -27.648010 | 13.12752 | 35.91134 | -2.1061107 | 0.0422501 | 8 | 0.3253995 | .* |
45 | 5 | younger - older | 13.322491 | 14.89690 | 49.99151 | 0.8943129 | 0.3754401 | 8 | 0.8649924 | . |
46 | 8 | younger - older | 15.026888 | 12.52136 | 30.93243 | 1.2000999 | 0.2392115 | 8 | 0.8440587 | . |
47 | 14 | younger - older | -23.380569 | 16.74574 | 61.44273 | -1.3962098 | 0.1676755 | 8 | 0.7638551 | . |
48 | 21 | younger - older | 8.837055 | 15.11217 | 51.51851 | 0.5847641 | 0.5612587 | 8 | 0.9762969 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
GRO | Sensitized | Sensitized | 1.498174 | 1 | 0.2209526 | 0.6591120 | 0.7942120 | . |
GRO | Sensitized | Time | 19.222649 | 4 | 0.0007106 | 0.0633400 | 0.1170453 | .*** |
GRO | Sensitized | Sensitized:Time | 2.295863 | 4 | 0.6815224 | 0.8329609 | 1.0000000 | . |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
49 | 0 | No - Yes | 182.063077 | 148.9810 | 14.58784 | 1.2220555 | 0.2410665 | 9 | 0.8440587 | . |
50 | 1 | No - Yes | -5.020331 | 149.3567 | 14.59640 | -0.0336130 | 0.9736411 | 9 | 0.9762969 | . |
51 | 3 | No - Yes | 64.719130 | 149.0100 | 14.58646 | 0.4343274 | 0.6704068 | 9 | 0.9762969 | . |
52 | 5 | No - Yes | 71.587100 | 155.8848 | 16.10141 | 0.4592309 | 0.6522074 | 9 | 0.9762969 | . |
53 | 8 | No - Yes | -24.586690 | 148.9810 | 14.58784 | -0.1650324 | 0.8711837 | 9 | 0.9762969 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
CD19 of live lymph | Sex | Sex | 0.1225005 | 1 | 0.7263382 | 0.8416352 | 1.0000000 | . |
CD19 of live lymph | Sex | Time | 23.0557835 | 6 | 0.0007780 | 0.0659624 | 0.1170453 | .*** |
CD19 of live lymph | Sex | Sex:Time | 5.1871659 | 6 | 0.5200417 | 0.7918872 | 1.0000000 | . |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
54 | 0 | Female - Male | 1.6639060 | 5.216394 | 51.92295 | 0.3189763 | 0.7510242 | 10 | 0.9762969 | . |
55 | 1 | Female - Male | 10.0802980 | 5.661510 | 59.37062 | 1.7804963 | 0.0801114 | 10 | 0.4284219 | .. |
56 | 3 | Female - Male | 0.7887193 | 5.605561 | 58.22557 | 0.1407030 | 0.8885902 | 10 | 0.9762969 | . |
57 | 5 | Female - Male | 3.2662769 | 7.160489 | 70.34714 | 0.4561527 | 0.6496853 | 10 | 0.9762969 | . |
58 | 8 | Female - Male | -0.2498269 | 5.422218 | 55.40910 | -0.0460747 | 0.9634164 | 10 | 0.9762969 | . |
59 | 14 | Female - Male | 0.9377999 | 7.516496 | 71.30697 | 0.1247656 | 0.9010602 | 10 | 0.9762969 | . |
60 | 21 | Female - Male | -7.2774835 | 7.315068 | 71.18607 | -0.9948621 | 0.3231731 | 10 | 0.8649924 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
CD19+27+IgD-38++IgG ASC | RVAD | RVAD | 1.488335 | 1 | 0.2224750 | 0.6598801 | 0.7942120 | . |
CD19+27+IgD-38++IgG ASC | RVAD | Time | 22.817493 | 6 | 0.0008600 | 0.0688251 | 0.1170453 | .*** |
CD19+27+IgD-38++IgG ASC | RVAD | RVAD:Time | 17.101744 | 5 | 0.0043108 | 0.1546736 | 0.3213720 | .** |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
61 | 0 | No - Yes | 2.1367122 | 1.856919 | 67.86650 | 1.1506758 | 0.2539038 | 11 | 0.8440587 | . |
62 | 1 | No - Yes | 0.2479458 | 1.884481 | 69.11575 | 0.1315725 | 0.8957047 | 11 | 0.9762969 | . |
63 | 3 | No - Yes | -0.1112912 | 1.593381 | 66.46037 | -0.0698459 | 0.9445260 | 11 | 0.9762969 | . |
64 | 5 | No - Yes | -9.4179873 | 2.552357 | 70.00000 | -3.6899172 | 0.0004400 | 11 | 0.0178550 | .*** |
65 | 8 | No - Yes | 0.3859604 | 1.559019 | 65.73287 | 0.2475663 | 0.8052417 | 11 | 0.9762969 | . |
66 | 14 | No - Yes | NA | NA | NA | NA | NA | 11 | NA | . |
67 | 21 | No - Yes | -0.2256372 | 1.980046 | 69.64572 | -0.1139555 | 0.9096009 | 11 | 0.9762969 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
TNF-a | VAD.Indication | VAD.Indication | 9.965749 | 1 | 0.0015948 | 0.084951 | 0.1170453 | .** |
TNF-a | VAD.Indication | Time | 10.875544 | 4 | 0.0279989 | 0.382689 | 0.5885059 | .* |
TNF-a | VAD.Indication | VAD.Indication:Time | 18.791729 | 4 | 0.0008636 | 0.068943 | 0.1170453 | .*** |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
68 | 0 | BTT - DT | -39.41501 | 12.48829 | 46.39397 | -3.1561578 | 0.0028071 | 12 | 0.0493246 | .** |
69 | 1 | BTT - DT | -12.19411 | 13.66910 | 52.64659 | -0.8920929 | 0.3764026 | 12 | 0.8649924 | . |
70 | 3 | BTT - DT | 12.67119 | 12.48829 | 46.39397 | 1.0146458 | 0.3155372 | 12 | 0.8649924 | . |
71 | 5 | BTT - DT | 8.83497 | 12.62621 | 47.17160 | 0.6997324 | 0.4875310 | 12 | 0.9369736 | . |
72 | 8 | BTT - DT | 11.73604 | 12.48829 | 46.39397 | 0.9397639 | 0.3522060 | 12 | 0.8649924 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
sCD40L | Sensitized | Sensitized | 3.144392 | 1 | 0.0761884 | 0.5276911 | 0.7021147 | .. |
sCD40L | Sensitized | Time | 18.617338 | 4 | 0.0009343 | 0.0711582 | 0.1170453 | .*** |
sCD40L | Sensitized | Sensitized:Time | 4.966288 | 4 | 0.2907741 | 0.6939787 | 0.8927675 | . |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
73 | 0 | No - Yes | 3877.11159 | 2188.940 | 13.06905 | 1.7712278 | 0.0998259 | 13 | 0.4857612 | .. |
74 | 1 | No - Yes | 87.27468 | 2194.015 | 13.09380 | 0.0397785 | 0.9688698 | 13 | 0.9762969 | . |
75 | 3 | No - Yes | -199.84468 | 2189.349 | 13.06948 | -0.0912804 | 0.9286540 | 13 | 0.9762969 | . |
76 | 5 | No - Yes | 1078.01617 | 2278.587 | 14.46069 | 0.4731072 | 0.6431989 | 13 | 0.9762969 | . |
77 | 8 | No - Yes | 517.33673 | 2188.940 | 13.06905 | 0.2363412 | 0.8168317 | 13 | 0.9762969 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
IL-1b | LowIntermacs | LowIntermacs | 4.882947 | 1 | 0.0271233 | 0.3784164 | 0.5885059 | .* |
IL-1b | LowIntermacs | Time | 18.060820 | 4 | 0.0012008 | 0.0779384 | 0.1170453 | .** |
IL-1b | LowIntermacs | LowIntermacs:Time | 10.387189 | 4 | 0.0343869 | 0.4092792 | 0.6622384 | .* |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
78 | 0 | high - low | -5.410829 | 2.450816 | 38.77113 | -2.2077658 | 0.0332457 | 14 | 0.2920877 | .* |
79 | 1 | high - low | -1.010076 | 2.424774 | 37.94563 | -0.4165651 | 0.6793436 | 14 | 0.9762969 | . |
80 | 3 | high - low | -1.403458 | 2.447025 | 38.79132 | -0.5735364 | 0.5695920 | 14 | 0.9762969 | . |
81 | 5 | high - low | -2.077816 | 2.424774 | 37.94563 | -0.8569109 | 0.3968738 | 14 | 0.8679569 | . |
82 | 8 | high - low | 3.231075 | 2.585424 | 43.40508 | 1.2497274 | 0.2180959 | 14 | 0.8439723 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
CD19+CD268+ | AgeGreater60 | AgeGreater60 | 0.3469473 | 1 | 0.5558463 | 0.8026471 | 1.0000000 | . |
CD19+CD268+ | AgeGreater60 | Time | 21.6351602 | 6 | 0.0014096 | 0.0819979 | 0.1170453 | .** |
CD19+CD268+ | AgeGreater60 | AgeGreater60:Time | 13.2451783 | 6 | 0.0393036 | 0.4298171 | 0.6622384 | .* |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
83 | 0 | younger - older | 6.6467453 | 12.26880 | 24.68602 | 0.5417599 | 0.5928407 | 15 | 0.9762969 | . |
84 | 1 | younger - older | -0.8345696 | 12.65628 | 27.60529 | -0.0659411 | 0.9478999 | 15 | 0.9762969 | . |
85 | 3 | younger - older | -12.6750829 | 12.46275 | 26.14727 | -1.0170372 | 0.3184547 | 15 | 0.8649924 | . |
86 | 5 | younger - older | -1.6248585 | 13.42689 | 33.73160 | -0.1210153 | 0.9043969 | 15 | 0.9762969 | . |
87 | 8 | younger - older | -3.3531216 | 12.14444 | 23.79201 | -0.2761035 | 0.7848528 | 15 | 0.9762969 | . |
88 | 14 | younger - older | -27.6866076 | 14.48004 | 42.29469 | -1.9120527 | 0.0626589 | 15 | 0.3670021 | .. |
89 | 21 | younger - older | -7.2491892 | 13.54774 | 34.70620 | -0.5350847 | 0.5960034 | 15 | 0.9762969 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
CD19+27+IgD-38++IgG ASC | LowIntermacs | LowIntermacs | 10.064934 | 1 | 0.0015112 | 0.0836814 | 0.1170453 | .** |
CD19+27+IgD-38++IgG ASC | LowIntermacs | Time | 7.025492 | 6 | 0.3184962 | 0.7076945 | 0.8927675 | . |
CD19+27+IgD-38++IgG ASC | LowIntermacs | LowIntermacs:Time | 4.762124 | 6 | 0.5746644 | 0.8078680 | 1.0000000 | . |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
90 | 0 | high - low | -3.0950000 | 1.286900 | 69 | -2.4050040 | 0.0188591 | 16 | 0.1933058 | .* |
91 | 1 | high - low | -3.6620000 | 1.438349 | 69 | -2.5459746 | 0.0131342 | 16 | 0.1692434 | .* |
92 | 3 | high - low | -1.5387500 | 1.324854 | 69 | -1.1614486 | 0.2494616 | 16 | 0.8440587 | . |
93 | 5 | high - low | -3.2125000 | 1.590986 | 69 | -2.0191878 | 0.0473546 | 16 | 0.3253995 | .* |
94 | 8 | high - low | -1.3052857 | 1.200576 | 69 | -1.0872167 | 0.2807244 | 16 | 0.8649924 | . |
95 | 14 | high - low | 0.0620000 | 2.079164 | 69 | 0.0298197 | 0.9762969 | 16 | 0.9762969 | . |
96 | 21 | high - low | -0.4533333 | 2.024540 | 69 | -0.2239192 | 0.8234818 | 16 | 0.9762969 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
CD19+CD268+ | Survival | Survival | 0.5237235 | 1 | 0.4692576 | 0.7744448 | 1.0000000 | . |
CD19+CD268+ | Survival | Time | 21.4396868 | 6 | 0.0015290 | 0.0839597 | 0.1170453 | .** |
CD19+CD268+ | Survival | Survival:Time | 12.0549575 | 5 | 0.0340424 | 0.4080218 | 0.5885059 | .* |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
97 | 0 | alive - dead | -12.220999 | 13.69796 | 25.79271 | -0.8921765 | 0.3805467 | 17 | 0.8649924 | . |
98 | 1 | alive - dead | -12.690845 | 14.18029 | 29.15800 | -0.8949635 | 0.3781354 | 17 | 0.8649924 | . |
99 | 3 | alive - dead | 6.543127 | 13.54544 | 24.80575 | 0.4830503 | 0.6332961 | 17 | 0.9762969 | . |
100 | 5 | alive - dead | -5.152008 | 14.07890 | 28.46258 | -0.3659383 | 0.7171170 | 17 | 0.9762969 | . |
101 | 8 | alive - dead | 9.509920 | 13.24117 | 22.79946 | 0.7182086 | 0.4799244 | 17 | 0.9369736 | . |
102 | 14 | alive - dead | -12.459416 | 17.22654 | 51.17688 | -0.7232688 | 0.4728077 | 17 | 0.9369736 | . |
103 | 21 | alive - dead | NA | NA | NA | NA | NA | 17 | NA | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
CD19+CD5+CD11b+ | VAD.Indication | VAD.Indication | 1.91482 | 1 | 0.1664289 | 0.6243197 | 0.7942120 | . |
CD19+CD5+CD11b+ | VAD.Indication | Time | 21.35859 | 6 | 0.0015813 | 0.0847528 | 0.1170453 | .** |
CD19+CD5+CD11b+ | VAD.Indication | VAD.Indication:Time | 16.83455 | 6 | 0.0099109 | 0.2446299 | 0.4469460 | .** |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
104 | 0 | BTT - DT | 0.7805669 | 4.980188 | 33.15732 | 0.1567344 | 0.8764046 | 18 | 0.9762969 | . |
105 | 1 | BTT - DT | -5.0503011 | 5.479638 | 43.65986 | -0.9216487 | 0.3617769 | 18 | 0.8649924 | . |
106 | 3 | BTT - DT | -0.5598957 | 5.189146 | 37.62268 | -0.1078975 | 0.9146504 | 18 | 0.9762969 | . |
107 | 5 | BTT - DT | -1.4173118 | 5.421362 | 42.46530 | -0.2614310 | 0.7950240 | 18 | 0.9762969 | . |
108 | 8 | BTT - DT | -9.5467743 | 4.923345 | 32.00742 | -1.9390829 | 0.0613499 | 18 | 0.3670021 | .. |
109 | 14 | BTT - DT | -7.2636215 | 5.934691 | 52.62712 | -1.2239257 | 0.2264316 | 18 | 0.8439723 | . |
110 | 21 | BTT - DT | -17.8278584 | 6.207456 | 56.92148 | -2.8720070 | 0.0057205 | 18 | 0.0879529 | .** |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
IL-5 | LowIntermacs | LowIntermacs | 9.968715 | 1 | 0.0015922 | 0.0849134 | 0.1170453 | .** |
IL-5 | LowIntermacs | Time | 5.213550 | 4 | 0.2660793 | 0.6811998 | 0.8438190 | . |
IL-5 | LowIntermacs | LowIntermacs:Time | 11.797739 | 4 | 0.0189205 | 0.3276987 | 0.5885059 | .* |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
111 | 0 | high - low | -14.336251 | 4.546425 | 51.24456 | -3.1533021 | 0.0026987 | 19 | 0.0493246 | .** |
112 | 1 | high - low | -1.853963 | 4.494250 | 50.41160 | -0.4125188 | 0.6817084 | 19 | 0.9762969 | . |
113 | 3 | high - low | 1.388210 | 4.546425 | 51.24456 | 0.3053410 | 0.7613433 | 19 | 0.9762969 | . |
114 | 5 | high - low | 2.018744 | 4.494250 | 50.41160 | 0.4491838 | 0.6552243 | 19 | 0.9762969 | . |
115 | 8 | high - low | -1.255315 | 4.546425 | 51.24456 | -0.2761102 | 0.7835739 | 19 | 0.9762969 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
CD27-IgD+ mature naive | AgeGreater60 | AgeGreater60 | 0.1101225 | 1 | 0.7400047 | 0.8441039 | 1.0000000 | . |
CD27-IgD+ mature naive | AgeGreater60 | Time | 21.2315568 | 6 | 0.0016669 | 0.0859702 | 0.2201208 | .** |
CD27-IgD+ mature naive | AgeGreater60 | AgeGreater60:Time | 16.1873437 | 6 | 0.0127830 | 0.2723265 | 0.4469460 | .* |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
116 | 0 | younger - older | -1.255098 | 8.359177 | 25.83189 | -0.1501462 | 0.8818155 | 20 | 0.9762969 | . |
117 | 1 | younger - older | 0.496588 | 8.658665 | 29.23774 | 0.0573516 | 0.9546553 | 20 | 0.9762969 | . |
118 | 3 | younger - older | -4.406058 | 8.509371 | 27.54353 | -0.5177889 | 0.6087398 | 20 | 0.9762969 | . |
119 | 5 | younger - older | 4.623010 | 9.251121 | 36.31167 | 0.4997243 | 0.6202840 | 20 | 0.9762969 | . |
120 | 8 | younger - older | 8.363732 | 8.262925 | 24.79079 | 1.0121999 | 0.3212203 | 20 | 0.8649924 | . |
121 | 14 | younger - older | -18.757631 | 10.054805 | 45.87563 | -1.8655391 | 0.0685082 | 20 | 0.3830229 | .. |
122 | 21 | younger - older | -6.808721 | 9.343616 | 37.41977 | -0.7287029 | 0.4707197 | 20 | 0.9369736 | . |
Figure 3: Biomarker profile
variable | group | parameter | Chisq | Df | Pr(>Chisq) | qval | lfdr | stars |
---|---|---|---|---|---|---|---|---|
G-CSF | Survival | Survival | 0.7629021 | 1 | 0.3824218 | 0.7368862 | 0.9789241 | . |
G-CSF | Survival | Time | 17.1044346 | 4 | 0.0018447 | 0.0913362 | 0.3213720 | .** |
G-CSF | Survival | Survival:Time | 6.3623959 | 4 | 0.1736697 | 0.6299380 | 0.7942120 | . |
Time | contrast | estimate | SE | df | t.ratio | p.value | id | q.value | stars | |
---|---|---|---|---|---|---|---|---|---|---|
123 | 0 | alive - dead | 46.28771 | 53.01446 | 50.49979 | 0.8731149 | 0.3867333 | 21 | 0.8649924 | . |
124 | 1 | alive - dead | -91.52578 | 53.87612 | 51.44400 | -1.6988192 | 0.0953941 | 21 | 0.4857612 | .. |
125 | 3 | alive - dead | 15.44907 | 53.01446 | 50.49979 | 0.2914125 | 0.7719296 | 21 | 0.9762969 | . |
126 | 5 | alive - dead | 33.26100 | 53.87612 | 51.44400 | 0.6173607 | 0.5397200 | 21 | 0.9762969 | . |
127 | 8 | alive - dead | 46.43142 | 53.01446 | 50.49979 | 0.8758257 | 0.3852718 | 21 | 0.8649924 | . |
We double-standardized the data (Efron 2009) and computed the correlation matrix for the biomarkers using all pairwise complete data. We then clustered the biomarkers using those correlations, and clustered the samples that remained after removing missing data. We also clustered by time, after collapsing each biomarker to only its mean level.
# color palette for this section
colorfun <- function(nlevels, func = pal_d3, ...){
if(nlevels > 10) return(standardColors(nlevels))
if(nlevels <=10) return(func(...)(nlevels))
}
# annotations for our heatmap
annotation.row <- data.frame("biomarker" = factor(c(rep("B-cell", length(bc)),
rep("cytokine", length(cyt)))))
annotation.col <- df.raw[,which(make.names(colnames(df.raw), unique = T) %in% groups)]
annotation.colors <- lapply(colnames(annotation.col), function(nam){
colrs <- colorfun(nlevels(annotation.col[[nam]]))
names(colrs) <- levels(annotation.col[[nam]])
return(colrs)
})
names(annotation.colors) <- colnames(annotation.col)
annotation.colors[["biomarker"]] <- colorfun(nlevels(annotation.row$biomarker))
names(annotation.colors[["biomarker"]]) <- levels(annotation.row$biomarker)
# double standardize
df.ds <- df.raw
df.ds[,bcellcyto] <- double_standardize(df.raw[, bcellcyto])
df.patient <- t(na.omit(df.ds[,bcellcyto]))
rownames(annotation.row) <- rownames(df.patient)
# compute silhouette for various biomarker clusters
r.biomarker <- cor(df.ds[, bcellcyto], use = "p")
nbclust <- fviz_nbclust(t(df.ds[, bcellcyto]),
hcut,
method = c("silhouette"),
diss = as.dist((1-r.biomarker)/2),
k.max = 25) +
labs(subtitle = "Silhouette method")
# compute optimal number of clusters
nclusters.bicluster <- as.numeric(as.character(nbclust$data$clusters[nbclust$data$y == max(nbclust$data$y)]))
# compute clusters
tree.bicluster <- hclust(as.dist((1-r.biomarker)/2), method = "ward.D2")
bicluster <- list()
bicluster$biomarkers_optimal <- cutree(tree.bicluster, k = nclusters.bicluster)
bicluster$biomarkers <- cutree(tree.bicluster, k = 4) # use 4 to simplify
# update annotations to include clusters
annotation.row$bicluster_optimal <- factor(bicluster$biomarkers_optimal)
annotation.row$bicluster <- factor(bicluster$biomarkers)
annotation.colors$bicluster <- colorfun(nlevels(annotation.row$bicluster),
func = pal_simpsons)
annotation.colors$bicluster_optimal <- colorfun(nlevels(annotation.row$bicluster_optimal),
func = pal_simpsons)
names(annotation.colors$bicluster) <- levels(factor(annotation.row$bicluster))
names(annotation.colors$bicluster_optimal) <- levels(factor(annotation.row$bicluster_optimal))
# # # make heatmap
# pheatmap(df.patient,
# color = colorRampPalette(rev(brewer.pal(n = 10, name = "RdBu")))(100),
# breaks = c(seq(-max(abs(df.patient), na.rm=T), 0, length.out = 50),
# seq(0.001, max(abs(df.patient), na.rm=T), length.out = 50)),
# fontsize = 7,
# cutree_rows = nclusters.bicluster,
# cutree_cols = 2,
# cluster_cols = T,
# cluster_rows = tree.bicluster,
# show_colnames = F,
# annotation_col = annotation.col,
# annotation_row = annotation.row,
# annotation_colors = annotation.colors,
# clustering_method = "ward.D2"
# )
# Temporal patterns
compute_module_means <- function(modules, df.ds, metadata.cols = 1:13, FUN = mean){
nmods <- length(unique(modules))
module.mean.list <- lapply(1:nmods, function(ii){
this_names <- names(modules)[modules == ii]
this_columns <- colnames(df.ds) %in% this_names
this_mean <- apply(df.ds[,this_columns, drop = F], 1, FUN)
})
module.mean.matrix <- do.call(cbind, module.mean.list)
module.mean.df <- as.data.frame(module.mean.matrix)
colnames(module.mean.df) <- paste0("module.", unique(modules))
return(cbind(df.ds[, metadata.cols], module.mean.df))
}
df.modules <- list()
df.modules$bicluster <- compute_module_means(bicluster$biomarkers, df.ds)
df.modules$bicluster_optimal <- compute_module_means(bicluster$biomarkers_optimal, df.ds)
# melt data into longform
df.modules.long <- lapply(df.modules, function(this_df.modules){
melt(this_df.modules, id.vars = colnames(this_df.modules)[1:13])
})
# this_df <- df.modules.long$bicluster_optimal
# g3 <- ggplot(this_df) +
# aes(x = as.numeric(as.character(Time)),
# y = value,
# color = factor(variable),
# fill = factor(variable),
# group = PatientID) +
# geom_point(alpha = 0.1, size = 1) +
# geom_line(alpha = 0.2) +
# xlab("Time (days)") +
# ylab("Standardized level") +
# scale_x_continuous(breaks = unique(this_df$Time)) +
# stat_summary(fun.y = mean,
# aes(group = variable),
# geom=c("line"),
# size = .02,
# position = position_dodge(.5)) +
# stat_smooth(method = "loess",
# aes(group = variable),
# span = .5,
# size = 1,
# alpha = 0.1) +
# stat_summary(fun.y = mean,
# aes(group = variable),
# geom=c("point"),
# position = position_dodge(.5)) +
# stat_sum_df(function(x) mean_cl_normal(x, conf.int = 0.68),
# mapping = aes(group = variable),
# position = position_dodge(.5)) +
# #scale_color_simpsons(name = "Cluster") +
# #scale_fill_simpsons(name = "Cluster") +
# theme_classic()
# #print(g3)
# Temporal clusters
df.ds.patients.0 <- split(df.ds, df.ds$PatientID)
df.ds.patients <- lapply(df.ds.patients.0, function(this_patient){
this_patient[match(c(0,1,3,5,8,14,21), this_patient$Time),bcellcyto]
})
varnames <- colnames(df.ds[,bcellcyto])
meanlist <- lapply(varnames, function(this_var){
temp <- aggregate(df.ds[[this_var]],
list(df.ds$Time),
FUN = function(x) mean(x, na.rm = T))
colnames(temp) <- c("Time", "z")
temp$biomarker <- this_var
temp
})
names(meanlist) <- varnames
means.long <- do.call(rbind, meanlist)
means.wide.0 <- dcast(means.long, Time ~ biomarker, value.var = "z" )
means.wide <- means.wide.0[,c("Time", colnames(df)[bcellcyto])]
colorfun.time <- function(nlevels, ...){
if(nlevels > 10) return(standardColors(nlevels))
if(nlevels <=10) return(pal_d3(...)(nlevels))
}
annotation.row.time <- data.frame("biomarker" = factor(c(rep("B-cell",29), rep("cytokine",38))))
annotation.colors.time <- lapply(colnames(annotation.row.time), function(nam){
colrs <- colorfun.time(nlevels(annotation.row.time[[nam]]))
names(colrs) <- levels(annotation.row.time[[nam]])
return(colrs)
})
names(annotation.colors.time) <- colnames(annotation.row.time)
df.means <- as.data.frame(t(means.wide[,-1]))
rownames(annotation.row.time) <- rownames(df.means)
# compute optimal number of clusters
nbclust.time <- fviz_nbclust(df.means,
hcut,
method = c("silhouette"),
diss = as.dist((1-cor(t(df.means), use = "p"))/2),
k.max = 25)+
labs(subtitle = "Silhouette method")
nclusters.timecluster <- as.numeric(as.character(nbclust.time$data$clusters[nbclust.time$data$y == max(nbclust.time$data$y)]))
To determine the optimal number of clusters, we maximized the average silhouete width using the factoextra
and NbClust
packages.
a <- nbclust + ggtitle("Optimal number of biomarker clusters")
b <- nbclust.time + ggtitle("Optimal number of timeclusters")
grid.arrange(a,b,ncol = 1)
Figure 4: Optimal number of clusters
# Temporal patterns
# do optimal clustering
tree.timecluster <- hclust(as.dist((1-cor(t(df.means), use = "p"))/2),
method = "ward.D2")
timeclusters <- cutree(tree.timecluster, k = nclusters.timecluster) # optimal number of clusters
# update annotations
annotation.row.time$time_cluster <- timeclusters
annotation.colors.time$time_cluster <- colorfun(nlevels(factor(annotation.row.time$time_cluster)))
names(annotation.colors.time$time_cluster) <- factor(unique(annotation.row.time$time_cluster))
# # add in clusters from the first clustering
# annotation.row.time$bicluster_optimal <- annotation.row$bicluster_optimal
# annotation.colors.time$bicluster_optimal <- annotation.colors$bicluster_optimal
# annotation.row.time$bicluster <- annotation.row$bicluster
# annotation.colors.time$bicluster <- annotation.colors$bicluster
hits <- as.character(unique(resulttable$biomarker))
annotation.row.hits <- data.frame(significance = rep(0, nrow(annotation.row)),
row.names = rownames(annotation.row))
annotation.row.hits$significance[rownames(annotation.row) %in% hits] <- 1
# change to factor
annotation.row.hits$significance <- revalue(factor(annotation.row.hits$significance), c("0"="not significant", "1"="significant"))
annotation.colors.time$significance <- c("not significant" = "lightgrey", "significant" = "darkgreen")
# make biclustering heatmap
pheatmap(df.patient,
color = colorRampPalette(rev(brewer.pal(n = 10, name = "RdBu")))(100),
breaks = c(seq(-max(abs(df.patient), na.rm=T), 0, length.out = 50),
seq(0.001, max(abs(df.patient), na.rm=T), length.out = 50)),
fontsize = 7,
cutree_rows = nclusters.bicluster,
cutree_cols = 2,
cluster_cols = T,
cluster_rows = tree.bicluster,
show_colnames = F,
annotation_col = annotation.col,
#annotation_row = annotation.row.time,
# annotation_row = cbind(annotation.row,
# time_cluster = annotation.row.time$time_cluster),
annotation_row = cbind(annotation.row.time[,1,drop=F],
annotation.row.time[,2,drop=F],
annotation.row[,c(3,2),drop=F],
annotation.row.hits[,1,drop=F]),
#annotation_colors = c(annotation.colors, annotation.colors.time),
annotation_colors = c(annotation.colors, annotation.colors.time),
clustering_method = "ward.D2",
main = "Clusters"
)
Figure 5: Biclustering
pheatmap(df.means,
color = colorRampPalette(rev(brewer.pal(n = 7, name = "RdBu")))(100),
breaks = c(seq(-max(abs(df.means), na.rm=T), 0, length.out = 50),
seq(0.001, max(abs(df.means), na.rm=T), length.out = 50)),
fontsize = 7,
cutree_rows = 4,
cutree_cols = 1,
cluster_cols = F,
cluster_rows = tree.timecluster,
#annotation_col = annotation.col,
# annotation_row = cbind(annotation.row,
# time_cluster = factor(annotation.row.time$time_cluster)),
annotation_row = cbind(annotation.row.time[,1,drop=F],
annotation.row.time[,2,drop=F],
annotation.row[,c(3,2),drop=F],
annotation.row.hits[,1,drop=F]),
annotation_colors = c(annotation.colors, annotation.colors.time),
clustering_method = "ward.D2",
labels_col = means.wide$Time,
border_color = NA,
main = "Timeclusters"
)
Figure 6: Temporal clustering
At the request of reviewers, we have split the previous heatmap (Figure 6) into two heatmaps: one for only B-cells, and one for only cytokines. Note that this does not change any of the clustering assignments previously determined, nor any of the clustering analysis that follows (to do so would unnecessarily complicate the unified analysis). This section exists only for the purpose of visualization.
df.means.bcell <- subset(df.means, annotation.row$biomarker == "B-cell")
tree.timecluster.bcell <- hclust(as.dist((1-cor(t(df.means.bcell), use = "p"))/2),
method = "ward.D2")
pheatmap(df.means.bcell,
color = colorRampPalette(rev(brewer.pal(n = 7, name = "RdBu")))(100),
breaks = c(seq(-max(abs(df.means.bcell), na.rm=T), 0, length.out = 50),
seq(0.001, max(abs(df.means.bcell), na.rm=T), length.out = 50)),
fontsize = 7,
cutree_rows = 4,
cutree_cols = 1,
cluster_cols = F,
cluster_rows = tree.timecluster.bcell,
#annotation_col = annotation.col,
# annotation_row = cbind(annotation.row,
# time_cluster = factor(annotation.row.time$time_cluster)),
annotation_row = cbind(
#annotation.row.time[annotation.row$biomarker == "B-cell",1,drop=F],
#annotation.row.time[annotation.row$biomarker == "B-cell",2,drop=F],
#annotation.row[annotation.row$biomarker == "B-cell",c(3),drop=F],
annotation.row.hits[annotation.row$biomarker == "B-cell",1,drop=F]
),
annotation_colors = c(annotation.colors, annotation.colors.time),
clustering_method = "ward.D2",
labels_col = means.wide$Time,
border_color = NA,
main = "Timeclusters for B-cells"
)
Figure 6.1a: Temporal clustering of B-cells
df.means.cytokine <- subset(df.means, annotation.row$biomarker == "cytokine")
tree.timecluster.cytokine <- hclust(as.dist((1-cor(t(df.means.cytokine), use = "p"))/2),
method = "ward.D2")
pheatmap(df.means.cytokine,
color = colorRampPalette(rev(brewer.pal(n = 7, name = "RdBu")))(100),
breaks = c(seq(-max(abs(df.means.cytokine), na.rm=T), 0, length.out = 50),
seq(0.001, max(abs(df.means.cytokine), na.rm=T), length.out = 50)),
fontsize = 7,
cutree_rows = 4,
cutree_cols = 1,
cluster_cols = F,
cluster_rows = tree.timecluster.cytokine,
#annotation_col = annotation.col,
# annotation_row = cbind(annotation.row,
# time_cluster = factor(annotation.row.time$time_cluster)),
annotation_row = cbind(
#annotation.row.time[annotation.row$biomarker == "cytokine",1,drop=F],
#annotation.row.time[annotation.row$biomarker == "cytokine",2,drop=F],
#annotation.row[annotation.row$biomarker == "cytokine",c(3),drop=F],
annotation.row.hits[annotation.row$biomarker == "cytokine",1,drop=F]),
annotation_colors = c(annotation.colors, annotation.colors.time),
clustering_method = "ward.D2",
labels_col = means.wide$Time,
border_color = NA,
main = "Timeclusters for cytokines"
)
Figure 6.1b: Temporal clustering of cytokines
At the request of editors, we further generated a heatmap of only the B-cells/cytokines with statistically significant associations.
keepsignif <- annotation.row.hits$significance == "significant"
tree.timecluster.signifs <- hclust(as.dist((1-cor(t(df.means[keepsignif,]), use = "p"))/2),
method = "ward.D2")
pheatmap(df.means[keepsignif,],
color = colorRampPalette(rev(brewer.pal(n = 7, name = "RdBu")))(100),
breaks = c(seq(-max(abs(df.means), na.rm=T), 0, length.out = 50),
seq(0.001, max(abs(df.means), na.rm=T), length.out = 50)),
fontsize = 7,
cutree_rows = 4,
cutree_cols = 1,
cluster_cols = F,
cluster_rows = tree.timecluster.signifs,
#annotation_col = annotation.col,
# annotation_row = cbind(annotation.row,
# time_cluster = factor(annotation.row.time$time_cluster)),
annotation_row = cbind(annotation.row.time[keepsignif,1,drop=F]
#annotation.row.time[keepsignif,2,drop=F],
#annotation.row[keepsignif,c(3,2),drop=F],
#annotation.row.hits[keepsignif,1,drop=F]
),
annotation_colors = c(annotation.colors, annotation.colors.time),
clustering_method = "ward.D2",
labels_col = means.wide$Time,
border_color = NA,
main = "Temporal Profile"
)
Figure 6.1c: Temporal clustering of significant B-cells and cytokines
We depicted each biomarker cluster’s temporal pattern as a smooth function of time, using a LOESS regression model. There are clear temporal dynamics occurring at multiple timescales.
colnames(df.means) <- unique(means.long$Time)
df.means$timecluster <- factor(timeclusters)
df.means$biomarker <- rownames(df.means)
df.clustermeans <- melt(df.means, id.vars = c("biomarker", "timecluster"), variable.name = "Time", value.name = "z")
gg.time <- ggplot(df.clustermeans) +
aes(x=as.numeric(as.character(Time)), y=z,
color = timecluster,
group = biomarker,
fill = timecluster) +
geom_point(alpha = 0.1, size = 1) +
geom_line(alpha = 0.2) +
xlab("Time (days)") +
ylab("Standardized level (z-score)") +
ggtitle("Temporal biomarker clusters") +
scale_x_continuous(breaks = as.numeric(as.character(unique(df.clustermeans$Time)))) +
stat_summary(fun.y = mean,
aes(group = timecluster),
geom=c("line"),
size = .02,
position = position_dodge(.5)) +
stat_smooth(method = "loess",
aes(group = timecluster),
span = .6,
size = 1,
alpha = 0.2) +
stat_summary(fun.y = mean,
aes(group = timecluster),
geom=c("point"),
position = position_dodge(.5)) +
# stat_sum_df(function(x) mean_cl_boot(x, conf.int = 0.68),
# mapping = aes(group = timecluster),
# position = position_dodge(.5)) +
scale_color_d3() +
scale_fill_d3() +
theme_classic()
print(gg.time)
Figure 7: Time cluster profile
We tested for overlap between the biomarker clusters and the timeclusters using Fisher’s exact test.
this_table <- table(cbind(annotation.row.time[,2,drop=F],
annotation.row[, 3, drop=F]))
print(this_table %>% kable(escape = F, row.names = T, caption = "Table 5: Contingency table") %>%
kable_styling(bootstrap_options = c("striped",
"hover",
"condensed",
"responsive"),
font_size = 10) %>%
scroll_box(width = "100%"))
1 | 2 | 3 | 4 | |
---|---|---|---|---|
1 | 1 | 13 | 9 | 0 |
2 | 16 | 4 | 1 | 6 |
3 | 3 | 6 | 0 | 1 |
4 | 2 | 3 | 1 | 1 |
cat(" \n")
Fisher’s exact test \(p=\) 2.1210^{-6}
We tested for overlap between the statistically significant biomarkers and the optimal biomarker clusters using Fisher’s exact test.
this_table <- table(cbind(annotation.row.hits[,1, drop=F],
annotation.row[,2, drop=F]))
print(this_table %>% kable(escape = F, row.names = T, caption = "Table 5: Contingency table") %>%
kable_styling(bootstrap_options = c("striped",
"hover",
"condensed",
"responsive"),
font_size = 10) %>%
scroll_box(width = "100%"))
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
not significant | 1 | 4 | 2 | 0 | 2 | 7 | 2 | 3 | 2 | 0 | 4 | 4 | 5 | 3 | 2 | 2 | 3 | 1 | 3 |
significant | 1 | 0 | 1 | 3 | 1 | 1 | 0 | 0 | 1 | 3 | 0 | 0 | 0 | 1 | 1 | 2 | 0 | 2 | 0 |
cat(" \n")
Fisher’s exact test \(p=\) 0.0061
We tested for overlap between the statistically significant biomarkers and the timeclusters using Fisher’s exact test.
this_table <- table(cbind(annotation.row.hits[,1, drop=F],
annotation.row.time[,2, drop=F]))
print(this_table %>% kable(escape = F, row.names = T, caption = "Table 5: Contingency table") %>%
kable_styling(bootstrap_options = c("striped",
"hover",
"condensed",
"responsive"),
font_size = 10) %>%
scroll_box(width = "100%"))
1 | 2 | 3 | 4 | |
---|---|---|---|---|
not significant | 16 | 21 | 7 | 6 |
significant | 7 | 6 | 3 | 1 |
cat(" \n")
Fisher’s exact test \(p=\) 0.807
We tested for overlap between statistically significant biomarkers and their biomarker type.
this_table <- table(cbind(annotation.row[,1, drop=F],
annotation.row.hits[,1, drop=F]))
print(this_table %>% kable(escape = F, row.names = T, caption = "Table 5: Contingency table") %>%
kable_styling(bootstrap_options = c("striped",
"hover",
"condensed",
"responsive"),
font_size = 10) %>%
scroll_box(width = "100%"))
not significant | significant | |
---|---|---|
B-cell | 21 | 8 |
cytokine | 29 | 9 |
cat(" \n")
Fisher’s exact test \(p=\) 0.781
We tested for overlap between optimal biomarker clusters and biomarker type.
this_table <- table(cbind(annotation.row[,1, drop=F],
annotation.row[,2, drop=F]))
print(this_table %>% kable(escape = F, row.names = T, caption = "Table 5: Contingency table") %>%
kable_styling(bootstrap_options = c("striped",
"hover",
"condensed",
"responsive"),
font_size = 10) %>%
scroll_box(width = "100%"))
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
B-cell | 2 | 3 | 2 | 3 | 3 | 8 | 2 | 2 | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
cytokine | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 2 | 4 | 4 | 5 | 4 | 3 | 4 | 3 | 3 | 3 |
cat(" \n")
Fisher’s exact test \(p=\) 5.8310^{-10}
We tested for overlap between biomarker metaclusters and biomarker type.
this_table <- table(cbind(annotation.row[,1, drop=F],
annotation.row[,3, drop=F]))
print(this_table %>% kable(escape = F, row.names = T, caption = "Table 5: Contingency table") %>%
kable_styling(bootstrap_options = c("striped",
"hover",
"condensed",
"responsive"),
font_size = 10) %>%
scroll_box(width = "100%"))
1 | 2 | 3 | 4 | |
---|---|---|---|---|
B-cell | 5 | 10 | 6 | 8 |
cytokine | 17 | 16 | 5 | 0 |
cat(" \n")
Fisher’s exact test \(p=\) 0.00102
We tested for overlap between timeclusters and biomarker type.
this_table <- table(cbind(annotation.row[,1, drop=F],
annotation.row.time[,2, drop=F]))
print(this_table %>% kable(escape = F, row.names = T, caption = "Table 5: Contingency table") %>%
kable_styling(bootstrap_options = c("striped",
"hover",
"condensed",
"responsive"),
font_size = 10) %>%
scroll_box(width = "100%"))
1 | 2 | 3 | 4 | |
---|---|---|---|---|
B-cell | 11 | 8 | 7 | 3 |
cytokine | 12 | 19 | 3 | 4 |
cat(" \n")
Fisher’s exact test \(p=\) 0.158