Temperature Biorhythm Atlas

Paper

Diurnal rhythms of wrist temperature are associated with future disease risk in the UK Biobank
Thomas G. Brooks, Nicholas F. Lahens, Gregory R. Grant, Yvette I. Sheline, Garret A. FitzGerald MD, & Carsten Skarke
Nature Communications. August 2023

Abstract

Many chronic disease symptomatologies involve desynchronized sleep-wake cycles, indicative of disrupted biorhythms. This can be interrogated using body temperature rhythms, which have circadian as well as sleep-wake behavior/environmental evoked components. Here, we investigated the association of wrist temperature amplitudes with a future onset of disease in the UK Biobank one year after actigraphy. Among 425 disease conditions (range n=200-6,728) compared to controls (range n=62,107-91,134), a total of 73 (17%) disease phenotypes were significantly associated with decreased amplitudes of wrist temperature (Benjamini-Hochberg FDR q<0.05) and 26 (6.1%) PheCODEs passed a more stringent significance level (Bonferroni-correction a<0.05). A two-standard deviation (1.8° Celsius) lower wrist temperature amplitude corresponded to hazard ratios of 1.91 (1.58-2.31 95% CI) for NAFLD, 1.69 (1.53-1.88) for type 2 diabetes, 1.25 (1.14-1.37) for renal failure, 1.23 (1.17-1.3) for hypertension, and 1.22 (1.11-1.33) for pneumonia. This work suggests peripheral thermoregulation as a digital biomarker.

Phenome-wide Atlas

Phenotypes were categorized according to PheCODE v1.2. Select a phenotype below to explore selected results related to the chosen phenotype; see paper for full methods and supplemental data for full results. Top temperature rhythm associated phenotypes include NAFLD, type 2 diabetes, hypertension, renal failure, and pneumonia.

{{phenotype}}

Acceleration and Temperature traces

Acceleration and wrist temperature were measured using an wrist-worn Axivity AX3 for one-week periods (Doherty, et al 2017). Below are the average acceleration and wrist temperature values by case/control status across the day.

Generated from {{phenotype_results.trace_match_counts}} case-controls pairs, matched by age and sex. Temperature values are normalized to have median 0 in each individual. Solid curves give median value for the population at that time of day, and shaded regions indicate the middle 50% of the population.

Do diurnal rhythms associate with {{phenotype}}?

To determine if diurnal rhythms associate with later diagnosis with the phenotypes, the individuals who had no record of the phenotype at the time of actigraphy measurement or up to one year after were selected. Among these, diagnosis with the phenotype was modelled through a Cox proportional hazards model with rhythm robustness (wrist temperature amplitude) as a factor. Effect sizes are expressed in terms of a 1°C decrease in temperature amplitude. Results are controlled for age (at the time of actigraphy), sex, Townsend deprivation index, college education, ethnicity, BMI, alcohol use and smoking status.

