Summary
This study used a murine model to investigate how Intermittent Hypoxia (IH), which mimics apnea of prematurity, affects cerebellar vascular development, combining transcriptomic analysis of angiogenesis-related genes with innovative 3D morphological analysis of the cerebellar vascular network. Data was collected across multiple developmental stages (P4, P8, P12, P21, P70), with multiple mice per stage and condition (Normoxia vs IH).
Data
The project analyzed two complementary datasets from a murine model of intermittent hypoxia (IH):
RT-qPCR targeted an angiogenesis-focused gene panel curated via network and pathway analysis using Cytoscape with STRING-DB and ClueGO to prioritize regulators of vascular development. Primers were designed in Primer Express from NCBI sequences, validated by linear regression on serial dilutions, and checked for specificity by NCBI BLAST. Expression was quantified as .
3D morphological data was obtained from immunohistochemically-stained cerebellar vasculature using innovative tissue clearing protocols. The clearing technique enabled quantification of multiple vascular parameters including total volume, network length, surface area, segment characteristics, and branching patterns, analyzed at both total cerebellar level and stratified by depth (superficial vs deep layers).
Supplementary data
Data preprocessing involved standardizing variable names and metadata using a data dictionary to ensure consistency:
The ‘gene data’ file provides detailed information about the genes analyzed in this study, organized by biological pathways (and how they affect those pathways), and including gene functions, NCBI references, and supporting literature.
Models
Models were fitted using the glmmTMB package (Brooks et al., 2017), and model fit was assessed using a combination of diagnostic plots, statistical tests, and posterior predictive checks using simulated residuals. Model validation employed the DHARMa (Hartig, 2022) and performance (Lüdecke et al., 2021) packages.
Gene expression data ( values) were modeled using simple linear models per gene (Gaussian likelihood with identity link function), with the condition (IH vs control) as the single fixed effect.
Model equation
glmmTMB(dcq ~ condition, family = gaussian("identity"))
Model fit
Random sample of 10 models checked for quality of fit using performance::check_model()
:
Vascular morphology responses were modeled using generalized linear mixed-effects models (GLMMs), with condition, stage, and level (superficial vs deep) as fixed effects. Gamma likelihoods were used for continuous measures, and negative binomial for count data, both with log link functions. Each animal contributed multiple measurements, requiring random-effects to account for pseudo-replication. Cerebellar volume was used as an offset to account for differences in overall brain size between animals and developmental stages. Variance was assumed to vary by developmental stage, and was modeled using a dispersion parameter.
Here is a sample of two of the models we fitted to study changes in cerebellar vascular morphology:
Vascular volume data was modeled using a Gamma distribution to account for strict positivity and positive skewness.
Model equation
Model fit
The number of vascular branchpoints was modeled using a negative binomial distribution to handle overdispersion in count data. The model structure paralleled the volume model, with cerebellar volume as an offset.
Model equation
Model fit
Hypotheses
The central research question investigated whether intermittent hypoxia (IH) exposure, mimicking apnea of prematurity, affects cerebellar vascular development through both transcriptomic changes in angiogenesis-related genes and morphological alterations in the cerebellar vascular network.
Contrasts for hypotheses of interest were tested with emmeans (Lenth, 2022).
We hypothesized that intermittent hypoxia would alter expression of genes involved in angiogenesis pathways, potentially showing both pro- and anti-angiogenic responses depending on the specific gene and developmental stage.
The analysis focused on identifying genes that showed significant differential expression between IH and control conditions across developmental stages. Fold changes were calculated and significance was assessed using the fitted linear models, with genes classified as upregulated, downregulated, or unchanged based on p-values and effect sizes.
Here’s a general overview of the gene expression changes between IH and control, across developmental stages:
Timeline of gene expression changes across developmental stages, providing insights into the temporal dynamics of the transcriptomic response to intermittent hypoxia:
We hypothesized that intermittent hypoxia would affect the morphological development of the cerebellar vascular network, potentially altering vascular density, complexity, and branching patterns.
Analysis of total vascular volume tested whether IH exposure affected overall vascularization of the cerebellum, accounting for developmental stage differences and normalizing for brain size using cerebellar volume as an offset.
emmeans(mod_vol, specs = "condition", type = "response") |>
contrast(method = "pairwise", adjust = "none", infer = TRUE) |>
as.data.frame()
data.frame [1 x 9]
emmeans(mod_vol, specs = ~ condition | stage, type = "response") |>
contrast(method = "pairwise", adjust = "none", infer = TRUE) |>
as.data.frame()
data.frame [4 x 10]
emmeans(mod_vol, specs = ~ condition | level, by = "stage", type = "response") |>
contrast(method = "pairwise", adjust = "none", infer = TRUE) |>
as.data.frame()
data.frame [8 x 11]
The branchpoint analysis examined whether IH affected vascular network complexity and branching architecture, testing for condition effects across developmental stages while controlling for overall brain size.
emmeans(mod_branchpoints, specs = "condition", type = "response") |>
contrast(method = "pairwise", adjust = "none", infer = TRUE) |>
as.data.frame()
data.frame [1 x 9]
emmeans(mod_branchpoints, specs = ~ condition | stage, type = "response") |>
contrast(method = "pairwise", adjust = "none", infer = TRUE) |>
as.data.frame()
data.frame [4 x 10]
emmeans(mod_branchpoints, specs = ~ condition | level, by = "stage", type = "response") |>
contrast(method = "pairwise", adjust = "none", infer = TRUE) |>
as.data.frame()