OSCR

Patient-derived organoids predict personalized drug response and reveal alternative therapeutic options in glioblastoma.

Code ↔ Paper

3 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 3 matches
  1. [1] § Results › Transcriptomic analysis reveals potential mechanisms underlying both innate and acquired TMZ resistance in GBOs with MGMT methylation ↔ Code/RNA_analysis.R, lines 276–352 · score 0.69 · Gene Ontology, pathway enrichment, fold changes, DEGs, KEGG, GO
  2. [2] § Results › Transcriptomic analysis reveals potential mechanisms underlying both innate and acquired TMZ resistance in GBOs with MGMT methylation ↔ Code/RNA_analysis.R, lines 276–352 · score 0.56 · fold changes, expressed genes, enriched, DEGs, enrichment, pathways
  3. [3] § Results › Transcriptomic analysis reveals potential mechanisms underlying both innate and acquired TMZ resistance in GBOs with MGMT methylation ↔ Code/RNA_analysis.R, lines 51–104 · score 0.54 · mismatch repair, KEGG pathway, MMR, gene

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 · 352 lines · 13 KB · no license · 3 matches

  1. # rna analysis
  2. library(org.Hs.eg.db)
  3. library(clusterProfiler)
  4. library(GSEABase)
  5. library(GSVA)
  6. library(edgeR)
  7. library(tidyverse)
  8. library(ggthemes)
  9. library(ggpubr)
  10. library(dplyr)
  11. library(ComplexHeatmap)
  12. library(limma)
  13. library(pheatmap)
  14. library(RColorBrewer)
  15. library(enrichplot)
  16. # RNA expression correlation
  17. ## TMM normalize
  18. anno = read.delim("anno.txt", row.names = 1)
  19. ### load data
  20. counts <- read.delim("RNA_readcount.txt", sep="\t")
  21. colnames(counts)[3:14] <- colnames(counts)[3:14] %>% gsub("\\.","-",.)
  22. counts_dedup <- counts[,c(2:14)]
  23. counts_dedup <- counts_dedup[!duplicated(counts_dedup$Gene_id), ]
  24. ### normalize
  25. group=anno$Type
  26. count_input <- counts_dedup[,c(anno$RNA_ID)]
  27. row.names(count_input) <- counts_dedup$Gene_id
  28. y <- DGEList(counts=count_input, group=group)
  29. keep <- filterByExpr(y, group=group)
  30. y <- y[keep, , keep.lib.sizes=FALSE]
  31. y <- calcNormFactors(y)
  32. bcv <- 0.4 # well-controlled experiments are 0.4 for human data
  33. et <- exactTest(y, dispersion=bcv^2)
  34. top <- topTags(et)
  35. tmm_log <- cpm(y, log=TRUE)
  36. exp.df <- t(tmm_log)
  37. exp.df <- merge(anno, exp.df, by="row.names")
  38. ## draw
  39. pdf("RNA_cor_per_patient.pdf", 16, 4)
  40. exp.df %>% filter(Sample %in% c("GBO-001", "GBO-002", "GBO-003", "GBO-005", "GBO-008")) %>% column_to_rownames("RNA_ID") %>%
  41. select(Type, Patient, colnames(exp.df)[23:21125]) %>% pivot_longer(colnames(exp.df)[23:21125], names_to = "Gene", values_to = "Expression") %>%
  42. pivot_wider(names_from = Type , values_from = Expression ) %>%
  43. ggplot(aes(x=Tissue, y=Organoid)) +
  44. stat_density_2d(aes(fill = stat(level)), alpha=0.9, geom = "polygon", show.legend = T , color="black", size = 0.2, bins = 9) +
  45. scale_fill_distiller(palette = "Spectral") +
  46. theme_base() + stat_cor(method = "spearman") +
  47. facet_wrap(~ Patient, scales = "free", ncol = 5) + labs(x = "mRNA expression (Tissue)", y = "mRNA expression (Organoid)")
  48. dev.off()
  49. # KEGG pathway GSVA
  50. ## load data
  51. tpm_final <- read.delim("RNA_TPM.txt")
  52. colnames(tpm_final)[3:15] <- colnames(tpm_final)[3:15] %>% gsub("\\.","-",.)
  53. tpm_final.df <- tpm_final[,c(2:15)]
  54. tpm_final.df <- tpm_final.df[!duplicated(tpm_final.df$Gene_id), ]
  55. tpm_final_mat = as.matrix(tpm_final.df %>% remove_rownames() %>% column_to_rownames("Gene_id"))
  56. kegg_geneSets = getGmt("c2.cp.kegg_medicus.v2023.2.Hs.symbols.gmt")
  57. ## run GSVA
  58. tpm_final_mat=as.matrix(tpm_final.df %>% remove_rownames() %>% column_to_rownames("Gene_id"))
  59. kegg_gsva=gsva(tpm_final_mat, kegg_geneSets, method="gsva", mx.diff=TRUE, verbose=FALSE, parallel.sz=1)
  60. kegg_gsva=data.frame(t(kegg_gsva), check.names = F, stringsAsFactors = F)
  61. gbo_rna_names = c("GBO-001-OR3-R", "GBO-002-OR5-R", "GBO-003-OR4-R", "GBO-005-OR4-R", "GBO-006-OR7-R", "GBO-008-OR-p-3-R", "GBO-019-OR2-R", "GBO-015-OR-R")
  62. ## draw
  63. pdf("KEGG_MMR_barplot_8GBO.pdf", 5, 5)
  64. kegg_gsva[gbo_rna_names,c("KEGG_MEDICUS_REFERENCE_MISMATCH_REPAIR", "KEGG_MEDICUS_REFERENCE_HOMOLOGOUS_RECOMBINATION")] %>%
  65. rownames_to_column("Sample") %>%
  66. pivot_longer(c("KEGG_MEDICUS_REFERENCE_MISMATCH_REPAIR", "KEGG_MEDICUS_REFERENCE_HOMOLOGOUS_RECOMBINATION"),
  67. names_to = "KEGG", values_to = "GSVA") %>%
  68. mutate(KEGG = gsub("KEGG_MEDICUS_REFERENCE_MISMATCH_REPAIR","Mismatch Repair", KEGG)) %>%
  69. filter(KEGG == "Mismatch Repair") %>%
  70. mutate(Sample = substr(Sample, 1, 7)) %>%
  71. ggplot(aes(x = Sample, y = GSVA)) +
  72. geom_bar(position=position_dodge(), stat="identity", color="black") +
  73. theme_base(base_size = 15) +
  74. theme(axis.text.x=element_text(color="black",angle = 45, hjust=1))+
  75. labs(x = NULL, y = "GSVA score", subtitle = "KEGG Mismatch Repair") +
  76. geom_hline(yintercept=0, size=0.1) +
  77. theme(panel.grid.major.y = element_line(color = 'gray80', linewidth = 0.5))
  78. dev.off()
  79. # enrichment analysis
  80. ## filter gene
  81. tpm_final.df %>% select("Gene_id", "GBO-005-OR4-R", "GBO-019-OR2-R") %>% remove_rownames() %>%
  82. column_to_rownames("Gene_id") %>%
  83. apply(2, function(x) {x > 5}) %>% as.data.frame %>% rowSums() %>%
  84. as.data.frame %>% rename(exp_thres = ".") %>%
  85. filter(exp_thres > 0) %>% row.names() -> gbo005_over5_gene_id
  86. ## select gene
  87. tpm_final.df %>% select("Gene_id", "GBO-005-OR4-R", "GBO-019-OR2-R") %>% filter(Gene_id %in% gbo005_over5_gene_id) %>%
  88. mutate(GBO005 = log2(`GBO-005-OR4-R` + 1)) %>% mutate(GBO005R = log2(`GBO-019-OR2-R` + 1)) %>%
  89. mutate(FC = GBO005R - GBO005) %>% filter(FC >= 2) %>% arrange(desc(FC)) %>% select(Gene_id) %>% deframe -> GBO5R_fc_over2
  90. ## enrichment analysis
  91. GBO5R_fc_over2_ego <-enrichGO(GBO5R_fc_over2, OrgDb='org.Hs.eg.db', keyType = "SYMBOL", ont = "ALL",
  92. pvalueCutoff = 0.05, pAdjustMethod = "BH",
  93. qvalueCutoff = 0.25, minGSSize = 10, maxGSSize = 500)
  94. ## draw
  95. pdf("GBO-019_FC_ego.dotplot.pdf", 7.5, 7)
  96. dotplot(GBO5R_fc_over2_ego %>% filter(ONTOLOGY == "BP"), showCategory = 15, label_format = 50,
  97. title="GBO-019, Biologial process")
  98. dev.off()
  99. # MGMT mRNA expression
  100. tpm.anno.df <- merge(anno, tpm_final.df %>% remove_rownames() %>% column_to_rownames("Gene_id") %>% t() , by="row.names")
  101. pdf("MGMT_mRNA_barplot.pdf", 4.5, 4)
  102. tpm.anno.df %>% filter(Type == "Organoid") %>% remove_rownames() %>% column_to_rownames("Row.names") %>%
  103. select("Sample", "MGMT") %>%
  104. ggplot(aes(x = Sample, y = MGMT)) +
  105. geom_bar(position=position_dodge(), stat="identity", color="black") +
  106. theme_base(base_size = 15) +
  107. theme(axis.text.x=element_text(color="black",angle = 45, hjust=1))+
  108. geom_hline(yintercept=0, size=0.1) +
  109. labs(x = NULL, y = "TPM", subtitle = "MGMT RNA epxression") +
  110. theme(panel.grid.major.y = element_line(color = 'gray80', linewidth = 0.5))
  111. dev.off()
  112. # VEGFA, VEGFR expression
  113. pdf("VEGFA_VEGFR_tpm.pdf", 7, 4)
  114. tpm_final.df %>% filter(Gene_id %in% c("VEGFA", "FLT1", "KDR", "FLT4")) %>%
  115. pivot_longer(colnames(tpm_final.df)[-1], names_to = "Sample", values_to = "TPM") %>%
  116. mutate(Type = ifelse(grepl("-T-R" , Sample), "Tissue", "Organoid")) %>%
  117. mutate(log2TPM = log2(TPM+1)) %>%
  118. mutate(Gene_id = factor(Gene_id, levels = c("VEGFA", "FLT1", "KDR", "FLT4"))) %>%
  119. ggplot(aes(x=Type, y=log2TPM, fill=Type) ) + theme_base() +
  120. geom_dotplot(binaxis = "y", stackdir = "center", binpositions="all", binwidth = 0.3,color="black") +
  121. facet_grid(~ Gene_id)+ labs(y="log2 TPM", x =NULL) +
  122. theme(axis.text.x=element_text(color="black", angle = 45, hjust=1))
  123. dev.off()
  124. # Read TPM expression data and set gene IDs as row names
  125. GBO_TPM <- read.delim("GBM_GBO_TPM.txt")
  126. rownames(GBO_TPM) <- GBO_TPM$Gene_id
  127. # Keep only columns with "OR" in their names (GBO samples)
  128. GBO_TPM <- GBO_TPM[,grepl("OR", colnames(GBO_TPM))]
  129. # Filter out genes with low average expression (<5 TPM)
  130. GBO_TPM <- GBO_TPM[rowMeans(GBO_TPM) >= 5, ]
  131. # Filter out genes where ≤3 samples have expression >1
  132. GBO_TPM <- GBO_TPM %>%
  133. filter(rowSums(. > 1) > 3)
  134. # Log2 transform the data (adding 1 to avoid log(0))
  135. log_GBO_TPM.raw <- log2(GBO_TPM +1)
  136. # Save current row names as a new column for filtering
  137. log_GBO_TPM.raw$rownames <- rownames(log_GBO_TPM.raw)
  138. # Keep genes with expression >0 in more than 3 samples
  139. log_GBO_TPM <- log_GBO_TPM.raw %>%
  140. filter(rowSums(across(-rownames, ~ . > 0)) > 3)
  141. # Restore original row names after filtering
  142. rownames(log_GBO_TPM) <- rownames(GBO_TPM)
  143. ### Separate samples into TMZ-resistant and TMZ-sensitive groups
  144. # TMZ-resistant samples
  145. log_GBO_TPM.TMZ.resi <- log_GBO_TPM[,c("GBO.002.OR5.R", "GBO.003.OR4.R", "GBO.006.OR7.R")]
  146. rownames(log_GBO_TPM.TMZ.resi) <- rownames(log_GBO_TPM)
  147. # TMZ-sensitive samples
  148. log_GBO_TPM.TMZ.sens <- log_GBO_TPM[,c("GBO.001.OR3.R", "GBO.005.OR4.R", "GBO.008.OR.p.3.R")]
  149. rownames(log_GBO_TPM.TMZ.sens) <- rownames(log_GBO_TPM)
  150. ### Calculate fold-change between resistant and sensitive samples
  151. log_GBO_TPM <- log_GBO_TPM %>% select(-rownames)
  152. # Compute average expression per gene for each group
  153. resi.mean <- rowMeans(log_GBO_TPM.TMZ.resi)
  154. sens.mean <- rowMeans(log_GBO_TPM.TMZ.sens)
  155. fold.diff <- resi.mean - sens.mean
  156. # Select top 50 upregulated and top 50 downregulated genes (total 100)
  157. top_DEGs <- c(names(sort(fold.diff, decreasing=TRUE)[1:50]), names(sort(fold.diff)[1:50]))
  158. # Prepare data for the heatmap (excluding the last column if needed)
  159. data <- log_GBO_TPM[top_DEGs, -ncol(log_GBO_TPM)]
  160. # Rename columns for clarity
  161. colnames(data) <- c("GBO-001", "GBO-002", "GBO-003", "GBO-005", "GBO-006","GBO-008")
  162. # Define sample types for each column
  163. sample_types <- c("TMZ-sensitive", "TMZ-resistant", "TMZ-resistant",
  164. "TMZ-sensitive", "TMZ-resistant", "TMZ-sensitive")
  165. # Set colors for sample types
  166. type_colors <- c("TMZ-sensitive" = "yellow", "TMZ-resistant" = "purple")
  167. # Create column annotation data frame
  168. annotation <- data.frame(Type = sample_types)
  169. rownames(annotation) <- colnames(data)
  170. # Define annotation colors for both column and row annotations
  171. ann_colors <- list(
  172. Type = c("TMZ-sensitive" = "yellow", "TMZ-resistant" = "purple"),
  173. `TMZ-resist Expr` = c("Upregulated" = "brown", "Downregulated" = "darkgreen")
  174. )
  175. # Create row annotation indicating whether genes are up- or downregulated
  176. annotation_row <- data.frame(`TMZ-resist Expr` = factor(c(rep("Upregulated", 50), rep("Downregulated", 50))))
  177. rownames(annotation_row) <- rownames(data)
  178. colnames(annotation_row) <- "TMZ-resist Expr"
  179. # Plot the heatmap with row scaling and clustering
  180. pheatmap(
  181. as.matrix(data),
  182. annotation_col = annotation,
  183. annotation_colors = ann_colors,
  184. annotation_row = annotation_row,
  185. annotation_names_row = FALSE,
  186. scale = "row", # Standardize by rows
  187. cluster_rows = TRUE,
  188. cluster_cols = TRUE,
  189. color=colorRampPalette(c("blue", "white", "red"))(100),
  190. show_rownames=TRUE
  191. )
  192. #Figure 4C, Figure S6
  193. # Load TPM expression data and set row names to gene IDs
  194. GBO_TPM <- read.delim("GBM_GBO_TPM.txt")
  195. rownames(GBO_TPM) <- GBO_TPM$Gene_id
  196. # Keep only columns with "OR" in their names (GBO samples)
  197. GBO_TPM <- GBO_TPM[,grepl("OR", colnames(GBO_TPM))]
  198. # Log2 transform the TPM data (adding 1 to avoid log(0))
  199. log_GBO_TPM <- log2(GBO_TPM +1)
  200. ### Separate samples into TMZ-resistant and TMZ-sensitive groups
  201. log_GBO_TPM.TMZ.resi <- log_GBO_TPM[,c("GBO.002.OR5.R", "GBO.003.OR4.R", "GBO.006.OR7.R")]
  202. log_GBO_TPM.TMZ.sens <- log_GBO_TPM[,c("GBO.001.OR3.R", "GBO.005.OR4.R", "GBO.008.OR.p.3.R")]
  203. # Calculate fold changes between resistant and sensitive samples
  204. resi.mean <- rowMeans(log_GBO_TPM.TMZ.resi)
  205. sens.mean <- rowMeans(log_GBO_TPM.TMZ.sens)
  206. fold.diff <- resi.mean - sens.mean
  207. # Print average expression for each group (for reference)
  208. mean(resi.mean)
  209. mean(sens.mean)
  210. # Plot a histogram of the fold changes
  211. hist(fold.diff, breaks=200, xlim=c(-3,3), xlab="Fold Change", main = "Histogram of GBO RNA expression FC")
  212. # Calculate p-value for all genes (estimating differential expressions)
  213. # Welch Two Sample t-test
  214. # Calculate p-values using the Wilcoxon test for each gene
  215. p.val <- sapply(1:nrow(log_GBO_TPM.TMZ.resi), function(i)
  216. wilcox.test(as.matrix(log_GBO_TPM.TMZ.resi[i,]),
  217. as.matrix(log_GBO_TPM.TMZ.sens[i,]), paired = FALSE)$p.value)
  218. # Adjust p-values using Benjamini-Hochberg FDR
  219. FDR <- round(p.adjust(p.val, 'BH'),3)
  220. fData <- data.frame(Accession=rownames(log_GBO_TPM.TMZ.resi), FC=fold.diff, p.value=p.val, FDR=FDR)
  221. fData
  222. ### Gene Ontology Enrichment Analysis
  223. # Identify differentially expressed genes (DEGs)
  224. fData$DEG.UP <- fData$FC > 1
  225. fData$DEG.DOWN <- fData$FC < -1
  226. # Select only DEGs (either up or down)
  227. DEG <- fData[fData$DEG.UP | fData$DEG.DOWN,]
  228. # Order DEGs by fold change (highest first)
  229. DEG <- DEG[order(DEG$FC, decreasing=T),]
  230. # Convert gene symbols to Entrez IDs using org.Hs.eg.db
  231. entrezID <- bitr(DEG$Accession, fromType = "SYMBOL",
  232. toType = "ENTREZID",
  233. OrgDb = org.Hs.eg.db)
  234. # Create a named vector of fold changes with Entrez IDs as names
  235. FC <- DEG$FC
  236. names(FC) <- entrezID$ENTREZID
  237. FC
  238. # Perform GO enrichment analysis (for all ontologies)
  239. ego <- enrichGO(entrezID$ENTREZID,
  240. OrgDb = "org.Hs.eg.db",
  241. ont = "ALL",
  242. readable = TRUE,
  243. pvalueCutoff = 0.01,
  244. qvalueCutoff = 0.05,
  245. universe = FC)
  246. # Plot GO enrichment results with a dot plot, split by ontology
  247. pdf("GO_dotplot_TMZresponse.pdf", height=16, width=12)
  248. dotplot(ego, split = "ONTOLOGY", showCategory = 20, font.size = 12, label_format = 50) +
  249. facet_grid(ONTOLOGY ~ ., scale = "free_y") +
  250. geom_count() +
  251. scale_size_area(max_size = 8)
  252. dev.off()
  253. # Perform KEGG pathway enrichment analysis
  254. kk <- enrichKEGG(entrezID$ENTREZID,
  255. organism = 'hsa',
  256. pvalueCutoff = 0.01,
  257. qvalueCutoff = 0.05)
  258. pdf("KEGG_dotplot_TMZresponse.pdf", height=16, width=12)
  259. # Plot KEGG enrichment results using a dot plot
  260. dotplot(kk, font.size = 10, showCategory = 20) +
  261. geom_count() +
  262. scale_size_area(max_size = 5)
  263. dev.off()

