Gene regulatory network analysis identifies dysregulation of hypoxia pathways as contributing to glioblastoma treatment resistance in females.
The 12 matches
- [1] § Methods › Data preprocessing ↔ preprocessREMBRANDT.R, lines 1–39 · score 0.90 · hgu133plus2.db, Ensembl IDs, REMBRANDT clinical, AnnotationDbi, GSE108474, Affy
- [2] § Results › Hypoxia-related GBM-specific pathway targeting differs between males and females ↔ PathwayDifferentialAnalysis.R, lines 13–74 · score 0.87 · aerobic glycolysis, glycan biosynthesis, neutrophil degranulation, mRNA splicing, Extracellular Matrix, collagen
- [3] § Results › Hypoxia-related GBM-specific pathway targeting differs between males and females ↔ RunBLOBFISHAllTFS.R, lines 54–78 · score 0.84 · aerobic glycolysis, glycan biosynthesis, neutrophil degranulation, Extracellular Matrix, collagen, fibroblast
- [4] § Results › Hypoxia is co-regulated with carbohydrate metabolism, extracellular matrix, and immune pathways in females only ↔ plotBLOBFISH_REMBRANDT_noAR.R, lines 28–82 · score 0.73 · carbohydrate metabolism, immune pathways, hypoxia pathways, HIF1A, extracellular matrix, ECM
- [5] § Methods › Gene regulatory network inference ↔ netZooPy/panda/panda.py, lines 12–108 · score 0.69 · netZooPy, Gene Regulatory Network, co expression, GRAND, database, Binding
- [6] § Methods › Transcription factor activity between LGG and GBM in males and females ↔ R/MONSTER.R, lines 61–149 · score 0.64 · biological state transitions, transition matrix, diagonal, MONSTER, phenotype, weight
- [7] § Results › Hypoxia is co-regulated with carbohydrate metabolism, extracellular matrix, and immune pathways in females only ↔ plotBLOBFISH_REMBRANDT_noAR.R, lines 84–134 · score 0.64 · androgen receptor, HIF1A, pathway categories, REMBRANDT, ECM, carbohydrate
- [8] § Results › Hypoxia is co-regulated with carbohydrate metabolism, extracellular matrix, and immune pathways in females only ↔ RunBLOBFISHAllTFS.R, lines 128–178 · score 0.61 · carbohydrate metabolism, HIF1A, extracellular matrix, ECM, splicing, mRNA
- [9] § Results › Hypoxia-related GBM-specific pathway targeting differs between males and females ↔ RunBLOBFISHAllTFS.R, lines 54–78 · score 0.57 · renal cell carcinoma, extracellular matrix, formation, metabolism, immune, Hypoxia
- [10] § Results › Hypoxia-related GBM-specific pathway targeting differs between males and females ↔ blobfishforrevdata.r, lines 82–107 · score 0.57 · renal cell carcinoma, extracellular matrix, formation, metabolism, immune, Hypoxia
- [11] § Methods › Gene regulatory network inference ↔ inst/extdata/panda.py, lines 301–389 · score 0.54 · netZooPy, Gene Regulatory Network, Binding, Inferred, PPI, weights
- [12] § Methods › Data preprocessing ↔ R/SEAHORSE.R, lines 270–342 · score 0.53 · RNA seq, limma, raw, filtered, Modeling, genes
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
R · 387 lines · 22 KB · no license · 3 matches
- library(netZooR)
- # Read the PANDAs.
- sourceDir <- NULL
- LGGFemale <- read.table(paste0(sourceDir, 'LGG_Female_Panda_output.txt'), sep = " ")
- GBMFemale <- read.table(paste0(sourceDir, 'GBM_Female_Panda_output.txt'), sep = " ")
- LGGMale <- read.table(paste0(sourceDir, 'LGG_Male_Panda_output.txt'), sep = " ")
- GBMMale <- read.table(paste0(sourceDir, 'GBM_Male_Panda_output.txt'), sep = " ")
- # Read the TFs.
- tfsDF <- read.csv(paste0(sourceDir, "gbmFemaleSpecificMONSTER.csv"), row.names = 1)
- tfs <- tfsDF[which(tfsDF[,2] != "Remove"), "x"]
- # Filter the PANDAs.
- filterPanda <- function(panda){
- pandaFilt <- panda[which(panda$V1 %in% tfs),]
- pandaFilt <- pandaFilt[,c(1,2,4)]
- colnames(pandaFilt) <- c("tf", "gene", "score")
- return(pandaFilt)
- }
- lggFemaleFilt <- filterPanda(LGGFemale)
- gbmFemaleFilt <- filterPanda(GBMFemale)
- lggMaleFilt <- filterPanda(LGGMale)
- gbmMaleFilt <- filterPanda(GBMMale)
- # Get symbols.
- library("org.Hs.eg.db")
- ensemblToSymbol <- function(data){
- # Map ENSEMBL to SYMBOL.
- results <- AnnotationDbi::mapIds(org.Hs.eg.db, keys=data$gene,
- column="SYMBOL", keytype="ENSEMBL",
- multiVals = "first")
- # Create a new data frame.
- newData <- data.frame(tf = data$tf, gene = results, score = data$score)
- pairNames <- paste(newData$tf, newData$gene, sep = "__")
- # Remove duplicate pairs in the data frame.
- pairCounts <- table(pairNames)
- dupPairs <- names(pairCounts)[which(pairCounts > 1)]
- toRemove <- unlist(lapply(1:length(dupPairs), function(i){
- pair <- dupPairs[i]
- whichPairNames <- which(pairNames == pair)
- whichMaxScore <- which.max(newData[whichPairNames, "score"])
- whichToRemove <- whichPairNames[setdiff(1:length(whichPairNames), whichMaxScore)]
- print(paste(i, "out of", length(dupPairs)))
- return(whichToRemove)
- }))
- newDataDedup <- newData[setdiff(1:nrow(newData), toRemove),]
- rownames(newDataDedup) <- paste(newDataDedup$tf, newDataDedup$gene, sep = "__")
- return(newDataDedup)
- }
- lggFemaleTarget <- ensemblToSymbol(lggFemaleFilt)
- write.csv(lggFemaleTarget, paste0(sourceDir, "lggFemaleTargetFull.csv"))
- gbmFemaleTarget <- ensemblToSymbol(gbmFemaleFilt)
- write.csv(gbmFemaleTarget, paste0(sourceDir, "gbmFemaleTargetFull.csv"))
- lggMaleTarget <- ensemblToSymbol(lggMaleFilt)
- write.csv(lggMaleTarget, paste0(sourceDir, "lggMaleTargetFull.csv"))
- gbmMaleTarget <- ensemblToSymbol(gbmMaleFilt)
- write.csv(gbmMaleTarget, paste0(sourceDir, "gbmMaleTargetFull.csv"))
- # Read pathway result files.
- GBMM_GBMF <- read.csv(paste0(sourceDir, "GBMMale_Female_PathwayFile.csv"))
- GBMF_GBMM <- read.csv(paste0(sourceDir, "GBMFemale_Male_PathwayFile.csv"))
- # Get all genes in the pathways of interest.
- gmtFile = fgsea::gmtPathways(paste0(sourceDir, "c2.cp.v2023.2.Hs.symbols.gmt"))
- mrnaPathways <- c("REACTOME_METABOLISM_OF_RNA", "REACTOME_Splicing_SPLICING", "REACTOME_PROCESSING_OF_CAPPED_INTRON_CONTAINING_PRE_Splicing")
- arPathways <- "PID_AR_NONGENOMIC_PATHWAY"
- immunePathways <- c("REACTOME_NEUTROPHIL_DEGRANULATION", "REACTOME_INNATE_IMMUNE_SYSTEM",
- "KEGG_LYSOSOME")
- carbPathways <- c("WP_METABOLIC_PATHWAYS_OF_FIBROBLASTS", "WP_AEROBIC_GLYCOLYSIS",
- "WP_N_GLYCAN_BIOSYNTHESIS")
- ecmPathways <- c("REACTOME_DEGRADATION_OF_THE_EXTRACELLULAR_MATRIX", "REACTOME_EXTRACELLULAR_MATRIX_ORGANIZATION",
- "REACTOME_COLLAGEN_FORMATION")
- cancerPathways <- c("WP_TYPE_2_PAPILLARY_RENAL_CELL_CARCINOMA", "WP_CLEAR_CELL_RENAL_CELL_CARCINOMA_PATHWAYS")
- hypoxiaPathways <- "PID_HIF1_TFPATHWAY"
- getGenesInPathways <- function(pathwayNames, pathwayFile){
- geneStrings <- pathwayFile[which(pathwayFile$pathway %in% pathwayNames), "leadingGenesDrivingEnrichment"]
- geneLists <- lapply(geneStrings, function(string){return(strsplit(string, "; ")[[1]])})
- geneSet <- unique(unlist(geneLists))
- return(geneSet)
- }
- mrnaGenes <- getGenesInPathways(mrnaPathways, GBMM_GBMF)
- arGenes <- getGenesInPathways(arPathways, GBMM_GBMF)
- immuneGenes <- getGenesInPathways(immunePathways, GBMF_GBMM)
- carbGenes <- getGenesInPathways(carbPathways, GBMF_GBMM)
- ecmGenes <- getGenesInPathways(ecmPathways, GBMF_GBMM)
- cancerGenes <- getGenesInPathways(cancerPathways, GBMF_GBMM)
- hypoxiaGenes <- getGenesInPathways(hypoxiaPathways, GBMF_GBMM)
- genesOfInterest <- unique(c(mrnaGenes, arGenes, immuneGenes, carbGenes, ecmGenes, cancerGenes,
- hypoxiaGenes))
- # Run BLOBFISH on the PANDAs.
- null<-readRDS(paste0(sourceDir, "nullPANDASubset.RDS"))
- lggFemaleBlobfish <- netZooR::RunBLOBFISH(networks = lggFemaleTarget,
- geneSet = genesOfInterest, hopConstraint = 2,
- alpha = 0.05, nullDistribution = null,
- pValueFile = paste0(sourceDir, "/lggFemaleBlobfishPvals"))
- write.csv(lggFemaleBlobfish, paste0(sourceDir, 'LGG_Female_Panda_BLOBFISH_Full.csv'))
- gbmFemaleBlobfish <- netZooR::RunBLOBFISH(networks = list(gbmFemaleTarget),
- geneSet = genesOfInterest, hopConstraint = 2,
- alpha = 0.05, nullDistribution = null,
- pValueFile = paste0(sourceDir, "/gbmFemaleBlobfishPvals"))
- write.csv(gbmFemaleBlobfish, paste0(sourceDir, 'GBM_Female_Panda_BLOBFISH_Full.csv'))
- lggMaleBlobfish <- netZooR::RunBLOBFISH(networks = list(lggMaleTarget),
- geneSet = genesOfInterest, hopConstraint = 2,
- alpha = 0.05, nullDistribution = null,
- pValueFile = paste0(sourceDir, "/lggMaleBlobfishPvals"))
- write.csv(lggMaleBlobfish, paste0(sourceDir, 'LGG_Male_Panda_BLOBFISH_Full.csv'))
- gbmMaleBlobfish <- netZooR::RunBLOBFISH(networks = list(gbmMaleTarget),
- geneSet = genesOfInterest, hopConstraint = 2,
- alpha = 0.05, nullDistribution = null,
- pValueFile = paste0(sourceDir, "/gbmMaleBlobfishPvals"))
- write.csv(gbmMaleBlobfish, paste0(sourceDir, 'GBM_Male_Panda_BLOBFISH_Full.csv'))
- # Find the GBM Female and Male specific edges.
- gbmFemaleSpecificBlobfish <- gbmFemaleBlobfish[setdiff(rownames(gbmFemaleBlobfish),
- c(rownames(lggFemaleBlobfish),
- rownames(gbmMaleBlobfish),
- rownames(lggMaleBlobfish))),]
- gbmMaleSpecificBlobfish <- gbmMaleBlobfish[setdiff(rownames(gbmMaleBlobfish),
- c(rownames(lggFemaleBlobfish),
- rownames(gbmFemaleBlobfish),
- rownames(lggMaleBlobfish))),]
- # Plot these networks, color-coding by pathway (use geneColorMapping for this.)
- # Also, include the TF labels.
- mrnaColor <- rgb(red = 1, green = 0, blue = 0, alpha = 0.5)
- arColor <- rgb(red = 0, green = 0, blue = 1, alpha = 0.5)
- immuneColor <- rgb(red = 0, green = 1, blue = 0, alpha = 0.5)
- carbColor <- rgb(red = 1, green = 1, blue = 0, alpha = 0.5)
- ecmColor <- rgb(red = 1, green = 0, blue = 1, alpha = 0.5)
- cancerColor <- rgb(red = 0, green = 1, blue = 1, alpha = 0.5)
- hypoxiaColor <- rgb(red = 0, green = 0, blue = 0, alpha = 0.5)
- gbmFemaleToPathway <- gbmFemaleSpecificBlobfish
- gbmFemaleToPathway$pathway <- "placeholder"
- gbmFemaleToPathway[which(gbmFemaleToPathway$gene %in% mrnaGenes), "pathway"] <- "Splicing"
- gbmFemaleToPathway[which(gbmFemaleToPathway$gene %in% arGenes), "pathway"] <- "Androgen Receptor"
- gbmFemaleToPathway[which(gbmFemaleToPathway$gene %in% immuneGenes), "pathway"] <- "Immune"
- gbmFemaleToPathway[which(gbmFemaleToPathway$gene %in% carbGenes), "pathway"] <- "Carbohydrate Metabolism"
- gbmFemaleToPathway[which(gbmFemaleToPathway$gene %in% ecmGenes), "pathway"] <- "Extracellular Matrix"
- gbmFemaleToPathway[which(gbmFemaleToPathway$gene %in% cancerGenes), "pathway"] <- "Targets of HIF1A"
- gbmFemaleToPathway[which(gbmFemaleToPathway$gene %in% hypoxiaGenes), "pathway"] <- "Hypoxia"
- gbmMaleToPathway <- gbmMaleSpecificBlobfish
- gbmMaleToPathway$pathway <- "placeholder"
- gbmMaleToPathway[which(gbmMaleToPathway$gene %in% mrnaGenes), "pathway"] <- "Splicing"
- gbmMaleToPathway[which(gbmMaleToPathway$gene %in% arGenes), "pathway"] <- "Androgen Receptor"
- gbmMaleToPathway[which(gbmMaleToPathway$gene %in% immuneGenes), "pathway"] <- "Immune"
- gbmMaleToPathway[which(gbmMaleToPathway$gene %in% carbGenes), "pathway"] <- "Carbohydrate Metabolism"
- gbmMaleToPathway[which(gbmMaleToPathway$gene %in% ecmGenes), "pathway"] <- "Extracellular Matrix"
- gbmMaleToPathway[which(gbmMaleToPathway$gene %in% cancerGenes), "pathway"] <- "Targets of HIF1A"
- gbmMaleToPathway[which(gbmMaleToPathway$gene %in% hypoxiaGenes), "pathway"] <- "Hypoxia"
- # Plot female.
- uniqueGenesFemale <- unique(gbmFemaleToPathway$pathway)
- geneColorMappingFemale <- data.frame(gene = uniqueGenesFemale, color = rep("gray", length(uniqueGenesFemale)))
- geneColorMappingFemale[which(uniqueGenesFemale == "Splicing"), "color"] <- mrnaColor
- geneColorMappingFemale[which(uniqueGenesFemale == "Androgen Receptor"), "color"] <- arColor
- geneColorMappingFemale[which(uniqueGenesFemale == "Immune"), "color"] <- immuneColor
- geneColorMappingFemale[which(uniqueGenesFemale == "Carbohydrate Metabolism"), "color"] <- carbColor
- geneColorMappingFemale[which(uniqueGenesFemale == "Extracellular Matrix"), "color"] <- ecmColor
- geneColorMappingFemale[which(uniqueGenesFemale == "Targets of HIF1A"), "color"] <- cancerColor
- geneColorMappingFemale[which(uniqueGenesFemale == "Hypoxia"), "color"] <- hypoxiaColor
- gbmFemaleEdgeNames <- paste(gbmFemaleToPathway$tf, gbmFemaleToPathway$pathway, sep = "_")
- gbmFemaleSimplified <- do.call(rbind, lapply(unique(gbmFemaleEdgeNames), function(edge){
- firstInstance <- which(gbmFemaleEdgeNames == edge)[1]
- print(firstInstance)
- return(data.frame(tf = gbmFemaleToPathway[firstInstance, "tf"], pathway = gbmFemaleToPathway[firstInstance, "pathway"]))
- }))
- colnames(gbmFemaleSimplified)[2] <- "gene"
- write.csv(gbmFemaleSimplified, paste0(sourceDir, "gbmFemaleSimplifiedBLOBFISH.csv"))
- PlotNetwork(gbmFemaleSimplified, geneColorMapping = geneColorMappingFemale,
- layoutBipartite = TRUE, nodeSize = 6, tfColor = "gray",
- vertexLabels = c(gbmFemaleSimplified[,2]))
- # Plot male.
- uniqueGenesMale <- unique(gbmMaleToPathway$pathway)
- geneColorMappingMale <- data.frame(gene = uniqueGenesMale, color = rep("gray", length(uniqueGenesMale)))
- geneColorMappingMale[which(uniqueGenesMale == "Splicing"), "color"] <- mrnaColor
- geneColorMappingMale[which(uniqueGenesMale == "Androgen Receptor"), "color"] <- arColor
- geneColorMappingMale[which(uniqueGenesMale == "Immune"), "color"] <- immuneColor
- geneColorMappingMale[which(uniqueGenesMale == "Carbohydrate Metabolism"), "color"] <- carbColor
- geneColorMappingMale[which(uniqueGenesMale == "Extracellular Matrix"), "color"] <- ecmColor
- geneColorMappingMale[which(uniqueGenesMale == "Targets of HIF1A"), "color"] <- cancerColor
- geneColorMappingMale[which(uniqueGenesMale == "Hypoxia"), "color"] <- hypoxiaColor
- gbmMaleEdgeNames <- paste(gbmMaleToPathway$tf, gbmMaleToPathway$pathway, sep = "_")
- gbmMaleSimplified <- do.call(rbind, lapply(unique(gbmMaleEdgeNames), function(edge){
- firstInstance <- which(gbmMaleEdgeNames == edge)[1]
- print(firstInstance)
- return(data.frame(tf = gbmMaleToPathway[firstInstance, "tf"], pathway = gbmMaleToPathway[firstInstance, "pathway"]))
- }))
- colnames(gbmMaleSimplified)[2] <- "gene"
- write.csv(gbmMaleSimplified, paste0(sourceDir, "gbmMaleSimplifiedBLOBFISH.csv"))
- PlotNetwork(gbmMaleSimplified, geneColorMapping = geneColorMappingMale,
- layoutBipartite = FALSE, nodeSize = 6, tfColor = "gray",
- vertexLabels = c(gbmMaleSimplified[,2]))
- # Obtain distributions.
- femaleDistrib <- table(gbmFemaleSimplified$gene) / length(unique(gbmFemaleBlobfish$tf))
- maleDistrib <- table(gbmMaleSimplified$gene) / length(unique(gbmMaleBlobfish$tf))
- distribDF <- data.frame(
- pathwayCategory = rep(names(femaleDistrib), 2),
- Sex = rep(c("female", "male"), each = length(femaleDistrib)),
- percentOfTFs = c(femaleDistrib, maleDistrib)
- )
- ggplot(distribDF, aes(x = pathwayCategory, y = percentOfTFs, fill = Sex)) +
- geom_col(position = "dodge") +
- labs(x = "Pathway Category", y = "Percent of Significant TFs Targeting Pathway Category", title = "Sex-Specific Pathway Targeting") +
- theme_minimal() +
- coord_flip() +
- scale_fill_manual(
- values = c("female" = rgb(red = 252 / 255, green = 182 / 255, blue = 195 / 255, alpha = 1),
- "male" = rgb(red = 189 / 255, green = 190 / 255, blue = 255 / 255, alpha = 1))
- )
- # Make an UpSet plot.
- library(ComplexHeatmap)
- gbmFemaleSimplifiedGraph <- igraph::graph_from_data_frame(gbmFemaleSimplified)
- gbmFemaleSimplifiedAdj <- igraph::as_adjacency_matrix(gbmFemaleSimplifiedGraph, sparse = FALSE,
- type = "upper")
- gbmFemaleSimplifiedAdjSub <- as.data.frame(gbmFemaleSimplifiedAdj[unique(gbmFemaleSimplified$tf),
- unique(gbmFemaleSimplified$gene)])
- gbmFemaleSimplifiedAdjPerc <- gbmFemaleSimplifiedAdjSub / nrow(gbmFemaleSimplifiedAdjSub)
- gbmMaleSimplifiedGraph <- igraph::graph_from_data_frame(gbmMaleSimplified)
- gbmMaleSimplifiedAdj <- igraph::as_adjacency_matrix(gbmMaleSimplifiedGraph, sparse = FALSE,
- type = "upper")
- gbmMaleSimplifiedAdjSub <- as.data.frame(gbmMaleSimplifiedAdj[unique(gbmMaleSimplified$tf),
- unique(gbmMaleSimplified$gene)])
- library(gridExtra)
- library(grid)
- # Set the UpSet plot intersections.
- setIntersections <- c("AndrogenReceptor&CarbohydrateMetabolism&ExtracellularMatrix&Hypoxia&Immune&Splicing",
- "AndrogenReceptor&CarbohydrateMetabolism&ExtracellularMatrix&Hypoxia&Immune&Splicing&TargetsofHIF1A",
- "AndrogenReceptor&CarbohydrateMetabolism&ExtracellularMatrix&Immune&Splicing",
- "AndrogenReceptor&CarbohydrateMetabolism&ExtracellularMatrix&Immune&Splicing&TargetsofHIF1A",
- "AndrogenReceptor&CarbohydrateMetabolism&Hypoxia&Immune&Splicing&TargetsofHIF1A",
- "AndrogenReceptor&CarbohydrateMetabolism&Immune&Splicing",
- "AndrogenReceptor&ExtracellularMatrix&Hypoxia&Immune&Splicing&TargetsofHIF1A",
- "AndrogenReceptor&Immune&Splicing&TargetsofHIF1A",
- "CarbohydrateMetabolism&ExtracellularMatrix",
- "CarbohydrateMetabolism&ExtracellularMatrix&Hypoxia&Immune&Splicing",
- "CarbohydrateMetabolism&ExtracellularMatrix&Hypoxia&Immune&Splicing&TargetsofHIF1A",
- "CarbohydrateMetabolism&ExtracellularMatrix&Hypoxia&Immune&TargetsofHIF1A",
- "CarbohydrateMetabolism&ExtracellularMatrix&Immune",
- "CarbohydrateMetabolism&ExtracellularMatrix&Immune&Splicing",
- "CarbohydrateMetabolism&ExtracellularMatrix&Immune&Splicing&TargetsofHIF1A",
- "CarbohydrateMetabolism&ExtracellularMatrix&Splicing",
- "CarbohydrateMetabolism&Hypoxia&Splicing&Immune&TargetsofHIF1A",
- "CarbohydrateMetabolism&Hypoxia&Splicing&Immune",
- "CarbohydrateMetabolism&Immune&Splicing",
- "CarbohydrateMetabolism&Immune&Splicing&TargetsofHIF1A",
- "CarbohydrateMetabolism&Immune&TargetsofHIF1A",
- "CarbohydrateMetabolism&Splicing",
- "ExtracellularMatrix&Hypoxia&Immune&Splicing&TargetsofHIF1A",
- "ExtracellularMatrix&Hypoxia&Immune&TargetsofHIF1A",
- "ExtracellularMatrix&Immune",
- "ExtracellularMatrix&Immune&Hypoxia",
- "ExtracellularMatrix&Immune&Hypoxia&Splicing",
- "ExtracellularMatrix&Immune&Splicing",
- "ExtracellularMatrix&Immune&Splicing&TargetsofHIF1A",
- "ExtracellularMatrix&Immune&TargetsofHIF1A",
- "Hypoxia&Immune",
- "Hypoxia&Immune&Splicing&TargetsofHIF1A",
- "Hypoxia&Immune&TargetsofHIF1A",
- "Hypoxia&Immune&Splicing",
- "Immune",
- "Immune&ExtracellularMatrix",
- "Immune&Hypoxia",
- "Immune&Splicing",
- "Immune&Splicing&TargetsofHIF1A",
- "Immune&TargetsofHIF1A",
- "Splicing")
- setIntersectionsBinary <- c("1111110", "1111111", "1110110", "1110111", "1101111",
- "1100110", "1011111", "1000111", "0110000", "0111110",
- "0111111", "0111101", "0110100", "0110110", "0110111",
- "0110010", "0101110", "0101111", "0100110", "0100111",
- "0100101", "0100010", "0011100", "0011110", "0011111",
- "0011101", "0010100", "0010110", "0010111", "0010101",
- "0001100", "0001110", "0001111", "0001001", "0000100",
- "0000110", "0000111", "0000101", "0000010")
- # Set up the matrices accordingly.
- gbmFemaleSimplifiedAdjSubMat <- as.matrix(gbmFemaleSimplifiedAdjSub)
- gbmMaleSimplifiedAdjSubMat <- as.matrix(gbmMaleSimplifiedAdjSub)
- mode(gbmFemaleSimplifiedAdjSubMat) <- "logical"
- mode(gbmMaleSimplifiedAdjSubMat) <- "logical"
- gbmFemaleSimplifiedAdjComb <- make_comb_mat(gbmFemaleSimplifiedAdjSubMat,
- mode = "distinct")
- gbmMaleSimplifiedAdjComb <- make_comb_mat(gbmMaleSimplifiedAdjSubMat,
- mode = "distinct")
- gbmFemaleSimplifiedAdjComb <- gbmFemaleSimplifiedAdjComb[sort(rownames(gbmFemaleSimplifiedAdjComb)),]
- gbmMaleSimplifiedAdjComb <- gbmMaleSimplifiedAdjComb[sort(rownames(gbmMaleSimplifiedAdjComb)),]
- gbmFemaleSimplifiedAdjComb <- gbmFemaleSimplifiedAdjComb[,setIntersectionsBinary]
- gbmMaleSimplifiedAdjComb <- gbmMaleSimplifiedAdjComb[,setIntersectionsBinary]
- # Print differences.
- femalePercentages <- attr(gbmFemaleSimplifiedAdjComb, "comb_size") / sum(attr(gbmFemaleSimplifiedAdjComb, "comb_size"))
- malePercentages <- attr(gbmMaleSimplifiedAdjComb, "comb_size") / sum(attr(gbmMaleSimplifiedAdjComb, "comb_size"))
- sexDiffs <- attr(gbmFemaleSimplifiedAdjComb, "comb_size") - attr(gbmMaleSimplifiedAdjComb, "comb_size")
- print(attr(gbmFemaleSimplifiedAdjComb, "dimnames")[[1]][which(sexDiffs > 100)])
- # Make plots.
- ylim_range <- c(0, 150)
- maleColor <- rgb(red = 189 / 255, green = 190 / 255,
- blue = 255 / 255)
- femaleColor <- rgb(red = 252 / 255, green = 182 / 255,
- blue = 195 / 255)
- maleColorSat <- rgb(red = 130 / 255, green = 141 / 255,
- blue = 255 / 255)
- femaleColorSat <- rgb(red = 255 / 255, green = 115 / 255,
- blue = 147 / 255)
- barsToHighlightFemales <- c("1111111", "0111111", "0110111", "0010111")
- barsToHighlightMales <- c("0111110", "0110110", "0011110", "0100110", "0010110", "0000110",
- "0000010")
- combColors <- rep("black", length(setIntersectionsBinary))
- combColors[which(setIntersectionsBinary %in% barsToHighlightFemales)] <- femaleColorSat
- combColors[which(setIntersectionsBinary %in% barsToHighlightMales)] <- maleColorSat
- taMale <- HeatmapAnnotation(
- "Co-Regulator Count" = anno_barplot(
- comb_size(gbmMaleSimplifiedAdjComb), # the bar heights
- ylim = ylim_range, # fix the y-axis range
- gp = gpar(fill = maleColor, col = NA), # bar color + remove border
- border = FALSE
- ),
- annotation_name_side = "left", # put label on left
- annotation_name_rot = 0,
- annotation_height = unit(4, "cm"),
- annotation_name_gp = gpar(fontface = "bold")
- )
- taFemale <- HeatmapAnnotation(
- "Co-Regulator Count" = anno_barplot(
- comb_size(gbmFemaleSimplifiedAdjComb), # the bar heights
- ylim = ylim_range, # fix the y-axis range
- gp = gpar(fill = femaleColor, col = NA), # bar color + remove border
- border = FALSE
- ),
- annotation_name_side = "left", # put label on left
- annotation_name_rot = 0,
- annotation_height = unit(4, "cm"),
- annotation_name_gp = gpar(fontface = "bold")
- )
- raMale <- HeatmapAnnotation(
- "Regulator Count" = anno_barplot(
- set_size(gbmMaleSimplifiedAdjComb), # bar lengths = set sizes
- border = FALSE,
- gp = gpar(fill = maleColor, col = NA)
- ),
- which = "row", # <- row annotation
- annotation_name_side = "bottom", # put label under x-axis
- annotation_name_rot = 0, # horizontal
- annotation_name_gp = gpar(fontface = "bold"),
- annotation_width = unit(3, "cm")
- )
- raFemale <- HeatmapAnnotation(
- "Regulator Count" = anno_barplot(
- set_size(gbmFemaleSimplifiedAdjComb), # bar lengths = set sizes
- border = FALSE,
- gp = gpar(fill = femaleColor, col = NA)
- ),
- which = "row", # <- row annotation
- annotation_name_side = "bottom", # put label under x-axis
- annotation_name_rot = 0, # horizontal
- annotation_name_gp = gpar(fontface = "bold"),
- annotation_width = unit(3, "cm")
- )
- grid.newpage()
- UpSet(gbmFemaleSimplifiedAdjComb, top_annotation = taFemale, right_annotation = raFemale,
- set_order = order(rownames(gbmFemaleSimplifiedAdjComb)),
- comb_col = combColors)
- gridFemale <- grid.grab()
- grid.newpage()
- UpSet(gbmMaleSimplifiedAdjComb, top_annotation = taMale, right_annotation = raMale,
- set_order = order(rownames(gbmFemaleSimplifiedAdjComb)),
- comb_col = combColors)
- gridMale <- grid.grab()
- grid.arrange(grobs = list(gridFemale, gridMale), nrow = 2) # two rows
RunBLOBFISHAllTFS.R at commit 10f7c28, no license · at the source
Overview
- Department of Biomedical Engineering, Johns Hopkins University, 3400 N. Charles Street, Baltimore, MD 21218 USA
- Department of Biostatistics, Harvard T.H. Chan School of Public Health, Harvard University, 677 Huntington Ave, Boston, MA 02115 USA
- Department of Medical Oncology, Dana-Farber Cancer Institute, Boston, MA USA
- Channing Division of Network Medicine, Brigham and Women’s Hospital, 181 Longwood Ave, Boston, MA 02115 USA
- Department of Medicine, Harvard Medical School, 25 Shattuck Street, Boston, MA 02115 USA
Abstract
Background: Glioblastoma or GBM (IDH wild-type) is an aggressive brain tumor that is notoriously resistant to treatment, with an average survival time of 17 months. While the overall outcome is poor for both males and females, sex differences in GBM incidence and outcome suggest sex-specific biological mechanisms underlie tumorigenesis. In contrast, low-grade glioma (LGG) is a less aggressive brain tumor that tends to have a better prognosis and a longer survival time.
Methods: To understand mechanisms contributing to treatment resistance in GBM in both males and females, we inferred gene regulatory networks (GRNs) for males and females with LGG and GBM using RNA-seq data from The Cancer Genome Atlas (TCGA). We analyzed these to identify both sex-specific and sex-stratified gene regulation in GBM. We then validated these results on a separate cohort, the Repository of Molecular BRAin Neoplasia DaTa (REMBRANDT).
Results: We found sex-specific differential targeting of several pathways, including hypoxia and related pathways (carbohydrate metabolism, innate immune processes, and extracellular matrix pathways) known to be dysregulated in hypoxic conditions, in GBM when compared against LGG. After further evaluating the co-regulation of sex-specific pathways in GBM, we found that females exhibited a greater degree of co-regulation between hypoxia and hypoxia-associated transcriptional programs with the aforementioned downstream pathways than did males.
Conclusions: Our results suggest that dysregulation of hypoxia-related pathways in GBM plays a female-specific role in resistance to treatment and overall outcomes.
Supplementary Information: The online version contains supplementary material available at 10.1186/
Reproduced under the paper's license (CC BY), from the paper cited above.
Repositories
Its files are read in the Code ↔ Paper reader above, with 12 matches between paragraphs and lines of code.
QuackenbushLab/Adebari_Glioma_scripts
10f7c2853b53b7d5080ea248d69f9b99b84a5927, 29 April 2026Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
16 files
- Code_to_filter_by_PCG.r, R, 12 lines
- NORMALIZED_DATA_CODE.r, R, 6 lines
- PathwayDifferentialAnaly
sis.R , R, 127 lines, 1 match - PercentileMonster.R, R, 83 lines
- RunBLOBFISHAllTFS.R, R, 387 lines, 3 matches
- blobfishforrevdata.r, R, 407 lines, 1 match
- compareBLOBFISH_HIF1A.R, R, 66 lines
- concatenate.py, Python, 11 lines
- diffanalysis.R, R, 225 lines
- plotBLOBFISH_REMBRANDT_n
oAR.R , R, 268 lines, 2 matches - preprocessREMBRANDT.R, R, 94 lines, 1 match
- runPANDA_REMBRANDT.R, R, 39 lines
- runpanda.py, Python, 56 lines
- separate_samples.py, Python, 26 lines
- updatecode.py, Python, 78 lines
- README.md, Text, 56 lines
netZoo/netZooPy
60bcaf5ac69ac8f002db5fc6b1b10cbc101ee822, 9 January 2026Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
69 files
- docs/
conf.py , Python, 211 lines - netZooPy/
__init__.py , Python, 12 lines - netZooPy/
bonobo/ , Python, 4 lines__init__.py - netZooPy/
bonobo/ , Python, 389 linesbonobo.py - netZooPy/
bonobo/ , Python, 294 linesio.py - netZooPy/
bonobo/ , Python, 16 linestimer.py - netZooPy/
clean.sh , Shell, 3 lines - netZooPy/
cli.py , Python, 16 lines - netZooPy/
cobra/ , Python, 3 lines__init__.py - netZooPy/
cobra/ , Python, 80 linescobra.py - netZooPy/
command_line.py , Python, 461 lines - netZooPy/
condor/ , Python, 1 line__init__.py - netZooPy/
condor/ , Python, 506 linescondor.py - netZooPy/
condor/ , Python, 19 linestimer.py - netZooPy/
dragon/ , Python, 3 lines__init__.py - netZooPy/
dragon/ , Python, 579 linesdragon.py - netZooPy/
giraffe/ , Python, 4 lines__init__.py - netZooPy/
giraffe/ , Python, 319 linesgiraffe.py - netZooPy/
giraffe/ , Python, 35 linesutils.py - netZooPy/
lioness/ , Python, 5 lines__init__.py - netZooPy/
lioness/ , Python, 48 linesanalyze_lioness.py - netZooPy/
lioness/ , Python, 148 linesio.py - netZooPy/
lioness/ , Python, 573 lineslioness.py - netZooPy/
lioness/ , Python, 212 lineslioness_for_dragon.py - netZooPy/
lioness/ , Python, 368 lineslioness_for_otter.py - netZooPy/
lioness/ , Python, 184 lineslioness_for_puma.py - netZooPy/
lioness/ , Python, 38 linesonlineCoexpression.py - netZooPy/
lioness/ , Python, 104 linesrun_lioness.py - netZooPy/
lioness/ , Python, 16 linestimer.py - netZooPy/
otter/ , Python, 4 lines__init__.py - netZooPy/
otter/ , Python, 143 linesotter.py - netZooPy/
panda/ , Python, 6 lines__init__.py - netZooPy/
panda/ , Python, 106 linesanalyze_panda.py - netZooPy/
panda/ , Python, 189 linescalculations.py - netZooPy/
panda/ , Python, 133 linescalculations_gpu.py - netZooPy/
panda/ , Python, 76 linesio.py - netZooPy/
panda/ , Python, 817 lines, 1 matchpanda.py - netZooPy/
panda/ , Python, 85 linesrun_panda.py - netZooPy/
panda/ , Python, 16 linestimer.py - netZooPy/
puma/ , Python, 7 lines__init__.py - netZooPy/
puma/ , Python, 131 linescalculations.py - netZooPy/
puma/ , Python, 80 linescalculations_gpu.py - netZooPy/
puma/ , Python, 546 linespuma.py - netZooPy/
puma/ , Python, 92 linesrun_puma.py - netZooPy/
puma/ , Python, 16 linestimer.py - netZooPy/
sambar/ , Python, 3 lines__init__.py - netZooPy/
sambar/ , Python, 332 linessambar.py - recipe/
test.py , Python, 2 lines - setup.py, Python, 34 lines
- tests/
lioness/ , Python, 28 linesdragon/ make_toy_data.py - tests/
lioness/ , Python, 118 lineslioness_gpu.py - tests/
test_cobra.py , Python, 43 lines - tests/
test_condor.py , Python, 52 lines - tests/
test_dragon.py , Python, 135 lines - tests/
test_giraffe.py , Python, 59 lines - tests/
test_lioness.py , Python, 168 lines - tests/
test_lioness_dragon.py , Python, 31 lines - tests/
test_otter.py , Python, 85 lines - tests/
test_panda.py , Python, 408 lines - tests/
test_puma.py , Python, 69 lines - tests/
test_sambar.py , Python, 24 lines - tutorials/
condor/ , Jupyter, 109 linescondor_tutorial.ipynb - tutorials/
gpupanda/ , Jupyter, 114 linesgpuPanda_tutorial.ipynb - tutorials/
lioness/ , Jupyter, 121 linesBuilding_single-sample_r egulatory_networks_using _LIONESS_and_netZooPy.ip ynb - tutorials/
panda/ , Jupyter, 166 linesControlling_The_Variance _Of_PANDA_Networks.ipynb - tutorials/
panda/ , Jupyter, 197 linesUp_and_running_with_PAND A_and_netZooPy.ipynb - tutorials/
sambar/ , Jupyter, 94 linessambar_tutorial.ipynb - LICENSE, License, 674 lines
- README.md, Text, 111 lines
netZoo/netZooR
47cdd73a6eefa969b02dd33f04f9306d2a8785d9, 24 July 2026Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
103 files
- R/
ALPACA.R , R, 927 lines - R/
BLOBFISH.R , R, 727 lines - R/
COBRA.R , R, 89 lines - R/
CONDOR.R , R, 1,042 lines - R/
CRANE.R , R, 671 lines - R/
DRAGON.R , R, 412 lines - R/
EGRET.R , R, 147 lines - R/
LIONESS.R , R, 225 lines - R/
MONSTER.R , R, 1,677 lines, 1 match - R/
OTTER.R , R, 70 lines - R/
PANDA.R , R, 203 lines - R/
PUMA.R , R, 459 lines - R/
SAMBAR.R , R, 249 lines - R/
SEAHORSE.R , R, 2,075 lines, 1 match - R/
SPIDER.R , R, 448 lines - R/
TIGER.R , R, 526 lines - R/
UNAGI.R , R, 507 lines - R/
YARN.R , R, 666 lines - R/
pandaDiffEdges.R , R, 79 lines - R/
pandaToAlpaca.R , R, 62 lines - R/
pandaToCondorObject.R , R, 91 lines - R/
sourcePPI.R , R, 50 lines - R/
zzz.R , R, 3 lines - docs/
articles/ , JavaScript, 15 linesALPACA_files/ accessible-code-block-0. 0.1/ empty-anchor.js - docs/
articles/ , JavaScript, 33 linesALPACA_files/ anchor-sections-1.0/ anchor-sections.js - docs/
articles/ , JavaScript, 15 linesApplicationinGTExData_fi les/ accessible-code-block-0. 0.1/ empty-anchor.js - docs/
articles/ , JavaScript, 33 linesApplicationinGTExData_fi les/ anchor-sections-1.0/ anchor-sections.js - docs/
articles/ , JavaScript, 839 linesApplicationinGTExData_fi les/ htmlwidgets-1.3/ htmlwidgets.js - docs/
articles/ , JavaScript, 31 linesApplicationinGTExData_fi les/ vis-4.20.1/ vis.min.js - docs/
articles/ , JavaScript, 4,230 linesApplicationinGTExData_fi les/ visNetwork-binding-2.0.9 / visNetwork.js - docs/
articles/ , JavaScript, 15 linesApplicationwithTBdataset _files/ accessible-code-block-0. 0.1/ empty-anchor.js - docs/
articles/ , JavaScript, 33 linesApplicationwithTBdataset _files/ anchor-sections-1.0/ anchor-sections.js - docs/
articles/ , JavaScript, 15 linesCONDOR_files/ accessible-code-block-0. 0.1/ empty-anchor.js - docs/
articles/ , JavaScript, 15 linesEGRET_toy_example_files/ accessible-code-block-0. 0.1/ empty-anchor.js - docs/
articles/ , JavaScript, 33 linesEGRET_toy_example_files/ anchor-sections-1.0/ anchor-sections.js - docs/
articles/ , JavaScript, 15 linesLionessApplicationinGTEx Data_files/ accessible-code-block-0. 0.1/ empty-anchor.js - docs/
articles/ , JavaScript, 33 linesLionessApplicationinGTEx Data_files/ anchor-sections-1.0/ anchor-sections.js - docs/
articles/ , JavaScript, 15 linesMONSTER_files/ accessible-code-block-0. 0.1/ empty-anchor.js - docs/
articles/ , JavaScript, 33 linesMONSTER_files/ anchor-sections-1.0/ anchor-sections.js - docs/
articles/ , JavaScript, 15 linesSAMBAR_files/ accessible-code-block-0. 0.1/ empty-anchor.js - docs/
articles/ , JavaScript, 33 linesSAMBAR_files/ anchor-sections-1.0/ anchor-sections.js - docs/
articles/ , JavaScript, 15 linesTutorialOTTER_files/ accessible-code-block-0. 0.1/ empty-anchor.js - docs/
articles/ , JavaScript, 33 linesTutorialOTTER_files/ anchor-sections-1.0/ anchor-sections.js - docs/
articles/ , JavaScript, 15 linespandaRApplicationinGTExD ata_files/ accessible-code-block-0. 0.1/ empty-anchor.js - docs/
articles/ , JavaScript, 33 linespandaRApplicationinGTExD ata_files/ anchor-sections-1.0/ anchor-sections.js - docs/
articles/ , JavaScript, 15 linespandaR_files/ accessible-code-block-0. 0.1/ empty-anchor.js - docs/
articles/ , JavaScript, 33 linespandaR_files/ anchor-sections-1.0/ anchor-sections.js - docs/
articles/ , JavaScript, 15 linesyarn_files/ accessible-code-block-0. 0.1/ empty-anchor.js - docs/
bootstrap-toc.js , JavaScript, 159 lines - docs/
deps/ , JavaScript, 7 linesbootstrap-5.2.2/ bootstrap.bundle.min.js - docs/
deps/ , JavaScript, 7 linesbootstrap-5.3.1/ bootstrap.bundle.min.js - docs/
deps/ , JavaScript, 5 linesbootstrap-toc-1.0.1/ bootstrap-toc.min.js - docs/
deps/ , JavaScript, 7 linesclipboard.js-2.0.11/ clipboard.min.js - docs/
deps/ , JavaScript, 7 linesheadroom-0.11.0/ headroom.min.js - docs/
deps/ , JavaScript, 7 linesheadroom-0.11.0/ jQuery.headroom.min.js - docs/
deps/ , JavaScript, 7,407 linesjquery-3.6.0/ jquery-3.6.0.js - docs/
deps/ , JavaScript, 2 linesjquery-3.6.0/ jquery-3.6.0.min.js - docs/
deps/ , JavaScript, 7 linessearch-1.0.0/ autocomplete.jquery.min. js - docs/
deps/ , JavaScript, 9 linessearch-1.0.0/ fuse.min.js - docs/
deps/ , JavaScript, 7 linessearch-1.0.0/ mark.min.js - docs/
docsearch.js , JavaScript, 85 lines - docs/
katex-auto.js , JavaScript, 14 lines - docs/
lightswitch.js , JavaScript, 85 lines - docs/
pkgdown.js , JavaScript, 162 lines - inst/
extdata/ , Python, 716 lineslioness.py - inst/
extdata/ , Python, 1,075 lines, 1 matchpanda.py - tests/
testthat.R , R, 32 lines - tests/
testthat/ , R, 70 linestest-alpaca.R - tests/
testthat/ , R, 534 linestest-blobfish.R - tests/
testthat/ , R, 123 linestest-cobra.R - tests/
testthat/ , R, 79 linestest-condor.R - tests/
testthat/ , R, 238 linestest-crane.R - tests/
testthat/ , R, 160 linestest-dragon.R - tests/
testthat/ , R, 48 linestest-egret.R - tests/
testthat/ , R, 95 linestest-lioness.R - tests/
testthat/ , R, 569 linestest-monster.R - tests/
testthat/ , R, 10 linestest-otter.R - tests/
testthat/ , R, 69 linestest-panda.R - tests/
testthat/ , R, 10 linestest-pandadiffedges.R - tests/
testthat/ , R, 7 linestest-pandatoalpaca.R - tests/
testthat/ , R, 7 linestest-pandatocondorobject .R - tests/
testthat/ , R, 49 linestest-puma.R - tests/
testthat/ , R, 14 linestest-sambar.R - tests/
testthat/ , R, 1,507 linestest-seahorse.R - tests/
testthat/ , R, 28 linestest-source.PPI.R - tests/
testthat/ , R, 60 linestest-spider.R - tests/
testthat/ , R, 183 linestest-tiger.R - tests/
testthat/ , R, 454 linestest-unagi.R - tests/
testthat/ , R, 140 linestest-yarn.R - vignettes/
ALPACA.Rmd , R, 48 lines - vignettes/
ApplicationinGTExData.Rm , R, 203 linesd - vignettes/
ApplicationwithTBdataset , R, 182 lines.Rmd - vignettes/
CONDOR.Rmd , R, 102 lines - vignettes/
EGRET_toy_example.Rmd , R, 137 lines - vignettes/
LionessApplicationinGTEx , R, 185 linesData.Rmd - vignettes/
MONSTER.Rmd , R, 234 lines - vignettes/
SAMBAR.Rmd , R, 48 lines - vignettes/
TutorialOTTER.Rmd , R, 238 lines - vignettes/
pandaR.Rmd , R, 81 lines - vignettes/
pandaRApplicationinGTExD , R, 198 linesata.Rmd - vignettes/
yarn.Rmd , R, 128 lines - LICENSE, License, 674 lines
- README.md, Text, 242 lines
The paper's code and data availability statement is in the Data section.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 183 scripts, each with its path and the digest of its content;
- 12 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
Datasets cited
- figshare:32989188, at figshare; found in DataCite
- gencodegenes.org/
human , at gencodegenes.org; found in “Data availability” - geo:GSE108474, at NCBI GEO; found in the text, “Data preprocessing”
- zenodo:18226833, at Zenodo; found in “Data availability”
Data availability
Gene expression data for GBM and LGG are accessible through Zenodo (https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 28 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 10 authors, 7 keywords, 9 MeSH terms, 9 funders, 68 references.
Cite
This paper
Adebari, T., Fanfani, V., Guebila, M. B., DeConti, D., Shutta, K. H., Lopes-Ramos, C. M., Hsu, L., DeMeo, D. L., Quackenbush, J., & Eicher, T. (2026). Gene regulatory network analysis identifies dysregulation of hypoxia pathways as contributing to glioblastoma treatment resistance in females. Biology of sex differences, 17(1), 134. https://
BibTeX
@article{adebari2026gene
author = {Adebari, Tomisin and Fanfani, Viola and Guebila, Marouen Ben and DeConti, Derrick and Shutta, Katherine Hoff and Lopes-Ramos, Camila M and Hsu, Lauren and DeMeo, Dawn L and Quackenbush, John and Eicher, Tara},
title = {{Gene regulatory network analysis identifies dysregulation of hypoxia pathways as contributing to glioblastoma treatment resistance in females}},
journal = {Biology of sex differences},
year = {2026},
month = may,
volume = {17},
number = {1},
pages = {134},
publisher = {BMC},
issn = {2042-6410},
doi = {10.1186/
url = {https://
pmid = {42169093},
pmcid = {PMC13371200}
}
RIS
TY - JOUR
AU - Adebari, Tomisin
AU - Fanfani, Viola
AU - Guebila, Marouen Ben
AU - DeConti, Derrick
AU - Shutta, Katherine Hoff
AU - Lopes-Ramos, Camila M
AU - Hsu, Lauren
AU - DeMeo, Dawn L
AU - Quackenbush, John
AU - Eicher, Tara
TI - Gene regulatory network analysis identifies dysregulation of hypoxia pathways as contributing to glioblastoma treatment resistance in females
T2 - Biology of sex differences
J2 - Biol Sex Differ
PY - 2026
DA - 2026/
VL - 17
IS - 1
SP - 134
SN - 2042-6410
PB - BMC
DO - 10.1186/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1186/
"type": "article-journal",
"title": "Gene regulatory network analysis identifies dysregulation of hypoxia pathways as contributing to glioblastoma treatment resistance in females",
"container-title": "Biology of sex differences",
"author": [
{
"family": "Adebari",
"given": "Tomisin"
},
{
"family": "Fanfani",
"given": "Viola"
},
{
"family": "Guebila",
"given": "Marouen Ben"
},
{
"family": "DeConti",
"given": "Derrick"
},
{
"family": "Shutta",
"given": "Katherine Hoff"
},
{
"family": "Lopes-Ramos",
"given": "Camila M"
},
{
"family": "Hsu",
"given": "Lauren"
},
{
"family": "DeMeo",
"given": "Dawn L"
},
{
"family": "Quackenbush",
"given": "John"
},
{
"family": "Eicher",
"given": "Tara"
}
],
"container-title-short":
"volume": "17",
"issue": "1",
"page": "134",
"DOI": "10.1186/
"PMID": "42169093",
"PMCID": "PMC13371200",
"ISSN": "2042-6410",
"publisher": "BMC",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
21
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1038/s42003-026-10957-8 [code]
- Brain defence by the extracellular matrix protein Cochlin.Journal: Communications biologyIn common: CuPy, Stan, edgeR, 15 other tools, cellular / molecular
- [2] doi:10.1016/j.xcrm.2026.102766 [code]
- A longitudinal single-cell and spatial multiomic atlas of pediatric high-grade glioma.Journal: Cell reports. MedicineIn common: edgeR, limma, igraph, 11 other tools, other condition, cellular / molecular, 2 references
- [3] doi:10.1186/s12967-026-08266-z [code]
- Single-cell multi-omic integration analysis prioritizes druggable genes and reveals cell-type-specific causal effects in glioblastomagenesis.Journal: Journal of translational medicineIn common: edgeR, reticulate, limma, 6 other tools, other condition, cellular / molecular, 4 references
- [4] doi:10.1093/bioinformatics/btag592 [code]
- Network-based stratification of allele-specific expression reveals patient subgroups in Huntington's disease.Journal: Bioinformatics (Oxford, England)In common: edgeR, reticulate, limma, 11 other tools, other condition
- [5] doi:10.1038/s41467-026-76675-1 [code]
- Long-read proteogenomic atlas of human neuronal differentiation reveals isoform diversity informing neurodevelopmental risk mechanisms.Journal: Nature communicationsIn common: edgeR, reticulate, limma, 11 other tools
- [6] doi:10.1016/j.cpblue.2026.100007 [code]
- An integrated single-cell and spatial proteotranscriptomics atlas of fibroblast-driven immunoregulation within the human adult oral cavity.Journal: Cell press blueIn common: edgeR, reticulate, limma, 11 other tools
- [7] doi:10.1073/pnas.2523130123 [code]
- FABP7 controls radial glial scaffold stability during human cortical development.Journal: Proceedings of the National Academy of Sciences of the United States of AmericaIn common: edgeR, reticulate, limma, 10 other tools
- [8] doi:10.1016/j.xcrm.2026.102651 [code]
- Integrative CSF profiling identifies disease-specific immune responses in leptomeningeal disease.Journal: Cell reports. MedicineIn common: reticulate, igraph, ComplexHeatmap, 10 other tools, other condition, cellular / molecular
- [9] doi:10.3389/fnmol.2026.1844705 [code]
- Risperidone regulates the expression of schizophrenia-related genes in the forebrain of adult male mice.Journal: Frontiers in molecular neuroscienceIn common: edgeR, limma, igraph, 10 other tools, cellular / molecular
- [10] doi:10.1371/journal.pcbi.1014327 [code]
- Supervised deep learning with gene functional annotation for cell classification.Journal: PLoS computational biologyIn common: reticulate, limma, reshape2, 10 other tools, other condition, cellular / molecular
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 3 repositories of the authors' code, each at its verified commit and with its license, 183 scripts, and 12 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:a9606a062a1db519…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
