Data and code from: Beyond temperature: Relative humidity systematically shifts juvenile thermal performance and projected population growth in a malaria vector
Data files
Apr 24, 2026 version files 52.33 MB
-
An-stephensi-juvenile-traits.zip
52.27 MB
-
README.md
64.24 KB
Abstract
Understanding how temperature-sensitive organisms respond to environmental change is central to addressing challenges in public health, biodiversity conservation, and food security. For many ectotherms, abiotic and biotic factors shape their abundance and distribution by generating stage-specific variation in life-history traits. Although previous studies have examined temperature, rainfall, competition, and habitat quality in relation to maximal population growth rate (rm), relative humidity has rarely been incorporated into trait-based thermal performance frameworks. Using laboratory experiments, we show that relative humidity alters juvenile life-history trait responses in Anopheles stephensi, an important malaria vector. We then integrate these humidity-dependent juvenile trait responses into an analytic rm model to examine how relative humidity shifts the temperature dependence of projected population growth. Heuristic climate-suitability comparisons further illustrate that temperature–humidity interactions acting through juvenile traits alone can alter qualitative inference about when and where temperature-only models may over- or underestimate environmental suitability. These results highlight the importance of incorporating humidity alongside temperature when assessing ectotherm responses to climatic variation.
language R
license CC0 1.0
This repository contains the data, analysis code, and generated outputs within the An-stephensi-juvenile-traits.zip for a study investigating how relative humidity (RH) interacts with temperature to shape juvenile thermal performance and projected population growth in Anopheles stephensi, an important malaria vector. Any NA represents missing data.
The analyses connect controlled laboratory trait measurements to downstream trait-based population growth projections, with a particular focus on how humidity shifts:
- juvenile survival
- development time and development rate
- wing length
- projected maximal population growth rate (rm)
- sensitivity of population growth to underlying traits
At a glance
- Primary language: R
- Repository type: Reproducible research / manuscript analysis repository
- Main inputs: raw juvenile experiment workbook, wing-length workbook, adult trait summaries
- Main outputs: fitted trait curves, manuscript figures, supplementary tables, sensitivity plots, and mapping outputs
Repository structure
.
├── code/
│ ├── TPC-fitting/
│ │ ├── controlled-evaporation/
│ │ ├── uncontrolled-evaporation/
│ │ └── prepare-juvenile-trait-data.R
│ ├── manuscript-figures/
│ │ ├── manuscript-figs-controlled.R
│ │ └── manuscript-figures-uncontrolled.R
│ ├── maps/
│ ├── trait-sensitivity-analysis/
│ └── wing-lengths/
├── data/
│ ├── development/
│ ├── survival/
│ ├── wing-length/
│ ├── adult_traits.csv
│ └── raw-juvenile-experiment_results.xlsx
├── results/
│ ├── controlled-evaporation/
│ ├── uncontrolled-evaporation/
│ ├── maps/
│ ├── sensitivity-analysis/
│ └── winglengths/
└── README.md
Quickstart
1. Download the dataset
Download the archive from Dryad and extract it to a local directory.
2. Open the project
Start R in the project directory.
3. Install required packages
This repository uses R packages including:
install.packages(c(
"tidyverse", "dplyr", "tidyr", "readr", "readxl", "stringr",
"ggplot2", "patchwork", "paletteer", "scico", "cowplot", "lemon",
"gt", "knitr", "kableExtra", "magrittr", "brms", "naniar",
"RColorBrewer", "latex2exp", "devtools"
))
Some workflows may require additional system dependencies or local project dependencies.
In particular, parts of the mapping workflow reference locally loaded external code.
4. Run a core preprocessing step
To rebuild analysis-ready juvenile development data from the raw workbook:
source("code/TPC-fitting/prepare-juvenile-trait-data.R")
This script reads:
data/raw-juvenile-experiment_results.xlsx
and writes:
data/development/juvenile-development-data.csvdata/survival/juvenile-tray-survival.csv
How to reproduce the main analyses
The repository is organized around a staged workflow. Depending on whether you want to fully reproduce the analyses or only regenerate selected outputs, use the sections below.
A. Prepare analysis-ready data
Run:
code/TPC-fitting/prepare-juvenile-trait-data.R
This step reconstructs individual-level juvenile development records and tray-level survival summaries from the raw Excel workbook.
B. Fit thermal performance curves (TPCs)
Use scripts under:
code/TPC-fitting/controlled-evaporation/code/TPC-fitting/uncontrolled-evaporation/
These folders contain workflows for fitting juvenile trait responses under different evaporation conditions for:
- development
- survival
- maximal population growth rate (rm)
C. Generate manuscript figures and supplementary tables
Run:
code/manuscript-figures/manuscript-figs-controlled.Rcode/manuscript-figures/manuscript-figures-uncontrolled.R
These scripts read saved model outputs from results/ and generate:
- manuscript figure panels
- survival distribution plots
- supplementary LaTeX tables
- development-time visualizations
D. Reproduce wing-length analyses
Use scripts in:
code/wing-lengths/
Notable files include:
wing-lengths-controlled.Rwing-lengths-uncontrolled.Rfixed-effects-comparison-original-vs-hierarchical.Rwl-vs-dt-simple-slopes.R
These analyses evaluate how juvenile environmental conditions influence adult wing length.
E. Reproduce sensitivity analyses
Run:
code/trait-sensitivity-analysis/sensitivity-analysis.R
This script combines fitted juvenile trait parameters with adult trait summaries to quantify how different components contribute to variation in projected population growth.
F. Reproduce derived rm and mapping workflows
Use files in:
code/maps/
Including:
deriving-temp-dependent-rm.Rmddescriptive-analyses.Rmd
Note: the mapping workflow includes references to local paths and an external local codebase (
disclim), so those analyses may not run out-of-the-box on a fresh machine without additional setup.
Key files and what they do
Data preparation
code/TPC-fitting/prepare-juvenile-trait-data.R
Parses the raw juvenile workbook and writes processed development and tray-level survival datasets.
Manuscript output generation
code/manuscript-figures/manuscript-figs-controlled.R
Builds controlled-evaporation manuscript figures and supplementary LaTeX tables from saved model results.code/manuscript-figures/manuscript-figures-uncontrolled.R
Produces analogous outputs for the uncontrolled-evaporation workflow.
Sensitivity analysis
code/trait-sensitivity-analysis/sensitivity-analysis.R
Quantifies the contribution of development, survival, and temperature effects to projected rm.
Wing-length analyses
code/wing-lengths/wing-lengths-controlled.R
Fits or loads hierarchical wing-length models and generates wing-length regression figures.
Mapping and derived population growth workflows
code/maps/deriving-temp-dependent-rm.Rmd
Derives temperature-dependent rm from fitted trait curves and visualizes RH-specific relationships.
Data overview
Main input files
data/raw-juvenile-experiment_results.xlsx— raw juvenile experiment datadata/adult_traits.csv— adult trait from published literature used in downstream population growth calculationsdata/wing-length/Anoph.Larval_experiment_results_w_supplemental_wings.xlsx— wing-length workbook
File: raw-juvenile-experiment_results.xlsx
Sheet descriptions
| Sheet | Description |
|---|---|
| All | Main daily dataset with pupae counts, adult emergence counts, water added, mortality, and treatment metadata by tray. |
| Incubator_details | Incubator block design showing assigned temperature and relative humidity combinations. |
| Water | Daily water added or recorded for each tray. |
| Adults_ordered | Daily adult emergence counts by tray, with totals, sex counts, emergence proportion, timing metrics, and sex ratio. |
| Females_ordered | Daily female emergence counts by tray, with totals and emergence timing metrics. |
| Males_ordered | Daily male emergence counts by tray, with totals and emergence timing metrics. |
| Pupae_ordered | Daily pupae counts by tray and treatment. |
| Wing_lengths | Individual adult wing length measurements and associated treatment metadata. |
| Notes | Free-text experimental notes by day and date. |
Variables by sheet
Sheet: All
| Variable | Description | Units |
|---|---|---|
| Day | Observation day index | days |
| Date | Calendar date of observation | date |
| Temperature | Temperature treatment | °C |
| RH | Relative humidity treatment | % |
| Evaporation | Evaporation treatment; C = control, E = evaporation treatment |
categorical |
| Block | Experimental block identifier | unitless |
| Tray | Tray number | unitless |
| Pupae_count | Number of pupae recorded in the tray | count |
| Adult_count | Number of adults emerged from the tray | count |
| Water_added(ml) | Volume of water added to the tray | mL |
| Dead | Number of dead individuals recorded | count |
| Exp.Day | Experimental day index | days |
Sheet: Incubator_details
| Variable | Description | Units |
|---|---|---|
| Original design | Block or design label | unitless |
| Temp | Temperature or humidity value used in the incubator design table | °C or % depending on row context |
| Unnamed: 2–Unnamed: 7 | Additional incubator design columns showing treatment combinations across temperatures and relative humidity levels | °C or % depending on row context |
Sheet: Water
| Variable | Description | Units |
|---|---|---|
| TRAY CODE | Tray identifier combining temperature, relative humidity, evaporation treatment, and tray number | unitless |
| Day / Day.1–Day.41 | Daily water amount recorded or added for each tray | mL |
Sheet: Adults_ordered
| Variable | Description | Units |
|---|---|---|
| TRAY CODE | Tray identifier combining temperature, relative humidity, evaporation treatment, and tray number | unitless |
| Block | Experimental block identifier | unitless |
| Temp | Temperature treatment | °C |
| RH | Relative humidity treatment | % |
| Evaporation | Evaporation treatment; C = control, E = evaporation treatment |
categorical |
| Tray | Tray number | unitless |
| Day / Day.1–Day.41 | Number of adults emerging on each experimental day | count |
| Total | Total number of adults emerged | count |
| Males | Total number of emerged males | count |
| Females | Total number of emerged females | count |
| Unknown | Total number of emerged adults with unknown sex | count |
| Prop.emerged | Proportion of original individuals that emerged as adults | proportion |
| Half.prop | Half of Prop.emerged; used to identify emergence timing |
proportion |
| Day.occurred | Experimental day on which the half-emergence threshold occurred | days |
| Inverse | Inverse of Day.occurred |
1/day |
| SexRatio | Male:female sex ratio | ratio |
| RatioNum | Numeric representation of sex ratio | unitless |
Sheets: Females_ordered and Males_ordered
| Variable | Description | Units |
|---|---|---|
| replicate | Tray identifier combining temperature, relative humidity, evaporation treatment, and tray number | unitless |
| block | Experimental block identifier | unitless |
| temp | Temperature treatment | °C |
| rh | Relative humidity treatment | % |
| evap | Evaporation treatment; C = control, E = evaporation treatment |
categorical |
| trayno | Tray number | unitless |
| d0–d41 | Number of females or males emerging on each experimental day | count |
| Total | Total number of females or males emerged | count |
| Prop.emerged | Proportion of original individuals that emerged as females or males | proportion |
| Half.prop | Half of Prop.emerged; used to identify emergence timing |
proportion |
| Day.occurred | Experimental day on which the half-emergence threshold occurred | days |
| Inverse | Inverse of Day.occurred |
1/day |
Sheet: Pupae_ordered
| Variable | Description | Units |
|---|---|---|
| TRAY CODE | Tray identifier combining temperature, relative humidity, evaporation treatment, and tray number | unitless |
| Block | Experimental block identifier | unitless |
| Temp | Temperature treatment | °C |
| RH | Relative humidity treatment | % |
| Evaporation | Evaporation treatment; C = control, E = evaporation treatment |
categorical |
| Tray | Tray number | unitless |
| Day / Day.1–Day.41 | Number of pupae recorded on each experimental day | count |
| Total | Total number of pupae recorded | count |
Sheet: Wing_lengths
| Variable | Description | Units |
|---|---|---|
| Sample | Unique identifier for each measured adult mosquito | unitless |
| MosquitoAdultFemale | Female adult identifier | unitless |
| TRAY CODE | Tray identifier combining temperature, relative humidity, evaporation treatment, and tray number | unitless |
| Treatment | Temperature-relative humidity treatment combination | categorical |
| Block | Experimental block identifier | unitless |
| Temp | Temperature treatment | °C |
| RH | Relative humidity treatment | % |
| Evaporation | Evaporation treatment; C = control, E = evaporation treatment |
categorical |
| Tray | Tray number | unitless |
| DateEmerged | Date the adult emerged | date |
| ExpDay | Experimental day of emergence | days |
| WingLength | Measured adult wing length | mm |
Sheet: Notes
| Variable | Description | Units |
|---|---|---|
| Day | Experimental day index | days |
| Date | Calendar date | date |
| Note | Free-text experimental note | text |
File: adult_traits.csv
Literature-derived adult mosquito trait data used for thermal trait analyses.
| Variable | Description | Units |
|---|---|---|
| Unnamed: 0 | Row index from the original dataset | unitless |
| trait.name | Trait identifier. Values include pdr, e2a, efd, a, bc.succ, mdr, and mu. |
categorical |
| T | Temperature at which the trait was measured | °C |
| trait | Trait value corresponding to trait.name |
trait-specific |
| ref | Literature source for the trait estimate | text |
| trait2 | Secondary trait value, where applicable | trait-specific |
| trait2.name | Identifier for the secondary trait value. For example, bc.nobs indicates the number of observations used for biting success. |
categorical |
| specie | Mosquito species name | text |
| parasite | Plasmodium parasite species associated with the trait measurement | text |
Trait abbreviations:
| Abbreviation | Description | Units |
|---|---|---|
pdr |
Parasite development rate | 1/days |
e2a |
Egg-to-adult development rate | 1/days |
efd |
Eggs produced per female per day | eggs/female/day |
a |
Biting rate | bites/mosquito/day |
bc.succ |
Biting success | proportion |
mdr |
Mosquito mortality rate | 1/days |
mu |
Adult mosquito mortality rate | 1/days |
bc.nobs |
Number of observations associated with biting success estimate | count |
File: Anoph.Larval_experiment_results_w_supplemental_wings.xlsx
Sheet descriptions
| Sheet | Description |
|---|---|
| All | Main dataset containing daily observations of larval development, environmental conditions, and emergence counts. |
| Incubator_details | Information on incubator setup and environmental conditions (format partially unstructured). |
| Water | Daily water addition or water-related measurements per tray across experimental days. |
| Adults_ordered | Adult emergence counts per day, organised by tray and experimental conditions, with summary metrics (e.g. totals, proportions, sex ratio). |
| Females_ordered | Female emergence counts per day with derived metrics (e.g. proportion emerged, timing metrics). |
| Males_ordered | Male emergence counts per day with derived metrics analogous to the female dataset. |
| Pupae_ordered | Pupae counts recorded daily per tray and treatment group. |
| Wing_lengths | Individual-level wing length measurements with associated metadata (e.g. sex, treatment, emergence date). |
| Notes | Free-text notes recorded during the experiment by date. |
Variables by sheet
Sheet: All
| Variable | Description | Units |
|---|---|---|
| Day | Experimental day index | days |
| Date | Calendar date of observation | date |
| Temperature | Incubator or environmental temperature | °C |
| RH | Relative humidity | % |
| Evaporation | Evaporation treatment or level | unitless / categorical |
| Block | Experimental block identifier | unitless |
| Tray | Tray identifier | unitless |
| Pupae_count | Number of pupae observed | count |
| Adult_count | Number of adults emerged | count |
| Water_added(ml) | Volume of water added | mL |
| Dead | Number of dead individuals | count |
| Exp.Day | Experimental day (alternative or derived) | days |
Sheet: Adults_ordered (similar structure applies to Females/Males)
| Variable | Description | Units |
|---|---|---|
| TRAY CODE / replicate | Tray identifier | unitless |
| Block / block | Experimental block | unitless |
| Temp / temp | Temperature treatment | °C |
| RH / rh | Relative humidity | % |
| Evaporation / evap | Evaporation treatment | unitless |
| Tray / trayno | Tray number | unitless |
| d0–d41 | Number of individuals emerging on each day | count |
| Total | Total number of individuals emerged | count |
| Males / Females / Unknown | Counts by sex (Adults_ordered only) | count |
| Prop.emerged | Proportion emerged | proportion |
| Half.prop | Half-emergence metric (e.g. median emergence point) | proportion |
| Day.occurred | Day at which a threshold event occurred | days |
| Inverse | Inverse of emergence metric | unitless |
| SexRatio | Ratio of males to females | ratio |
| RatioNum | Numeric representation of sex ratio | unitless |
Sheet: Pupae_ordered
| Variable | Description | Units |
|---|---|---|
| TRAY CODE | Tray identifier | unitless |
| Block | Experimental block | unitless |
| Temp | Temperature | °C |
| RH | Relative humidity | % |
| Evaporation | Evaporation treatment | unitless |
| Tray | Tray number | unitless |
| Day / Day.1–Day.41 | Pupae counts per day | count |
| Total | Total pupae count | count |
Sheet: Water
| Variable | Description | Units |
|---|---|---|
| TRAY CODE | Tray identifier | unitless |
| Day columns | Daily water measurements or additions | mL (assumed) |
Sheet: Wing_lengths
| Variable | Description | Units |
|---|---|---|
| Sample | Sample identifier | unitless |
| Female | Sex indicator (female = 1/TRUE) | categorical |
| TRAYCODE | Tray identifier | unitless |
| Treatment | Experimental treatment group | categorical |
| Block | Experimental block | unitless |
| Temp | Temperature | °C |
| RH | Relative humidity | % |
| Evaporation | Evaporation treatment | unitless |
| Tray | Tray number | unitless |
| DateEmerged | Date of emergence | date |
| ExpDay | Experimental day of emergence | days |
| WingLength | Wing length measurement | mm |
| note | Additional notes | text |
Sheet: Notes
| Variable | Description | Units |
|---|---|---|
| Day | Experimental day | days |
| Date | Calendar date | date |
| Note | Free-text observation | text |
Processed data directories
Folder: data/development/
Files in this folder contain juvenile development-time data and diagnostic summaries for variance components and intraclass correlation estimates.
File: juvenile-development-data.csv
Individual-level juvenile development records by tray and treatment.
| Variable | Description | Units |
|---|---|---|
| replicate | Tray-level replicate identifier combining temperature, relative humidity, evaporation treatment, and tray number | unitless |
| block | Experimental block identifier | unitless |
| temp | Temperature treatment | °C |
| rh | Relative humidity treatment | % |
| evap | Evaporation treatment; C = control, E = evaporation treatment |
categorical |
| tray_no | Tray number within block/treatment | unitless |
| development_time | Juvenile development time | days |
| development_rate | Reciprocal of development time | 1/days |
File: diagnostics-summary_icc_by_treatment.csv
Treatment-level diagnostic summary of tray-level variance and intraclass correlation estimates.
| Variable | Description | Units |
|---|---|---|
| temp | Temperature treatment | °C |
| rh | Relative humidity treatment | % |
| icc_tray | Intraclass correlation coefficient for tray-level effects within the treatment | proportion |
| var_tray | Estimated tray-level variance component | days² |
| var_resid | Estimated residual variance component | days² |
| note | Model diagnostic note; for example, ok or singular |
text |
File: diagnostics-summary_var_components_global.csv
Global variance-component diagnostic summary across treatments.
| Variable | Description | Units |
|---|---|---|
| var_block | Estimated block-level variance component | days² |
| var_tray_nested | Estimated tray-level variance component nested within block/treatment | days² |
| var_resid | Estimated residual variance component | days² |
| icc_block | Intraclass correlation coefficient for block-level effects | proportion |
| icc_tray | Intraclass correlation coefficient for tray-level effects | proportion |
Folder: data/survival/
Files in this folder contain juvenile survival data at individual and tray levels, plus an R script used to generate survival distribution plots.
File: juvenile-survival-data.csv
Individual-level juvenile survival dataset, formatted for binomial survival analysis.
| Variable | Description | Units |
|---|---|---|
| replicate | Tray-level replicate identifier combining temperature, relative humidity, evaporation treatment, and tray number | unitless |
| temp | Temperature treatment | °C |
| rh | Relative humidity treatment | % |
| evap | Evaporation treatment; C = control, E = evaporation treatment |
categorical |
| tray | Tray number within treatment/block | unitless |
| binomialsurvival | Binary survival outcome for an individual; 1 = survived to adult emergence, 0 = did not survive |
binary |
File: juvenile-tray-survival.csv
Tray-level juvenile survival summary dataset.
| Variable | Description | Units |
|---|---|---|
| replicate | Tray-level replicate identifier combining temperature, relative humidity, evaporation treatment, and tray number | unitless |
| block | Experimental block identifier | unitless |
| temp | Temperature treatment | °C |
| rh | Relative humidity treatment | % |
| evap | Evaporation treatment; C = control, E = evaporation treatment |
categorical |
| tray_no | Tray number within block/treatment | unitless |
| n_survivors | Number of individuals surviving to adult emergence in the tray | count |
File: survival-distributions.R
R script used to generate a bar plot of juvenile survival distributions across temperature and relative humidity treatments.
| Object or output | Description |
|---|---|
survival_dat |
Processed survival dataset used for plotting, with relative humidity converted to a factor. |
survival_dist |
ggplot2 plot object showing numbers of survivors by temperature and relative humidity. |
survival-dists.pdf |
PDF version of the survival distribution plot. |
survival-dists.rds |
Saved R object version of the survival distribution plot. |
Folder: data/wing-length/
Files in this folder contain the processed wing length dataset and treatment-level averages.
File: winglength-data.csv
Individual-level wing length measurements for adult mosquitoes from the larval experiment.
| Variable | Description | Units |
|---|---|---|
| Sample | Unique identifier for each measured individual | unitless |
| TRAY CODE | Tray-level identifier combining temperature, relative humidity, block, and tray number | unitless |
| Treatment | Treatment combination, formatted as temperature-relative humidity | categorical |
| Block | Experimental block identifier | unitless |
| Temp | Temperature treatment | °C |
| RH | Relative humidity treatment | % |
| Tray | Tray number within block/treatment | unitless |
| ExpDay | Experimental day on which the individual emerged or was recorded | days |
| WingLength | Measured wing length | mm |
File: avg-winglength.csv
Treatment-level summary of wing length measurements, calculated from winglength-data.csv.
| Variable | Description | Units |
|---|---|---|
| Treatment | Treatment combination, formatted as temperature-relative humidity | categorical |
| Temp | Temperature treatment | °C |
| RH | Relative humidity treatment | % |
| mean | Mean wing length for individuals in that treatment group | mm |
Results overview
Generated outputs are primarily stored in:
results/controlled-evaporation/results/uncontrolled-evaporation/results/sensitivity-analysis/results/maps/results/winglengths/
These include:
- fitted model objects (
.rds) - figures (
.pdf) - supplementary tables (
.tex) - parameter summaries
- sensitivity-analysis outputs
Folder: results/winglengths/controlled/
This folder contains model objects, model summaries, correlation summaries, and figures for analyses of adult wing length under controlled temperature and relative humidity treatments.
| File | Description |
|---|---|
model_fits.rds |
Saved R object containing fitted wing length model(s). |
model_fits.RData |
R workspace file containing fitted wing length model object(s). |
model_fits_hier_consistent.rds |
Saved R object containing hierarchical wing length model(s). |
winglength-regressions.pdf |
Figure showing wing length regressions across temperature and relative humidity treatments. |
linearModelResults.tiff |
TIFF figure showing modeled wing length responses to temperature and relative humidity. |
TTEvsWLv1.tiff |
TIFF figure showing tray mean development time versus tray mean wing length. |
TTEvsWLv2.tiff |
Alternative TIFF version of tray mean development time versus tray mean wing length. |
marginal_wl_vs_dt_by_rh.pdf |
Marginal effects plot showing predicted wing length as a function of tray mean development time by relative humidity. |
wl_vs_dt_tray_scatter_by_rh.pdf |
Scatterplot of tray mean wing length versus tray mean development time by relative humidity. |
CSV files
File: fixed_effects_comparison_tray_vs_hier.csv
Comparison of fixed-effect estimates between tray-level and hierarchical wing length models.
| Variable | Description | Units |
|---|---|---|
| term | Model term | categorical |
| estimate_orig | Estimate from the original tray-level model | mm |
| conf.low_orig | Lower confidence interval for original model estimate | mm |
| conf.high_orig | Upper confidence interval for original model estimate | mm |
| estimate_hier | Estimate from the hierarchical model | mm |
| conf.low_hier | Lower confidence interval for hierarchical model estimate | mm |
| conf.high_hier | Upper confidence interval for hierarchical model estimate | mm |
| diff | Difference between hierarchical and original estimates | mm |
| overlaps | Whether confidence intervals overlap | logical |
File: fixed_effects_pct_change_key_terms.csv
Percent change in key fixed-effect estimates between original and hierarchical models.
| Variable | Description | Units |
|---|---|---|
| term | Model term | categorical |
| estimate_orig | Estimate from the original model | mm |
| conf.low_orig | Lower confidence interval for original model estimate | mm |
| conf.high_orig | Upper confidence interval for original model estimate | mm |
| estimate_hier | Estimate from the hierarchical model | mm |
| conf.low_hier | Lower confidence interval for hierarchical model estimate | mm |
| conf.high_hier | Upper confidence interval for hierarchical model estimate | mm |
| diff | Difference between hierarchical and original estimates | mm |
| overlaps | Whether confidence intervals overlap | logical |
| pct_change | Percent change from original to hierarchical estimate | % |
File: tray_wl_vs_dt_correlation_by_rh.csv
Pearson correlations between tray mean wing length and tray mean development time, calculated separately by relative humidity treatment.
| Variable | Description | Units |
|---|---|---|
| RH | Relative humidity treatment | % |
| r_pearson | Pearson correlation coefficient | unitless |
| n | Number of trays included | count |
File: tray_wl_vs_dt_overall_correlation.csv
Overall Pearson correlation between tray mean wing length and tray mean development time.
| Variable | Description | Units |
|---|---|---|
| overall_r | Overall Pearson correlation coefficient | unitless |
File: wl_vs_dt_fixed_effects.csv
Fixed-effect estimates from the model of wing length as a function of tray mean development time, temperature, and relative humidity.
| Variable | Description | Units |
|---|---|---|
| effect | Effect type from model output | categorical |
| component | Model component | categorical |
| term | Model term | categorical |
| estimate | Estimated fixed-effect coefficient | mm |
| std.error | Standard error of the estimate | mm |
| conf.low | Lower confidence interval | mm |
| conf.high | Upper confidence interval | mm |
File: wl_vs_dt_simple_slopes_by_rh.csv
Estimated simple slopes for the association between tray mean development time and wing length at each relative humidity treatment.
| Variable | Description | Units |
|---|---|---|
| RH | Relative humidity treatment | % |
| slope_mean | Mean estimated slope | mm/day |
| slope_q2.5 | Lower 2.5% quantile of estimated slope | mm/day |
| slope_q97.5 | Upper 97.5% quantile of estimated slope | mm/day |
| prob_pos | Probability that the slope is positive | probability |
| prob_neg | Probability that the slope is negative | probability |
Folder: results/winglengths/uncontrolled/
This folder contains model outputs and figures for analyses of adult wing length under uncontrolled or partially controlled environmental conditions.
| File | Description |
|---|---|
uncontrolled_model_fits.rds |
Saved R object containing fitted wing length model(s) for the uncontrolled experiment. |
uncontrolled-winglength-regressions.pdf |
Figure showing wing length regressions across temperature under uncontrolled conditions. |
linearModelResults.tiff |
TIFF figure showing modeled wing length responses to temperature and relative humidity under uncontrolled conditions. |
TTEvsWLv1.tiff |
TIFF figure showing tray mean development time versus tray mean wing length. |
TTEvsWLv2.tiff |
Alternative TIFF version of tray mean development time versus tray mean wing length. |
Figure notes
- The regression plots show a negative relationship between temperature and wing length, with variation across relative humidity treatments (e.g. 90%, 75%, 60%).
- Scatterplots of tray mean development time versus wing length illustrate positive associations, with fitted lines differing by relative humidity treatment.
These files are provided to support reproducibility and visualization of model results; primary reusable data are located in the data/ directory.
Folder: results/controlled-evaporation/juvenile-traits/
This folder contains model outputs and figures describing temperature-dependent juvenile traits (development rate, development time, and survival) under controlled evaporation treatments across relative humidity levels.
| File | Description |
|---|---|
development-time-fits.rds |
Saved R object containing fitted thermal performance models for juvenile development time. |
development-rate-panel-AVG.rds |
Saved R object containing processed data and model outputs used to generate development rate panel figures. |
development-rate-tmax-vs-tmin-AVG.pdf |
Figure showing relationships between minimum and maximum temperatures (Tmin vs Tmax) for development rate thermal limits. |
development-rate-pk-tmax-vs-tmin-AVG.pdf |
Multi-panel figure summarizing development rate thermal performance, including peak temperature (Tpk), Tmax, and Tmin across relative humidity treatments. |
survival-panel-AVG.rds |
Saved R object containing processed data and model outputs used to generate survival panel figures. |
survival-dists.pdf |
Figure showing the distribution of surviving individuals across temperatures and relative humidity treatments. |
survival-dists.rds |
Saved R object used to generate survival distribution plots. |
survival-tmax-vs-tmin-AVG.pdf |
Figure showing Tmin–Tmax relationships for survival probability. |
survival-pk-tmax-vs-tmin-AVG.pdf |
Multi-panel figure summarizing survival thermal performance, including peak survival probability (Tpk), Tmin, and Tmax. |
manuscript-panel-both-traits.pdf |
Combined multi-panel figure showing both survival probability and development rate thermal performance curves across relative humidity treatments. |
alpha.pdf |
Supplemental figure of development times used in rm calculation. |
Figure notes
- Development rate increases with temperature up to a peak (Tpk), then declines at higher temperatures, with differences across relative humidity treatments.
- Development time decreases with increasing temperature, with distinct patterns across relative humidity levels.
- Survival shows a unimodal relationship with temperature, with peak survival probabilities at intermediate temperatures and variation across relative humidity treatments.
- Total number of survivors declines at extreme temperatures, with relative humidity influencing survival outcomes.
These files are provided to document model outputs and figures supporting the analysis. Primary reusable datasets are located in the data/ directory.
Folder: results/controlled-evaporation/rm-maximal-population-growth-rate/
This folder contains parameter estimates, model outputs, and figures describing temperature-dependent maximal population growth rate (rm) and associated thermal performance metrics across relative humidity treatments.
CSV files
File: rm-params.csv
Estimated parameters describing thermal performance curves for maximal population growth rate.
| Variable | Description | Units |
|---|---|---|
| RH | Relative humidity treatment | % |
| Topt | Temperature at which rm is maximized (optimal temperature) | °C |
| ropt | Maximum population growth rate at Topt | 1/days |
| Tmin | Lower thermal limit for population growth | °C |
| Tmax | Upper thermal limit for population growth | °C |
File: alpha-MAP-parameters.csv
Maximum a posteriori (MAP) estimates of fitted model parameters for the rm model.
| Variable | Description | Units |
|---|---|---|
| parameter | Model parameter name | categorical |
| estimate | MAP estimate of the parameter | parameter-specific |
| RH | Relative humidity treatment | % |
File: zj-MAP-parameters.csv
Additional MAP parameter estimates (e.g. alternative parameterization or component model inputs used in calculating rm).
| Variable | Description | Units |
|---|---|---|
| parameter | Model parameter name | categorical |
| estimate | MAP estimate of the parameter | parameter-specific |
| RH | Relative humidity treatment | % |
Model objects
| File | Description |
|---|---|
ropt-tmax-vs-tmin.rds |
Saved R object containing processed data and/or model outputs used to generate thermal limit comparison plots. |
Figures
| File | Description |
|---|---|
tmax-vs-tmin.pdf |
Scatterplot showing relationships between minimum and maximum thermal limits (Tmin vs Tmax) across relative humidity treatments. |
ropt-tmax-vs-tmin.pdf |
Multi-panel figure showing thermal performance of maximal population growth rate, including rm vs temperature, ropt vs Topt, and Tmin–Tmax relationships. |
tmax-vs-tmin-perturbations.pdf |
Sensitivity analysis showing how scaling or perturbations of parameters affect ropt and thermal limits. |
Figure notes
- The thermal performance curve for rm is unimodal, increasing with temperature up to an optimum (Topt) and declining at higher temperatures.
- Optimal growth rates (ropt) vary across relative humidity treatments, with modest shifts in Topt.
- Thermal limits (Tmin and Tmax) define the viable temperature range for population growth and are relatively stable across parameter perturbations.
These files document derived model outputs and sensitivity analyses; primary input data are located in the data/ directory.
Folder: results/uncontrolled-evaporation/
Note:
Files in this folder parallel those in the controlled workflow but correspond to analyses under uncontrolled environmental conditions. File structure is broadly similar, although some filenames include an -uncontrolled suffix.
Folder: results/sensitivity-analysis/
This folder contains sensitivity analyses evaluating how changes in key biological parameters influence maximal population growth rate (rm) across temperature and relative humidity treatments.
Controlled sensitivity (by relative humidity)
| File | Description |
|---|---|
controlled_rm_overlays_RH30.pdf |
Sensitivity of rm(T) to parameter scaling at 30% relative humidity. |
controlled_rm_overlays_RH45.pdf |
Sensitivity of rm(T) to parameter scaling at 45% relative humidity. |
controlled_rm_overlays_RH60.pdf |
Sensitivity of rm(T) to parameter scaling at 60% relative humidity. |
controlled_rm_overlays_RH75.pdf |
Sensitivity of rm(T) to parameter scaling at 75% relative humidity. |
controlled_rm_overlays_RH90.pdf |
Sensitivity of rm(T) to parameter scaling at 90% relative humidity. |
These figures show how scaling key parameters (e.g. fecundity, development, or combined effects) alters the temperature-dependent growth rate curve. Multiple curves represent different scaling factors applied to model components.
Summary CSV files
File: controlled_rm_summary_baseline_and_scaled_constants.csv
Summary of baseline and scaled parameter scenarios used in sensitivity analysis.
| Variable | Description | Units |
|---|---|---|
| temperature | Temperature at which rm is evaluated | °C |
| RH | Relative humidity treatment | % |
| scenario | Parameter scaling scenario (e.g. baseline, scaled values) | categorical |
| rm | Estimated maximal population growth rate | 1/days |
File: controlled_rm_summary_deltas_vs_baseline.csv
Differences in rm between scaled scenarios and the baseline model.
| Variable | Description | Units |
|---|---|---|
| temperature | Temperature at which comparison is made | °C |
| RH | Relative humidity treatment | % |
| scenario | Parameter scaling scenario | categorical |
| delta_rm | Change in rm relative to baseline | 1/days |
File: uncontrolled_trait_sensitivity_banded_summary.csv
Summary of sensitivity of rm to different trait components under uncontrolled conditions.
| Variable | Description | Units |
|---|---|---|
| temperature | Temperature at which sensitivity is evaluated | °C |
| trait | Trait contributing to sensitivity (e.g. survival, development time, fecundity) | categorical |
| sensitivity | Contribution of the trait to changes in rm | unitless |
| RH | Relative humidity treatment | % |
Figures (combined and comparative)
| File | Description |
|---|---|
controlled_sensitivity_baseline_fixed_y.pdf |
Sensitivity of rm across temperature with baseline parameterization (fixed y-axis scaling). |
uncontrolled_sensitivity_baseline_only.pdf |
Baseline sensitivity of rm under uncontrolled conditions. |
uncontrolled_sensitivity_ensemble_contributions.pdf |
Decomposition of sensitivity contributions from multiple trait components under different scaling scenarios. |
uncontrolled-sensitivity-analysis.pdf |
Summary figure of sensitivity results under uncontrolled conditions. |
sensitivity-analysis.pdf |
Overall summary of sensitivity analyses across traits and treatments. |
Figure notes
- Sensitivity analyses show how scaling key parameters (e.g. fecundity, development time, and survival) alters the shape and magnitude of rm(T) curves across temperatures.
- Contributions of different traits to rm sensitivity vary with temperature, with strong effects often observed near thermal limits.
- Ensemble analyses partition the relative contribution of survival, development time, fecundity, and adult mortality to overall sensitivity patterns.
These files document sensitivity analyses supporting interpretation of model outputs; primary datasets are located in the data/ directory.
Folder: results/maps/
This folder contains spatial projections of temperature, relative humidity, and derived maximal population growth rate (rm) across geographic regions (Africa and India), summarised by season.
Climate maps
| File | Description |
|---|---|
combined_climate_plots_align.pdf |
Multi-panel maps of seasonal temperature and relative humidity across Africa and India. |
These maps show seasonal variation in:
- Temperature (°C)
- Relative humidity (%)
For example, seasonal climate patterns differ substantially between regions, with warmer temperatures and lower humidity in some seasons and regions.
Population growth rate maps
| File | Description |
|---|---|
rm_combined_plots_aligned.pdf |
Multi-panel maps of modeled maximal population growth rate (rm) and seasonal changes (Δrm) across Africa and India. |
- rm maps show spatial variation in potential population growth.
- Δrm maps show seasonal differences relative to a baseline.
For example, growth rates tend to be higher in warmer regions and seasons, with reductions in cooler or drier areas.
Regional seasonal maps
| File | Description |
|---|---|
seasonal-africa.pdf |
Seasonal maps of rm and Δrm across Africa. |
seasonal-india.pdf |
Seasonal maps of rm and Δrm across India. |
seasonal-both.pdf |
Combined seasonal maps for both Africa and India. |
- Each file includes panels for seasonal groupings (e.g. Jan–Mar, Apr–Jun, Jul–Sep, Oct–Dec).
- rm maps show absolute growth rates, while Δrm maps show deviations across seasons.
For example, Africa shows strong spatial gradients in rm, with higher values in warmer regions and seasonal shifts across the continent, while India exhibits pronounced monsoon-driven variation.
Notes
- These maps are derived from combining climate data (temperature and humidity) with experimentally parameterised thermal performance models.
- Results illustrate how environmental variation shapes spatial and seasonal patterns in mosquito population growth potential.
- Primary input data and model parameterisation are described in the
data/andresults/folders.
Reproducibility notes
- Run scripts from the directory root so relative paths resolve correctly.
- Some scripts assume that intermediate files in
results/already exist. - Some workflows are intended for regeneration of final manuscript outputs rather than full pipeline execution from scratch.
- The repository contains both raw inputs and many saved derived outputs, which helps support partial reproduction without rerunning every model.
Study summary
This repository supports analyses testing how relative humidity systematically shifts juvenile thermal performance in Anopheles stephensi and how those shifts propagate into projected maximal population growth.
The workflow links:
- laboratory juvenile trait measurements,
- fitted thermal response models,
- projected rm across temperature and RH,
- manuscript figures, tables, and supporting analyses.
Citation
If you use this repository, please cite the associated manuscript:
Beyond temperature: Relative humidity systematically shifts juvenile thermal performance and projected population growth in a malaria vector
Journal reference to be added here when it becomes available
License
The code in this repository is released under CC0 1.0 Universal (Public Domain Dedication):
https://creativecommons.org/publicdomain/zero/1.0/
Data licensing and reuse terms are governed by the associated Dryad deposit (or other associated data repository), where applicable.
Contact
For questions about the analyses, data, or manuscript context, please contact the repository maintainer or manuscript authors.