RNA_analysis.R at commit 3bd53b6, no license · at the source

Overview

Authors: Jisu Park1,2, Meiyu Qiu3,2, Eun Jeong Cho4, Sanghee Seo5, Ji-Hoon Moon3,2, Minji Kim3,2, Hyemin Mun4, Hyounji Yun3,2, Hoewon Park3,2, Arim Lim3,2, Younsoo Kang4,6, Jeong-woo Oh4, Heejeong Youk4, Seon-Hwan Kim7, Yeongbeom Seo8, Sae Min Kwon9, Kyoung Su Sung10, Hyuk-Jin Oh11, Kyung Rae Cho12, Kyungtae Yoon5, Nam-Shik Kim5, Se Jin Jang4,13, Kyung Hwan Kim7, Ki-Jun Yoon3,1,2
13 affiliations
  1. Graduate School of Stem Cell and Regeneration Biology, Korea Advanced Institute of Science and Technology (KAIST), Daejeon 34141, Republic of Korea
  2. KAIST Stem Cell Center, KAIST, Daejeon 34141, Republic of Korea
  3. Department of Biological Sciences, Korea Advanced Institute of Science and Technology (KAIST), Daejeon 34141, Republic of Korea
  4. SG BioScience, Inc., Seoul 02637, Republic of Korea
  5. Department of Biological Sciences, Chungnam National University, Daejeon 34134, Republic of Korea
  6. Department of Medical Science, Asan Medical Center, University of Ulsan College of Medicine, Seoul 05505, Republic of Korea
  7. Department of Neurosurgery, Chungnam National University Hospital, Chungnam National University School of Medicine, Daejeon 35015, Republic of Korea
  8. Department of Neurosurgery, Yeungnam University Hospital, Yeungnam University School of Medicine, Daegu 42415, Republic of Korea
  9. Department of Neurosurgery, Dongsan Medical Center, Keimyung University School of Medicine, Daegu 41931, Republic of Korea
  10. Department of Neurosurgery, Dong-A University Hospital, Dong-A University, College of Medicine, Busan 49201, Republic of Korea
  11. Department of Neurosurgery, Soonchunhyang University Hospital Cheonan, Soonchunhyang University School of Medicine, Cheonan 31151, Republic of Korea
  12. Department of Neurosurgery, Konkuk University Medical Center, Seoul 05030, Republic of Korea
  13. Department of Pathology, Asan Medical Center, University of Ulsan College of Medicine, Seoul 05505, Republic of Korea
