SISKA ACEi Analysis
Related to Figure 6.
Reads pseudobulk CSVs from 7D.SISKA_Extraction.md.
Load pre-processed CSVs
pb_expr <- read.csv(file.path(SIS_DIR, "siska_mouse_pseudobulk_expr.csv"))
ct_expr <- read.csv(file.path(SIS_DIR, "siska_mouse_celltype_expr.csv"))
ct_counts <- read.csv(file.path(SIS_DIR, "siska_mouse_celltype_counts.csv"))
pb_expr$Group <- factor(pb_expr$Group, levels = c("Healthy", "CKD", "CKD + ACEi"))
ct_expr$Group <- factor(ct_expr$Group, levels = c("Healthy", "CKD", "CKD + ACEi"))
Score signatures with UCell
CAAH_MOUSE <- c("Clu", "Lrp2", "Lamp2", "Col4a2", "Spink1",
"Wfdc2", "Pax8", "Lyz2", "S100a9", "Cdh13")
HYPOXIA_MOUSE <- c("Hif1a", "Epas1", "Epo", "Epor", "Vegfa",
"Aldoa", "Ldha", "Pgk1", "Slc2a1", "Eno1",
"Angptl4", "Hilpda", "Bnip3")
GLYCOLYSIS_MOUSE <- c("Hk2", "Pfkm", "Pkm", "Ldha", "Hk1",
"Aldoa", "Gapdh", "Pgk1", "Pgam1", "Eno1",
"Tpi1", "Gpi", "Ldhb")
ECM_MOUSE <- c("Col1a1", "Col1a2", "Col3a1", "Col4a1", "Col4a2",
"Col12a1", "Fn1", "Timp1", "Timp2", "Mmp2",
"Acta2", "Vim", "Tgfb1", "Postn", "Thbs1")
ALL_SIGS_MOUSE <- list(CAAH_10gene = CAAH_MOUSE, Hypoxia = HYPOXIA_MOUSE,
Glycolysis = GLYCOLYSIS_MOUSE, ECM_Fibrosis = ECM_MOUSE)
gene_cols <- setdiff(names(pb_expr), c("orig_ident", "Group"))
pb_mat <- t(as.matrix(pb_expr[, gene_cols]))
colnames(pb_mat) <- pb_expr$orig_ident
scores_mat <- ScoreSignatures_UCell(matrix = pb_mat, features = ALL_SIGS_MOUSE)
score_df <- cbind(pb_expr[, c("orig_ident", "Group")], as.data.frame(scores_mat))
write.csv(score_df, file.path(SIS_DIR, "siska_mouse_pseudobulk_ucell_scores.csv"),
row.names = FALSE)
Statistics: Kruskal-Wallis + pairwise Wilcoxon
caah_col <- "CAAH_10gene_UCell"
kw <- kruskal.test(as.formula(paste(caah_col, "~ Group")), data = score_df)
pw <- pairwise.wilcox.test(score_df[[caah_col]], score_df$Group,
p.adjust.method = "BH", exact = FALSE)
print(round(pw$p.value, 4))
Figure — Boxplot: CAAH score by group
Related to Figure 6f (CAAH UCell score by group: Healthy / CKD / CKD+ACEi; Kruskal-Wallis p = 0.014).
The expected Healthy < CKD < CKD+ACEi gradient reflects transcriptional remodeling driven by progressive RAAS suppression — the CAAH signature was derived from RAAS-inhibited mice, and its highest expression in ACEi-treated animals is consistent with the molecular response to sustained loss of angiotensin II signaling.
pal_groups <- c("Healthy" = "#4393C3", "CKD" = "#F4A460", "CKD + ACEi" = "#D6604D")
my_comparisons <- list(c("Healthy", "CKD"),
c("Healthy", "CKD + ACEi"),
c("CKD", "CKD + ACEi"))
p11 <- ggplot(score_df, aes(x = Group, y = .data[[caah_col]], fill = Group)) +
geom_boxplot(outlier.shape = NA, alpha = 0.7, width = 0.5) +
geom_jitter(width = 0.15, size = 1.5, alpha = 0.6) +
scale_fill_manual(values = pal_groups) +
stat_compare_means(comparisons = my_comparisons, method = "wilcox.test",
label = "p.signif") +
labs(x = NULL, y = "CAAH 10-gene UCell score",
title = "SISKA: CAAH signature by disease + treatment group") +
theme_classic(base_size = 12) + theme(legend.position = "none")
ggsave(file.path(FIG_DIR, "11_SISKA_mouse_CAAH_scores_boxplot.svg"),
p11, width = 5, height = 4.5)
Figure — Individual gene dot plot
Per-gene Wilcoxon tests comparing CKD+ACEi vs Healthy.
caah_found <- intersect(CAAH_MOUSE, gene_cols)
gene_stats <- lapply(caah_found, function(g) {
acei <- pb_expr[[g]][pb_expr$Group == "CKD + ACEi"]
healthy <- pb_expr[[g]][pb_expr$Group == "Healthy"]
wt_g <- wilcox.test(acei, healthy, exact = FALSE)
data.frame(Gene = g,
mean_ACEi = mean(acei, na.rm = TRUE),
mean_Healthy = mean(healthy, na.rm = TRUE),
Diff = mean(acei, na.rm = TRUE) - mean(healthy, na.rm = TRUE),
p_value = wt_g$p.value)
})
gene_stats_df <- do.call(rbind, gene_stats)
gene_stats_df$p_adj <- p.adjust(gene_stats_df$p_value, method = "BH")
gene_stats_df$sig_label <- dplyr::case_when(gene_stats_df$p_adj < 0.001 ~ "***",
gene_stats_df$p_adj < 0.01 ~ "**",
gene_stats_df$p_adj < 0.05 ~ "*",
TRUE ~ "ns")
gene_stats_df <- gene_stats_df %>% dplyr::arrange(Diff) %>%
dplyr::mutate(Gene = factor(Gene, levels = Gene))
p12 <- ggplot(gene_stats_df,
aes(x = Diff, y = Gene,
colour = ifelse(Diff > 0, "UP", "DOWN"),
size = -log10(p_value + 1e-10))) +
geom_vline(xintercept = 0, linetype = "dashed", colour = "grey60") +
geom_point(alpha = 0.85) +
geom_text(aes(label = sig_label),
nudge_x = ifelse(gene_stats_df$Diff >= 0, 0.08, -0.08),
size = 4, show.legend = FALSE) +
scale_colour_manual(values = c("UP" = "#D6604D", "DOWN" = "#4393C3")) +
scale_size_continuous(name = expression(-log[10](p)), range = c(2, 8)) +
labs(title = "CAAH 10-Gene Expression — SISKA (CKD+ACEi vs Healthy)",
x = "Δ log-CPM", y = NULL) +
theme_classic(base_size = 12)
ggsave(file.path(FIG_DIR, "12_SISKA_mouse_individual_genes_dotplot.svg"),
p12, width = 6, height = 4)
Figure — Cell-type heatmap
ct_mean <- ct_expr %>%
dplyr::group_by(cell_type, Group) %>%
dplyr::summarise(across(all_of(caah_found), mean, na.rm = TRUE), .groups = "drop") %>%
tidyr::unite("label", cell_type, Group, sep = " | ") %>%
tibble::column_to_rownames("label")
ct_mat <- t(as.matrix(ct_mean))
ct_mat_scaled <- t(scale(t(ct_mat)))
pheatmap(ct_mat_scaled,
color = colorRampPalette(c("#313695", "white", "#A50026"))(100),
cluster_cols = TRUE, cluster_rows = TRUE,
fontsize = 7,
main = "CAAH Signature Genes by Cell Type — SISKA Mouse",
filename = file.path(FIG_DIR, "13_SISKA_mouse_celltype_heatmap.png"),
width = 8, height = 5)