# 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