Journal: Cell reports. Medicine, volume 7, issue 7, article 102850
Dates: received 22 February 2025; accepted 14 May 2026; published online 11 June 2026; in print July 2026
Type: Research article · Language: English
License: CC BY-NC-ND
Identifiers: DOI 10.1016/j.xcrm.2026.102850 · PMID 42276053 · PMCID PMC13400186 · OpenAlex W7164364482
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: human (organism), mouse (organism), other condition (population), clinical / translational (subfield)
Methods: Statistics, Connectivity
Keywords: glioblastoma, patient-derived organoid, precision oncology, personalized medicine, organoid-based drug screening, temozolomide resistance, lazertinib
MeSH: Brain Neoplasms*, Glioblastoma*, Organoids*, Precision Medicine*, Animals, Cell Line, Tumor, DNA Modification Methylases, DNA Repair Enzymes, Drug Resistance, Neoplasm, Female, Gene Expression Regulation, Neoplastic, Humans, Mice, Temozolomide, Tumor Suppressor Proteins, Xenograft Model Antitumor Assays (* major topic)
Topic: Glioma Diagnosis and Treatment (Genetics, Medicine), according to OpenAlex
Funding: Ministry of Health and Welfare (RS-2024-00439675, RS-2025-24536373); National Research Foundation of Korea (RS-2025-02214081, RS-2024-00332454, RS-2026-25488918, RS-2023-00209833, RS-2024-00440778, RS-2025-02219306); Korea Health Industry Development Institute; Ministry of Science, ICT and Future Planning; Korea Foundation for Women In Science, Engineering and Technology (WISET 2024-764)
Citations: cited by 1 paper (Europe PMC); 82 references in the paper
Research resources: Mouse anti-SOX2 RRID:AB_10843364, Rabbit anti-OLIG2 RRID:AB_10861310, Rabbit anti-PTPRZ1 RRID:AB_11127912, Alexa 594 donkey-anti chicken IgG RRID:AB_2340377, Alexa 594 donkey-anti rabbit IgG RRID:AB_2340621, Alexa 488 donkey-anti-mouse IgG RRID:AB_2340846, Alexa 647 donkey-anti mouse IgG RRID:AB_2340862, Alexa 647 donkey-anti rabbit IgG RRID:AB_2492288, Rabbit anti-Ki67 RRID:AB_2756525, Mouse Anti-STEM121 RRID:AB_2801314, RRID:AB_2885016, Chicken anti-GFAP RRID:AB_304558, Mouse anti-NCAM1 RRID:AB_306945, RRID:AB_309864, NOD.Cg-PrkdcscidIl2rgtm1Wjl/SzJ RRID:IMSR_JAX:005557

