# Load required libraries
library(DGCA)
##
library(WGCNA)
## Loading required package: dynamicTreeCut
## Loading required package: fastcluster
##
## Attaching package: 'fastcluster'
## The following object is masked from 'package:stats':
##
## hclust
##
## Attaching package: 'WGCNA'
## The following object is masked from 'package:stats':
##
## cor
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
library(readr)
library(tibble)
library(clusterProfiler)
## clusterProfiler v4.13.0 For help: https://yulab-smu.top/biomedical-knowledge-mining-book/
##
## If you use clusterProfiler in published research, please cite:
## T Wu, E Hu, S Xu, M Chen, P Guo, Z Dai, T Feng, L Zhou, W Tang, L Zhan, X Fu, S Liu, X Bo, and G Yu. clusterProfiler 4.0: A universal enrichment tool for interpreting omics data. The Innovation. 2021, 2(3):100141
##
## Attaching package: 'clusterProfiler'
## The following object is masked from 'package:stats':
##
## filter
library(org.Hs.eg.db)
## Loading required package: AnnotationDbi
## Loading required package: stats4
## Loading required package: BiocGenerics
##
## Attaching package: 'BiocGenerics'
## The following objects are masked from 'package:dplyr':
##
## combine, intersect, setdiff, union
## The following objects are masked from 'package:stats':
##
## IQR, mad, sd, var, xtabs
## The following objects are masked from 'package:base':
##
## anyDuplicated, aperm, append, as.data.frame, basename, cbind,
## colnames, dirname, do.call, duplicated, eval, evalq, Filter, Find,
## get, grep, grepl, intersect, is.unsorted, lapply, Map, mapply,
## match, mget, order, paste, pmax, pmax.int, pmin, pmin.int,
## Position, rank, rbind, Reduce, rownames, sapply, setdiff, sort,
## table, tapply, union, unique, unsplit, which.max, which.min
## Loading required package: Biobase
## Welcome to Bioconductor
##
## Vignettes contain introductory material; view with
## 'browseVignettes()'. To cite Bioconductor, see
## 'citation("Biobase")', and for packages 'citation("pkgname")'.
## Loading required package: IRanges
## Loading required package: S4Vectors
##
## Attaching package: 'S4Vectors'
## The following object is masked from 'package:clusterProfiler':
##
## rename
## The following object is masked from 'package:tidyr':
##
## expand
## The following objects are masked from 'package:dplyr':
##
## first, rename
## The following object is masked from 'package:utils':
##
## findMatches
## The following objects are masked from 'package:base':
##
## expand.grid, I, unname
##
## Attaching package: 'IRanges'
## The following object is masked from 'package:clusterProfiler':
##
## slice
## The following objects are masked from 'package:dplyr':
##
## collapse, desc, slice
##
## Attaching package: 'AnnotationDbi'
## The following object is masked from 'package:clusterProfiler':
##
## select
## The following object is masked from 'package:dplyr':
##
## select
##
# Read in data
expr_htn <- read.csv(
"/Users/lorandacalderonzamora/Downloads/Rewiring/datExpr_integrative_HTN.csv",
row.names = 1, # usa la primera columna como rownames
check.names = FALSE, # opcional: conserva los nombres de muestra tal cual
stringsAsFactors = FALSE
)
expr_t2dm <- read.csv(
"/Users/lorandacalderonzamora/Downloads/Rewiring/datExpr_integrative_T2DM.csv",
row.names = 1,
check.names = FALSE,
stringsAsFactors = FALSE
)
rownames(expr_htn) <- sub("\\.[0-9]+$", "", rownames(expr_htn))
rownames(expr_t2dm) <- sub("\\.[0-9]+$", "", rownames(expr_t2dm))
metadata <- read.csv("/Users/lorandacalderonzamora/Downloads/Rewiring/datMeta_merge_T2DM_HTN.csv", row.names = NULL)
annotation <- read.csv("/Users/lorandacalderonzamora/Downloads/Rewiring/annotation.csv", row.names = NULL)
# align genes
common_genes <- intersect(rownames(expr_htn), rownames(expr_t2dm))
expr_htn <- data.matrix(expr_htn)
expr_t2dm <- data.matrix(expr_t2dm)
expr_htn <- expr_htn[common_genes, ]
expr_t2dm <- expr_t2dm[common_genes, ]
# Compute gene–gene correlations
corr_htn <- cor(t(expr_htn))
corr_t2dm <- cor(t(expr_t2dm))
delta_corr <- corr_t2dm - corr_htn
# Match genes across datasets
common_genes <- intersect(rownames(expr_htn), rownames(expr_t2dm))
expr_htn <- expr_htn[common_genes, ]
expr_t2dm <- expr_t2dm[common_genes, ]
#Combine into a single DGCA object
# Bind expression, create design matrix for DGCA
expr_combined <- cbind(expr_htn, expr_t2dm)
group <- c(rep("HTN", ncol(expr_htn)), rep("T2DM", ncol(expr_t2dm)))
# Build design data.frame
colData <- data.frame(Sample = colnames(expr_combined), Condition = group)
# Carga tus resultados de DE
de_t2dm <- read_csv("/Users/lorandacalderonzamora/Downloads/Rewiring/DE_integrative_T2DM.csv", show_col_types = FALSE)
## New names:
## • `` -> `...1`
# 2) Selecciona los genes significativos en T2DM
sig_t2dm <- de_t2dm %>%
dplyr::filter(adj.P.Val < 0.05, abs(logFC) > 1) %>%
dplyr::pull(ensembl_gene_id)
# 3) Usa esa lista como tu universo de genes
sig_genes <- sig_t2dm
# Comprueba cuántos tienes
length(sig_genes)
## [1] 603
# Antes de filtrar tus matrices, limpia los sufijos de versión en los rownames
# Esto no hará nada si tus rownames ya carecen de sufijos.
rownames(expr_htn) <- sub("\\.[0-9]+$", "", rownames(expr_htn))
rownames(expr_t2dm) <- sub("\\.[0-9]+$", "", rownames(expr_t2dm))
# Y también limpia los IDs obtenidos de DE (por si llevan versión):
sig_t2dm_clean <- sub("\\.[0-9]+$", "", sig_t2dm)
# Ahora intersecta de nuevo
common_sig <- intersect(rownames(expr_htn), sig_t2dm_clean)
length(common_sig) # debería ser > 0
## [1] 576
# Y filtra solo esos genes
expr_htn <- expr_htn[common_sig, , drop = FALSE]
expr_t2dm <- expr_t2dm[common_sig, , drop = FALSE]
# Comprueba dimensiones
dim(expr_htn) # deberían ser 603 x número_de_muestras_HTN
## [1] 576 25
dim(expr_t2dm) # 603 x número_de_muestras_T2DM
## [1] 576 33
groupVec <- c(rep("HTN", ncol(expr_htn)),
rep("T2DM", ncol(expr_t2dm)))
design <- makeDesign(groupVec)
# 2) Une las dos matrices (genes × muestras)
expr_combined <- cbind(expr_htn, expr_t2dm)
# 3) Cálculo de correlación diferencial con DGCA (ddcorAll)
ddcResults <- ddcorAll(
inputMat = expr_combined,
design = design,
compare = c("HTN", "T2DM"),
adjust = "perm", # usa permutaciones para p-val empíricos
nPerms = 500,
corrType = "pearson",
heatmapPlot = FALSE
)
## Calculating permutation number 1.
## Calculating permutation number 2.
## Calculating permutation number 3.
## Calculating permutation number 4.
## Calculating permutation number 5.
## Calculating permutation number 6.
## Calculating permutation number 7.
## Calculating permutation number 8.
## Calculating permutation number 9.
## Calculating permutation number 10.
## Calculating permutation number 11.
## Calculating permutation number 12.
## Calculating permutation number 13.
## Calculating permutation number 14.
## Calculating permutation number 15.
## Calculating permutation number 16.
## Calculating permutation number 17.
## Calculating permutation number 18.
## Calculating permutation number 19.
## Calculating permutation number 20.
## Calculating permutation number 21.
## Calculating permutation number 22.
## Calculating permutation number 23.
## Calculating permutation number 24.
## Calculating permutation number 25.
## Calculating permutation number 26.
## Calculating permutation number 27.
## Calculating permutation number 28.
## Calculating permutation number 29.
## Calculating permutation number 30.
## Calculating permutation number 31.
## Calculating permutation number 32.
## Calculating permutation number 33.
## Calculating permutation number 34.
## Calculating permutation number 35.
## Calculating permutation number 36.
## Calculating permutation number 37.
## Calculating permutation number 38.
## Calculating permutation number 39.
## Calculating permutation number 40.
## Calculating permutation number 41.
## Calculating permutation number 42.
## Calculating permutation number 43.
## Calculating permutation number 44.
## Calculating permutation number 45.
## Calculating permutation number 46.
## Calculating permutation number 47.
## Calculating permutation number 48.
## Calculating permutation number 49.
## Calculating permutation number 50.
## Calculating permutation number 51.
## Calculating permutation number 52.
## Calculating permutation number 53.
## Calculating permutation number 54.
## Calculating permutation number 55.
## Calculating permutation number 56.
## Calculating permutation number 57.
## Calculating permutation number 58.
## Calculating permutation number 59.
## Calculating permutation number 60.
## Calculating permutation number 61.
## Calculating permutation number 62.
## Calculating permutation number 63.
## Calculating permutation number 64.
## Calculating permutation number 65.
## Calculating permutation number 66.
## Calculating permutation number 67.
## Calculating permutation number 68.
## Calculating permutation number 69.
## Calculating permutation number 70.
## Calculating permutation number 71.
## Calculating permutation number 72.
## Calculating permutation number 73.
## Calculating permutation number 74.
## Calculating permutation number 75.
## Calculating permutation number 76.
## Calculating permutation number 77.
## Calculating permutation number 78.
## Calculating permutation number 79.
## Calculating permutation number 80.
## Calculating permutation number 81.
## Calculating permutation number 82.
## Calculating permutation number 83.
## Calculating permutation number 84.
## Calculating permutation number 85.
## Calculating permutation number 86.
## Calculating permutation number 87.
## Calculating permutation number 88.
## Calculating permutation number 89.
## Calculating permutation number 90.
## Calculating permutation number 91.
## Calculating permutation number 92.
## Calculating permutation number 93.
## Calculating permutation number 94.
## Calculating permutation number 95.
## Calculating permutation number 96.
## Calculating permutation number 97.
## Calculating permutation number 98.
## Calculating permutation number 99.
## Calculating permutation number 100.
## Calculating permutation number 101.
## Calculating permutation number 102.
## Calculating permutation number 103.
## Calculating permutation number 104.
## Calculating permutation number 105.
## Calculating permutation number 106.
## Calculating permutation number 107.
## Calculating permutation number 108.
## Calculating permutation number 109.
## Calculating permutation number 110.
## Calculating permutation number 111.
## Calculating permutation number 112.
## Calculating permutation number 113.
## Calculating permutation number 114.
## Calculating permutation number 115.
## Calculating permutation number 116.
## Calculating permutation number 117.
## Calculating permutation number 118.
## Calculating permutation number 119.
## Calculating permutation number 120.
## Calculating permutation number 121.
## Calculating permutation number 122.
## Calculating permutation number 123.
## Calculating permutation number 124.
## Calculating permutation number 125.
## Calculating permutation number 126.
## Calculating permutation number 127.
## Calculating permutation number 128.
## Calculating permutation number 129.
## Calculating permutation number 130.
## Calculating permutation number 131.
## Calculating permutation number 132.
## Calculating permutation number 133.
## Calculating permutation number 134.
## Calculating permutation number 135.
## Calculating permutation number 136.
## Calculating permutation number 137.
## Calculating permutation number 138.
## Calculating permutation number 139.
## Calculating permutation number 140.
## Calculating permutation number 141.
## Calculating permutation number 142.
## Calculating permutation number 143.
## Calculating permutation number 144.
## Calculating permutation number 145.
## Calculating permutation number 146.
## Calculating permutation number 147.
## Calculating permutation number 148.
## Calculating permutation number 149.
## Calculating permutation number 150.
## Calculating permutation number 151.
## Calculating permutation number 152.
## Calculating permutation number 153.
## Calculating permutation number 154.
## Calculating permutation number 155.
## Calculating permutation number 156.
## Calculating permutation number 157.
## Calculating permutation number 158.
## Calculating permutation number 159.
## Calculating permutation number 160.
## Calculating permutation number 161.
## Calculating permutation number 162.
## Calculating permutation number 163.
## Calculating permutation number 164.
## Calculating permutation number 165.
## Calculating permutation number 166.
## Calculating permutation number 167.
## Calculating permutation number 168.
## Calculating permutation number 169.
## Calculating permutation number 170.
## Calculating permutation number 171.
## Calculating permutation number 172.
## Calculating permutation number 173.
## Calculating permutation number 174.
## Calculating permutation number 175.
## Calculating permutation number 176.
## Calculating permutation number 177.
## Calculating permutation number 178.
## Calculating permutation number 179.
## Calculating permutation number 180.
## Calculating permutation number 181.
## Calculating permutation number 182.
## Calculating permutation number 183.
## Calculating permutation number 184.
## Calculating permutation number 185.
## Calculating permutation number 186.
## Calculating permutation number 187.
## Calculating permutation number 188.
## Calculating permutation number 189.
## Calculating permutation number 190.
## Calculating permutation number 191.
## Calculating permutation number 192.
## Calculating permutation number 193.
## Calculating permutation number 194.
## Calculating permutation number 195.
## Calculating permutation number 196.
## Calculating permutation number 197.
## Calculating permutation number 198.
## Calculating permutation number 199.
## Calculating permutation number 200.
## Calculating permutation number 201.
## Calculating permutation number 202.
## Calculating permutation number 203.
## Calculating permutation number 204.
## Calculating permutation number 205.
## Calculating permutation number 206.
## Calculating permutation number 207.
## Calculating permutation number 208.
## Calculating permutation number 209.
## Calculating permutation number 210.
## Calculating permutation number 211.
## Calculating permutation number 212.
## Calculating permutation number 213.
## Calculating permutation number 214.
## Calculating permutation number 215.
## Calculating permutation number 216.
## Calculating permutation number 217.
## Calculating permutation number 218.
## Calculating permutation number 219.
## Calculating permutation number 220.
## Calculating permutation number 221.
## Calculating permutation number 222.
## Calculating permutation number 223.
## Calculating permutation number 224.
## Calculating permutation number 225.
## Calculating permutation number 226.
## Calculating permutation number 227.
## Calculating permutation number 228.
## Calculating permutation number 229.
## Calculating permutation number 230.
## Calculating permutation number 231.
## Calculating permutation number 232.
## Calculating permutation number 233.
## Calculating permutation number 234.
## Calculating permutation number 235.
## Calculating permutation number 236.
## Calculating permutation number 237.
## Calculating permutation number 238.
## Calculating permutation number 239.
## Calculating permutation number 240.
## Calculating permutation number 241.
## Calculating permutation number 242.
## Calculating permutation number 243.
## Calculating permutation number 244.
## Calculating permutation number 245.
## Calculating permutation number 246.
## Calculating permutation number 247.
## Calculating permutation number 248.
## Calculating permutation number 249.
## Calculating permutation number 250.
## Calculating permutation number 251.
## Calculating permutation number 252.
## Calculating permutation number 253.
## Calculating permutation number 254.
## Calculating permutation number 255.
## Calculating permutation number 256.
## Calculating permutation number 257.
## Calculating permutation number 258.
## Calculating permutation number 259.
## Calculating permutation number 260.
## Calculating permutation number 261.
## Calculating permutation number 262.
## Calculating permutation number 263.
## Calculating permutation number 264.
## Calculating permutation number 265.
## Calculating permutation number 266.
## Calculating permutation number 267.
## Calculating permutation number 268.
## Calculating permutation number 269.
## Calculating permutation number 270.
## Calculating permutation number 271.
## Calculating permutation number 272.
## Calculating permutation number 273.
## Calculating permutation number 274.
## Calculating permutation number 275.
## Calculating permutation number 276.
## Calculating permutation number 277.
## Calculating permutation number 278.
## Calculating permutation number 279.
## Calculating permutation number 280.
## Calculating permutation number 281.
## Calculating permutation number 282.
## Calculating permutation number 283.
## Calculating permutation number 284.
## Calculating permutation number 285.
## Calculating permutation number 286.
## Calculating permutation number 287.
## Calculating permutation number 288.
## Calculating permutation number 289.
## Calculating permutation number 290.
## Calculating permutation number 291.
## Calculating permutation number 292.
## Calculating permutation number 293.
## Calculating permutation number 294.
## Calculating permutation number 295.
## Calculating permutation number 296.
## Calculating permutation number 297.
## Calculating permutation number 298.
## Calculating permutation number 299.
## Calculating permutation number 300.
## Calculating permutation number 301.
## Calculating permutation number 302.
## Calculating permutation number 303.
## Calculating permutation number 304.
## Calculating permutation number 305.
## Calculating permutation number 306.
## Calculating permutation number 307.
## Calculating permutation number 308.
## Calculating permutation number 309.
## Calculating permutation number 310.
## Calculating permutation number 311.
## Calculating permutation number 312.
## Calculating permutation number 313.
## Calculating permutation number 314.
## Calculating permutation number 315.
## Calculating permutation number 316.
## Calculating permutation number 317.
## Calculating permutation number 318.
## Calculating permutation number 319.
## Calculating permutation number 320.
## Calculating permutation number 321.
## Calculating permutation number 322.
## Calculating permutation number 323.
## Calculating permutation number 324.
## Calculating permutation number 325.
## Calculating permutation number 326.
## Calculating permutation number 327.
## Calculating permutation number 328.
## Calculating permutation number 329.
## Calculating permutation number 330.
## Calculating permutation number 331.
## Calculating permutation number 332.
## Calculating permutation number 333.
## Calculating permutation number 334.
## Calculating permutation number 335.
## Calculating permutation number 336.
## Calculating permutation number 337.
## Calculating permutation number 338.
## Calculating permutation number 339.
## Calculating permutation number 340.
## Calculating permutation number 341.
## Calculating permutation number 342.
## Calculating permutation number 343.
## Calculating permutation number 344.
## Calculating permutation number 345.
## Calculating permutation number 346.
## Calculating permutation number 347.
## Calculating permutation number 348.
## Calculating permutation number 349.
## Calculating permutation number 350.
## Calculating permutation number 351.
## Calculating permutation number 352.
## Calculating permutation number 353.
## Calculating permutation number 354.
## Calculating permutation number 355.
## Calculating permutation number 356.
## Calculating permutation number 357.
## Calculating permutation number 358.
## Calculating permutation number 359.
## Calculating permutation number 360.
## Calculating permutation number 361.
## Calculating permutation number 362.
## Calculating permutation number 363.
## Calculating permutation number 364.
## Calculating permutation number 365.
## Calculating permutation number 366.
## Calculating permutation number 367.
## Calculating permutation number 368.
## Calculating permutation number 369.
## Calculating permutation number 370.
## Calculating permutation number 371.
## Calculating permutation number 372.
## Calculating permutation number 373.
## Calculating permutation number 374.
## Calculating permutation number 375.
## Calculating permutation number 376.
## Calculating permutation number 377.
## Calculating permutation number 378.
## Calculating permutation number 379.
## Calculating permutation number 380.
## Calculating permutation number 381.
## Calculating permutation number 382.
## Calculating permutation number 383.
## Calculating permutation number 384.
## Calculating permutation number 385.
## Calculating permutation number 386.
## Calculating permutation number 387.
## Calculating permutation number 388.
## Calculating permutation number 389.
## Calculating permutation number 390.
## Calculating permutation number 391.
## Calculating permutation number 392.
## Calculating permutation number 393.
## Calculating permutation number 394.
## Calculating permutation number 395.
## Calculating permutation number 396.
## Calculating permutation number 397.
## Calculating permutation number 398.
## Calculating permutation number 399.
## Calculating permutation number 400.
## Calculating permutation number 401.
## Calculating permutation number 402.
## Calculating permutation number 403.
## Calculating permutation number 404.
## Calculating permutation number 405.
## Calculating permutation number 406.
## Calculating permutation number 407.
## Calculating permutation number 408.
## Calculating permutation number 409.
## Calculating permutation number 410.
## Calculating permutation number 411.
## Calculating permutation number 412.
## Calculating permutation number 413.
## Calculating permutation number 414.
## Calculating permutation number 415.
## Calculating permutation number 416.
## Calculating permutation number 417.
## Calculating permutation number 418.
## Calculating permutation number 419.
## Calculating permutation number 420.
## Calculating permutation number 421.
## Calculating permutation number 422.
## Calculating permutation number 423.
## Calculating permutation number 424.
## Calculating permutation number 425.
## Calculating permutation number 426.
## Calculating permutation number 427.
## Calculating permutation number 428.
## Calculating permutation number 429.
## Calculating permutation number 430.
## Calculating permutation number 431.
## Calculating permutation number 432.
## Calculating permutation number 433.
## Calculating permutation number 434.
## Calculating permutation number 435.
## Calculating permutation number 436.
## Calculating permutation number 437.
## Calculating permutation number 438.
## Calculating permutation number 439.
## Calculating permutation number 440.
## Calculating permutation number 441.
## Calculating permutation number 442.
## Calculating permutation number 443.
## Calculating permutation number 444.
## Calculating permutation number 445.
## Calculating permutation number 446.
## Calculating permutation number 447.
## Calculating permutation number 448.
## Calculating permutation number 449.
## Calculating permutation number 450.
## Calculating permutation number 451.
## Calculating permutation number 452.
## Calculating permutation number 453.
## Calculating permutation number 454.
## Calculating permutation number 455.
## Calculating permutation number 456.
## Calculating permutation number 457.
## Calculating permutation number 458.
## Calculating permutation number 459.
## Calculating permutation number 460.
## Calculating permutation number 461.
## Calculating permutation number 462.
## Calculating permutation number 463.
## Calculating permutation number 464.
## Calculating permutation number 465.
## Calculating permutation number 466.
## Calculating permutation number 467.
## Calculating permutation number 468.
## Calculating permutation number 469.
## Calculating permutation number 470.
## Calculating permutation number 471.
## Calculating permutation number 472.
## Calculating permutation number 473.
## Calculating permutation number 474.
## Calculating permutation number 475.
## Calculating permutation number 476.
## Calculating permutation number 477.
## Calculating permutation number 478.
## Calculating permutation number 479.
## Calculating permutation number 480.
## Calculating permutation number 481.
## Calculating permutation number 482.
## Calculating permutation number 483.
## Calculating permutation number 484.
## Calculating permutation number 485.
## Calculating permutation number 486.
## Calculating permutation number 487.
## Calculating permutation number 488.
## Calculating permutation number 489.
## Calculating permutation number 490.
## Calculating permutation number 491.
## Calculating permutation number 492.
## Calculating permutation number 493.
## Calculating permutation number 494.
## Calculating permutation number 495.
## Calculating permutation number 496.
## Calculating permutation number 497.
## Calculating permutation number 498.
## Calculating permutation number 499.
## Calculating permutation number 500.
## Calculating empirical p-values using the permutation sample statistics.
## Sorting the combination of the actual and permuted test statistics.
## Finding the proportion of each actual test statistic greater than the permuted test statistics.
## Calculating qvalues from the empirical p-values.
## Classifying the differential correlation calls.
ddcResults <- ddcResults %>%
mutate(dCor = T2DM_cor - HTN_cor)
# 2) Filtra usando el nombre correcto de FDR y tu umbral de |Δcor|
sigEdges <- ddcResults %>%
mutate(dCor = T2DM_cor - HTN_cor) %>%
filter(pValDiff_adj < 0.05, abs(dCor) > 0.3) %>%
as_tibble() # asegúrate de que es un tibble
# 2) Genera el data.frame de nodos:
nodes <- sigEdges %>%
pivot_longer(
cols = c(Gene1, Gene2), # pasa ambos extremos a la misma columna
names_to = "end", # puede llamarse “end” o lo que prefieras
values_to = "gene" # aquí quedan todos los genes
) %>%
group_by(gene) %>%
summarise(
score_mag = sum(abs(dCor)), # rewiring score
score_dir = sum(dCor),
degree = n(), # número de aristas
.groups = "drop"
)
# 3) Comprueba
nrow(nodes)
## [1] 576