p-value log Hazard Ratio (95% CI)
per 1°C
Risk Increase (95% CI)
per 1°C
Overall {{fmt_p(phenotype_results.predictive_tests.p)}} {{fmt_ci(-phenotype_results.predictive_tests.logHR, phenotype_results.predictive_tests.logHR_se)}} {{fmt(Math.exp(-2*phenotype_results.predictive_tests.logHR)*100-100)}}% {{fmt_range(Math.exp(2*(-phenotype_results.predictive_tests.logHR - 1.96*phenotype_results.predictive_tests.logHR_se))*100-100, Math.exp(2*(-phenotype_results.predictive_tests.logHR + 2 * 1.96*phenotype_results.predictive_tests.logHR_se))*100-100)}}
Males {{fmt_p(phenotype_results.predictive_tests_by_sex.male_p)}} {{fmt_ci(-phenotype_results.predictive_tests_by_sex.male_logHR, phenotype_results.predictive_tests_by_sex.male_logHR_se)}} {{fmt(Math.exp(-2*phenotype_results.predictive_tests_by_sex.male_logHR)*100-100)}}% {{fmt_range(Math.exp(2*(-phenotype_results.predictive_tests_by_sex.male_logHR - 1.96*phenotype_results.predictive_tests_by_sex.male_logHR_se))*100-100, Math.exp(2*(-phenotype_results.predictive_tests_by_sex.male_logHR + 2 * 1.96*phenotype_results.predictive_tests_by_sex.male_logHR_se))*100-100)}}
Females {{fmt_p(phenotype_results.predictive_tests_by_sex.female_p)}} {{fmt_ci(-phenotype_results.predictive_tests_by_sex.female_logHR, phenotype_results.predictive_tests_by_sex.female_logHR_se)}} {{fmt(Math.exp(-2*phenotype_results.predictive_tests_by_sex.female_logHR)*100-100)}}% {{fmt_range(Math.exp(2*(-phenotype_results.predictive_tests_by_sex.female_logHR - 1.96*phenotype_results.predictive_tests_by_sex.female_logHR_se))*100-100, Math.exp(2*(-phenotype_results.predictive_tests_by_sex.female_logHR + 2 * 1.96*phenotype_results.predictive_tests_by_sex.female_logHR_se))*100-100)}}
Age 40-55 {{fmt_p(phenotype_results.predictive_tests_by_age['age40-55_p'])}} {{fmt_ci(-phenotype_results.predictive_tests_by_age['age40-55_logHR'], phenotype_results.predictive_tests_by_age['age40-55_logHR_se'])}} {{fmt(Math.exp(-2*phenotype_results.predictive_tests_by_age['age40-55_logHR'])*100-100)}}% {{fmt_range(Math.exp(2*(-phenotype_results.predictive_tests_by_age['age40-55_logHR'] - 1.96*phenotype_results.predictive_tests_by_age['age40-55_logHR_se']))*100-100, Math.exp(2*(-phenotype_results.predictive_tests_by_age['age40-55_logHR'] + 2 * 1.96*phenotype_results.predictive_tests_by_age['age40-55_logHR_se']))*100-100)}}
Age 55-60 {{fmt_p(phenotype_results.predictive_tests_by_age['age55-60_p'])}} {{fmt_ci(-phenotype_results.predictive_tests_by_age['age55-60_logHR'], phenotype_results.predictive_tests_by_age['age55-60_logHR_se'])}} {{fmt(Math.exp(-2*phenotype_results.predictive_tests_by_age['age55-60_logHR'])*100-100)}}% {{fmt_range(Math.exp(2*(-phenotype_results.predictive_tests_by_age['age55-60_logHR'] - 1.96*phenotype_results.predictive_tests_by_age['age55-60_logHR_se']))*100-100, Math.exp(2*(-phenotype_results.predictive_tests_by_age['age55-60_logHR'] + 2 * 1.96*phenotype_results.predictive_tests_by_age['age55-60_logHR_se']))*100-100)}}
Age 60-65 {{fmt_p(phenotype_results.predictive_tests_by_age['age60-65_p'])}} {{fmt_ci(-phenotype_results.predictive_tests_by_age['age60-65_logHR'], phenotype_results.predictive_tests_by_age['age60-65_logHR_se'])}} {{fmt(Math.exp(-2*phenotype_results.predictive_tests_by_age['age60-65_logHR'])*100-100)}}% {{fmt_range(Math.exp(2*(-phenotype_results.predictive_tests_by_age['age60-65_logHR'] - 1.96*phenotype_results.predictive_tests_by_age['age60-65_logHR_se']))*100-100, Math.exp(2*(-phenotype_results.predictive_tests_by_age['age60-65_logHR'] + 2 * 1.96*phenotype_results.predictive_tests_by_age['age60-65_logHR_se']))*100-100)}}
Age 65-70 {{fmt_p(phenotype_results.predictive_tests_by_age['age65-70_p'])}} {{fmt_ci(-phenotype_results.predictive_tests_by_age['age65-70_logHR'], phenotype_results.predictive_tests_by_age['age65-70_logHR_se'])}} {{fmt(Math.exp(-2*phenotype_results.predictive_tests_by_age['age65-70_logHR'])*100-100)}}% {{fmt_range(Math.exp(2*(-phenotype_results.predictive_tests_by_age['age65-70_logHR'] - 1.96*phenotype_results.predictive_tests_by_age['age65-70_logHR_se']))*100-100, Math.exp(2*(-phenotype_results.predictive_tests_by_age['age65-70_logHR'] + 2 * 1.96*phenotype_results.predictive_tests_by_age['age65-70_logHR_se']))*100-100)}}
Age 70-80 {{fmt_p(phenotype_results.predictive_tests_by_age['age70-80_p'])}} {{fmt_ci(-phenotype_results.predictive_tests_by_age['age70-80_logHR'], phenotype_results.predictive_tests_by_age['age70-80_logHR_se'])}} {{fmt(Math.exp(-2*phenotype_results.predictive_tests_by_age['age70-80_logHR'])*100-100)}}% {{fmt_range(Math.exp(2*(-phenotype_results.predictive_tests_by_age['age70-80_logHR'] - 1.96*phenotype_results.predictive_tests_by_age['age70-80_logHR_se']))*100-100, Math.exp(2*(-phenotype_results.predictive_tests_by_age['age70-80_logHR'] + 2 * 1.96*phenotype_results.predictive_tests_by_age['age70-80_logHR_se']))*100-100)}}

There were {{phenotype_results.predictive_tests.N_cases}} cases and {{phenotype_results.predictive_tests.N_controls}} controls included. Results broken down by sex were not run due to low case counts in one or both sexes. Results broken down by age were not run due to low case counts.

Predictive tests were not run for this phenotype due to low case counts among participants with no prior record of the phenotype at the time of actigraphy recordings.

Prevalence by activity rhythm

Below, risk of {{phenotype}} stratified by the temperature amplitude across the population (without controlling for other factors, such as sex or age).

Top, distribution of amplitudes among cases and controls. Vertical dashed lines give mean values. Bottom, risk by amplitude in black line. Gray bands denote the 95% CI and dashed horizontal line gives the overall population risk. Note that temperature amplitudes are rare below 1°C or above 4°C and therefore the confidence intervals are quite large in these regions and care should be taken in interpreting patterns in these regions.

PheCODE Definition

Diagnoses of {{phenotype}} were derived from the PheCODE {{phenotype_results.phecode.phecode}}. This includes the following sub-PheCODEs:

{{phenotype_results.phecode.Subphecodes.split(";").join(', ')}}

From ICD10 codes, diagnoses were identified from the codes (with case counts from each in parentheses):

Note that some subjects may have had multiple ICD10 codes contributing to this PheCODE and so the total of all the ICD10 case counts may not match that of the PheCODE.

Subjects were further excluded based off diagnoses predating the actigraphy measurement. The following diagnosis sources always occur prior to the date of actigraphy measurement and therefore were used for exclusions.

From ICD9 codes, exclusions were identified from the codes:

{{phenotype_results.phecode.ICD9_codes.split(";").join(', ')}}

From self-reported conditions during the initial assessment interview, exclusions were identified from the following conditions:

{{phenotype_results.phecode.self_reported_condition_codes.split(';').join(', ')}}.

Lastly, subjects were excluded if they had records of any of the following PheCODEs prior to their actigraphy measurement:

{{phenotype_results.phecode.controls_excluded_phecode.split(';').join(', ')}}.
Loading results.