Abstract

The abstract is not reproduced here: the paper's license (CC BY-NC-ND) does not allow it. Read it in the paper, at the publisher or on Europe PMC.

Repository

Its files are read in the Code ↔ Paper reader above, with 3 matches between paragraphs and lines of code.

SGMedical/GBO

License: none: the authors keep all their rights
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 3bd53b6dc092698e780cb000c474f91f8e6ebba8, 14 February 2025
Languages: R (2)
Size: 3 files, 2 scripts
Software Heritage: not archived
Found in: “Data and code availability”
Holds: README
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: ComplexHeatmap (2 files), ggpubr (2 files), tidyverse (2 files), circlize (1 file), clusterProfiler (1 file), edgeR (1 file), limma (1 file), pheatmap (1 file), reshape2 (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
3 files

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:

  • 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 2 scripts, each with its path and the digest of its content;
  • 3 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

No dataset and no data link were found in the paper.

Code and data availability statement

The paper has a code and data availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:

  • it points to the authors' code: SGMedical/GBO
  • it says that the data are available on request
  • it says that the code is available on request

Read it in the paper: doi.org/10.1016/j.xcrm.2026.102850.

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, 27 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 24 authors, 7 keywords, 16 MeSH terms, 5 funders, 80 references, 15 RRIDs.

Cite

This paper

Park, J., Qiu, M., Cho, E. J., Seo, S., Moon, J.-H., Kim, M., Mun, H., Yun, H., Park, H., Lim, A., Kang, Y., Oh, J.-w., Youk, H., Kim, S.-H., Seo, Y., Kwon, S. M., Sung, K. S., Oh, H.-J., Cho, K. R., . . . Yoon, K.-J. (2026). Patient-derived organoids predict personalized drug response and reveal alternative therapeutic options in glioblastoma. Cell reports. Medicine, 7(7), 102850. https://doi.org/10.1016/j.xcrm.2026.102850

BibTeX

@article{park2026patient,
author = {Park, Jisu and Qiu, Meiyu and Cho, Eun Jeong and Seo, Sanghee and Moon, Ji-Hoon and Kim, Minji and Mun, Hyemin and Yun, Hyounji and Park, Hoewon and Lim, Arim and Kang, Younsoo and Oh, Jeong-woo and Youk, Heejeong and Kim, Seon-Hwan and Seo, Yeongbeom and Kwon, Sae Min and Sung, Kyoung Su and Oh, Hyuk-Jin and Cho, Kyung Rae and Yoon, Kyungtae and Kim, Nam-Shik and Jang, Se Jin and Kim, Kyung Hwan and Yoon, Ki-Jun},
title = {{Patient-derived organoids predict personalized drug response and reveal alternative therapeutic options in glioblastoma}},
journal = {Cell reports. Medicine},
year = {2026},
month = jun,
volume = {7},
number = {7},
pages = {102850},
publisher = {Elsevier},
issn = {2666-3791},
doi = {10.1016/j.xcrm.2026.102850},
url = {https://doi.org/10.1016/j.xcrm.2026.102850},
pmid = {42276053},
pmcid = {PMC13400186}
}

RIS

TY - JOUR
AU - Park, Jisu
AU - Qiu, Meiyu
AU - Cho, Eun Jeong
AU - Seo, Sanghee
AU - Moon, Ji-Hoon
AU - Kim, Minji
AU - Mun, Hyemin
AU - Yun, Hyounji
AU - Park, Hoewon
AU - Lim, Arim
AU - Kang, Younsoo
AU - Oh, Jeong-woo
AU - Youk, Heejeong
AU - Kim, Seon-Hwan
AU - Seo, Yeongbeom
AU - Kwon, Sae Min
AU - Sung, Kyoung Su
AU - Oh, Hyuk-Jin
AU - Cho, Kyung Rae
AU - Yoon, Kyungtae
AU - Kim, Nam-Shik
AU - Jang, Se Jin
AU - Kim, Kyung Hwan
AU - Yoon, Ki-Jun
TI - Patient-derived organoids predict personalized drug response and reveal alternative therapeutic options in glioblastoma
T2 - Cell reports. Medicine
J2 - Cell Rep Med
PY - 2026
DA - 2026/06/11
VL - 7
IS - 7
SP - 102850
SN - 2666-3791
PB - Elsevier
DO - 10.1016/j.xcrm.2026.102850
UR - https://doi.org/10.1016/j.xcrm.2026.102850
LA - en
ER -

CSL-JSON

{
"id": "10.1016/j.xcrm.2026.102850",
"type": "article-journal",
"title": "Patient-derived organoids predict personalized drug response and reveal alternative therapeutic options in glioblastoma",
"container-title": "Cell reports. Medicine",
"author": [
{
"family": "Park",
"given": "Jisu"
},
{
"family": "Qiu",
"given": "Meiyu"
},
{
"family": "Cho",
"given": "Eun Jeong"
},
{
"family": "Seo",
"given": "Sanghee"
},
{
"family": "Moon",
"given": "Ji-Hoon"
},
{
"family": "Kim",
"given": "Minji"
},
{
"family": "Mun",
"given": "Hyemin"
},
{
"family": "Yun",
"given": "Hyounji"
},
{
"family": "Park",
"given": "Hoewon"
},
{
"family": "Lim",
"given": "Arim"
},
{
"family": "Kang",
"given": "Younsoo"
},
{
"family": "Oh",
"given": "Jeong-woo"
},
{
"family": "Youk",
"given": "Heejeong"
},
{
"family": "Kim",
"given": "Seon-Hwan"
},
{
"family": "Seo",
"given": "Yeongbeom"
},
{
"family": "Kwon",
"given": "Sae Min"
},
{
"family": "Sung",
"given": "Kyoung Su"
},
{
"family": "Oh",
"given": "Hyuk-Jin"
},
{
"family": "Cho",
"given": "Kyung Rae"
},
{
"family": "Yoon",
"given": "Kyungtae"
},
{
"family": "Kim",
"given": "Nam-Shik"
},
{
"family": "Jang",
"given": "Se Jin"
},
{
"family": "Kim",
"given": "Kyung Hwan"
},
{
"family": "Yoon",
"given": "Ki-Jun"
}
],
"container-title-short": "Cell Rep Med",
"volume": "7",
"issue": "7",
"page": "102850",
"DOI": "10.1016/j.xcrm.2026.102850",
"PMID": "42276053",
"PMCID": "PMC13400186",
"ISSN": "2666-3791",
"publisher": "Elsevier",
"URL": "https://doi.org/10.1016/j.xcrm.2026.102850",
"language": "en",
"issued": {
"date-parts": [
[
2026,
6,
11
]
]
}
}

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.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, limma, circlize, 6 other tools, other condition, 3 references
[2] doi:10.1186/s11689-026-09713-0 [code]
DRP1 mutations associated with EMPF1 encephalopathy perturb the transcriptional profile and maturation of cortical neurons.
Journal: Journal of neurodevelopmental disorders
In common: edgeR, limma, circlize, 5 other tools, other condition, 4 references
[3] doi:10.1186/s13073-026-01664-4 [code]
Integrative multi-omics profiling reveals distinct evolutionary and immunogenic features of brain oligometastasis in lung adenocarcinoma.
Journal: Genome medicine
In common: circlize, clusterProfiler, ComplexHeatmap, 3 other tools, other condition, mouse, 6 references
[4] doi:10.1016/j.xcrm.2026.102766 [code]
A longitudinal single-cell and spatial multiomic atlas of pediatric high-grade glioma.
Journal: Cell reports. Medicine
In common: edgeR, limma, circlize, 6 other tools, other condition, 2 references
[5] doi:10.1016/j.isci.2026.115657 [code]
Integration of machine learning to develop a disulfidptosis model for predicting glioma prognosis, immunotherapy response, and drug.
Journal: iScience
In common: edgeR, limma, circlize, 6 other tools, clinical / translational, other condition, 1 reference
[6] doi:10.1016/j.isci.2026.115982 [code]
Multi-omics profiling-derived signature links cellular ecosystem to glioblastoma prognosis.
Journal: iScience
In common: edgeR, limma, circlize, 5 other tools, other condition, 2 references
[7] doi:10.1016/j.xcrm.2026.102682 [code]
TET CpG sequence-context-specific DNA demethylation shapes progression of IDH-mutant gliomas.
Journal: Cell reports. Medicine
In common: edgeR, limma, circlize, 6 other tools, other condition, 1 reference
[8] doi:10.1038/s41586-026-10512-9 [code]
Astrocyte glucocorticoid receptor signalling restricts neuronal plasticity.
Journal: Nature
In common: edgeR, circlize, clusterProfiler, 5 other tools, mouse, 3 references
[9] doi:10.1038/s41593-026-02367-0 [code]
A reproducible three-dimensional model of human brain tissue to investigate physiological and disease-associated microglia phenotypes.
Journal: Nature neuroscience
In common: edgeR, limma, circlize, 6 other tools, 1 reference
[10] 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 medicine
In common: edgeR, limma, circlize, 5 other tools, other condition, 2 references

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.

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.