OSCR

Single-nucleus multiome shows motor neuron glutamate overactivation in amyotrophic lateral sclerosis.

Code ↔ Paper

10 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 10 matches
  1. [1] § Results › Single-nucleus transcriptional profiling of the motor cortex and spinal cord ↔ code/annotation/06_ThirdAnnotation_brain.R, lines 360–401 · score 0.98 · Ependymal_1, Lymphocyte_1, Meninges_1, Meninges_2, Micro_5, Micro_6
  2. [2] § Results › Single-nucleus transcriptional profiling of the motor cortex and spinal cord ↔ code/annotation/06_ThirdAnnotation_spinalcord.R, lines 352–393 · score 0.98 · Ependymal_1, Lymphocyte_1, Meninges_1, Meninges_2, Micro_5, Micro_6
  3. [3] § Results › Single-nucleus transcriptional profiling of the motor cortex and spinal cord ↔ code/annotation/06_ThirdAnnotation_brain.R, lines 360–401 · score 0.87 · Macro_1, Micro_1, Micro_2, Micro_3, Micro_4, Pericyte_1
  4. [4] § Results › Single-nucleus transcriptional profiling of the motor cortex and spinal cord ↔ code/annotation/06_ThirdAnnotation_spinalcord.R, lines 352–393 · score 0.87 · Macro_1, Micro_1, Micro_2, Micro_3, Micro_4, Pericyte_1
  5. [5] § Results › Single-nucleus transcriptional profiling of the motor cortex and spinal cord ↔ code/preprocessing/04_FindDEMarkers.R, lines 207–274 · score 0.83 · VAT1L, GABAergic, SLC17A7, EYA4, LAMP5, VIP
  6. [6] § Results › Single-nucleus transcriptional profiling of the motor cortex and spinal cord ↔ code/preprocessing/04_FindDEMarkers_spinalcord.R, lines 205–244 · score 0.74 · SLC5A7, GABAergic, SLC17A7, ACLY, GAD1, GAD2
  7. [7] § Results › Reduced oligodendrocyte subpopulation stabilizes synapses and protects motor neurons in ALS ↔ code/annotation/06_ThirdAnnotation_brain.R, lines 403–457 · score 0.68 · OligoProg_1, Opc_1, Oligo_1, Oligo_4, oligodendrocyte, neurons
  8. [8] § Results › Reduced oligodendrocyte subpopulation stabilizes synapses and protects motor neurons in ALS ↔ code/annotation/06_ThirdAnnotation_spinalcord.R, lines 395–449 · score 0.68 · OligoProg_1, Opc_1, Oligo_1, Oligo_4, oligodendrocyte, neurons
  9. [9] § Results › ALS-specific glutamate signalling changes in the spinal motor neurons ↔ code/annotation/06_ThirdAnnotation_brain.R, lines 403–457 · score 0.65 · INH_4, INH_1, INH_7, mn, ex, neurons
  10. [10] § Results › ALS-specific glutamate signalling changes in the spinal motor neurons ↔ code/annotation/06_ThirdAnnotation_spinalcord.R, lines 395–449 · score 0.65 · INH_4, INH_1, INH_7, mn, ex, neurons

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 · 497 lines · 14 KB · no license · 4 matches

  1. #' ---
  2. #' title: "06 - Third annotation"
  3. #' author: "ertakeuchi"
  4. #' date: "09 November 2023"
  5. #' output:
  6. #' html_document:
  7. #' # code_folding: "hide"
  8. #' # fig_caption: "true"
  9. #' theme:
  10. #' sketchy: "true"
  11. #' highlight: "tango"
  12. #' warnings: "false"
  13. #' params:
  14. #' tissue_name:
  15. #' value: brain
  16. #' choices:
  17. #' - spinalcord
  18. #' - brain
  19. #' ----
  20. #'
  21. ## ----setup, include=FALSE-----------------------------------------------------
  22. knitr::opts_chunk$set(echo = TRUE)
  23. #'
  24. #' # 1. Set environment
  25. #'
  26. #' ## 0-0. Load libraries
  27. ## ----include=FALSE------------------------------------------------------------
  28. library("Seurat")
  29. library("SeuratDisk")
  30. library("Signac")
  31. library("tidyverse")
  32. library("reticulate")
  33. use_python("/usr/bin/python3")
  34. library("patchwork")
  35. library("gridExtra")
  36. set.seed(1234)
  37. #'
  38. #'
  39. #' ## 0-1. Set a common directory (FOR CONTAINER)
  40. ## -----------------------------------------------------------------------------
  41. homeDir <- file.path("/mnt/home/etakeuchi/bioinformatics/ALS_snRNAseq")
  42. # homeDir <- file.path(".")
  43. # NGSDir <- file.path(homeDir, "../../NGS_original")
  44. metadataDir <- file.path(homeDir, "metadata")
  45. # Get command-line arguments
  46. # args <- commandArgs(trailingOnly = TRUE)
  47. # # Check if the correct number of arguments is provided
  48. # if (length(args) != 2) {
  49. # stop("Usage: Rscript test.R tissue output_directory", call. = FALSE)
  50. # }
  51. # Extract the tissue argument
  52. # tissue <- args[1]
  53. # directory <- args[2]
  54. # feature <- args[3]
  55. # dim <- args[4]
  56. # resolution <- args[5]
  57. tissue <- "brain"
  58. directory <- "231109_experiment2/out_2"
  59. groupby_annotation <- "ThirdAnnotation"
  60. ref_annotation <- "subtype_annotation"
  61. outDir <- file.path(homeDir, "experimental_record", directory)
  62. rdataDir <- file.path(homeDir, "R/RData", tissue)
  63. resolutions <- c(0.2, 0.4, 0.6, 0.8)
  64. #'
  65. #' ################################################################################
  66. #' # Annotation 05: Third annotation
  67. #' ################################################################################
  68. #'
  69. #' # 02. Third annotation
  70. #'
  71. ## -----------------------------------------------------------------------------
  72. # 01: Set environment
  73. # |
  74. # |-- 02: Third annotation
  75. # | |
  76. # | |-- 01: Load Seurat object with Secondary Annotation using metadata
  77. # | | |
  78. # | | |-- 01: Load marker gene set for each annotation
  79. # | |
  80. # | |-- 02: Add Third annotation
  81. # | | |
  82. # | | |-- 00: Set Secondary Annotation function
  83. # | | |-- 01: Visualization of the preThirdAnnotation clusters
  84. # | | |-- 02: Astrocytes
  85. # | | |-- 03: Micros
  86. # | | |-- 04: Oligodendrocytes
  87. # | | |-- 05: Neurons
  88. # | | |-- 06: Others
  89. # | |
  90. # | |-- 03: Add Third annotation to all cell clusters, and save RData
  91. #'
  92. #' ## 01: Load Seurat object with Secondary Annotation using metadata
  93. #'
  94. #'
  95. ## -----------------------------------------------------------------------------
  96. featDimList <- read.table(file = file.path(metadataDir, "featureDimList.tsv"), header = TRUE, stringsAsFactors = FALSE)
  97. featDimList <- featDimList[featDimList$tissue == tissue & featDimList$levels == 3, ] # levels-3 is for Third annotation
  98. featDimList <- featDimList[!is.na(featDimList$feature), ] # Others is not used for Third annotation
  99. head(featDimList)
  100. #'
  101. #' ### 01: Load marker gene set for each annotation
  102. ## -----------------------------------------------------------------------------
  103. markers_df <- read.table(file = file.path(metadataDir, "canonical_markers.tsv"), header = TRUE, stringsAsFactors = FALSE)
  104. mark1 <- markers_df[markers_df$Level == "Top", ]
  105. mark2 <- markers_df[markers_df$Level == paste0("Sub_", tissue), ]
  106. mark3 <- markers_df[markers_df$Level == paste0("SubPrimary_", tissue), ]
  107. mark4 <- markers_df[markers_df$Level == paste0("Sub_", "spinalcord") ,]
  108. mark5 <- mark4[mark4$Category == "Oligo_prog", ]
  109. # mark5
  110. #'
  111. #' ## 02: Add Third annotation
  112. #'
  113. #' ### 00: Set Secondary Annotation function
  114. ## -----------------------------------------------------------------------------
  115. runAnalysis <- function(subPrimaryAnnotation) {
  116. filename <- featDimList$filename[featDimList$subPrimaryAnnotation == subPrimaryAnnotation]
  117. resolution <- featDimList$resolution[featDimList$subPrimaryAnnotation == subPrimaryAnnotation]
  118. filtered_resolutions <- resolutions[resolutions != resolution]
  119. so <- readRDS(file.path(rdataDir, filename))
  120. [email hidden]$seurat_clusters <- factor(
  121. [email hidden]$seurat_clusters,
  122. levels = seq_along(unique([email hidden]$seurat_clusters))
  123. )
  124. m_filtered <- [email hidden] %>%
  125. select(-contains(c(paste0("SCT_snn_res.", filtered_resolutions))))
  126. m_filtered$seurat_clusters <- as.factor(m_filtered[[paste0("SCT_snn_res.", resolution)]])
  127. m_filtered$Third_SeuratClusters <- m_filtered$seurat_clusters
  128. [email hidden] <- m_filtered
  129. Idents(so) <- "Third_SeuratClusters"
  130. p01 <- DimPlot(so, reduction = "umap_HM_03", label = TRUE, raster = TRUE)
  131. p02 <- DimPlot(so, reduction = "umap_HM_03", label = TRUE, group.by = "Condition", raster = TRUE)
  132. p03 <- DimPlot(so, reduction = "umap_HM_03", label = TRUE, group.by = "Project", raster = TRUE)
  133. p04 <- DimPlot(so, reduction = "umap_HM_03", label = TRUE, group.by = ref_annotation, raster = TRUE)
  134. p1 <- FeaturePlot(so, features = c("nCount_RNA", "nFeature_RNA"), reduction = "umap_HM_03", raster = TRUE)
  135. p2 <- FeaturePlot(so, features = mark1$Genes, cols = c("grey", "red"), reduction = "umap_HM_03", raster = TRUE)
  136. p3 <- DotPlot(so, features = mark1$Genes) +
  137. theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))
  138. p0 <- p01 + p04 / p02 + p03
  139. p4 <- p1 / p3
  140. markers <- mark3[mark3$Category == subPrimaryAnnotation, ]$Genes
  141. # markers
  142. p5 <- DotPlot(so, features = markers) +
  143. theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))
  144. p6 <- FeaturePlot(so, features = markers, cols = c("grey", "red"), reduction = "umap_HM_03", raster = TRUE)
  145. return(list(so, p0, p2, p4, p5, p6))
  146. }
  147. plotAnalysis <- function(subPrimaryAnnotation){
  148. p1 <- resultsList[[2]]
  149. ggsave(
  150. plot = p1,
  151. file.path(outDir, paste0(subPrimaryAnnotation, "_withoutRN01_Dimplot.pdf")),
  152. width = 40, height = 20
  153. )
  154. p2 <- resultsList[[3]]
  155. ggsave(
  156. plot = p2,
  157. file.path(outDir, paste0(subPrimaryAnnotation, "_withoutRN01_Featureplot.pdf")),
  158. width = 20, height = 20
  159. )
  160. p3 <- resultsList[[4]]
  161. ggsave(
  162. plot = p3,
  163. file.path(outDir, paste0(subPrimaryAnnotation, "_withoutRN01_Dotplot.pdf")),
  164. width = 25, height = 20
  165. )
  166. p4 <- resultsList[[5]]
  167. ggsave(
  168. plot = p4,
  169. file.path(outDir, paste0(subPrimaryAnnotation, "_withoutRN01_Dotplot_canonical.pdf")),
  170. width = 25, height = 20
  171. )
  172. p5 <- resultsList[[6]]
  173. ggsave(
  174. plot = p5,
  175. file.path(outDir, paste0(subPrimaryAnnotation, "_withoutRN01_Featureplot_canonical.pdf")),
  176. width = 20, height = 20
  177. )
  178. }
  179. saveAnalysis <- function(subPrimaryAnnotation){
  180. so$ThirdAnnotation <- unlist(annotations_3rd[so$Third_SeuratClusters])
  181. head([email hidden])
  182. p6_1 <- DimPlot(
  183. so, reduction = "umap_HM_03",
  184. group.by = groupby_annotation,
  185. label = TRUE, raster = TRUE
  186. )
  187. p6_2 <- DimPlot(
  188. so, reduction = "umap_HM_03",
  189. group.by = "Project",
  190. label = TRUE, raster = TRUE
  191. )
  192. p6 <- p6_1 + p6_2
  193. ggsave(
  194. file.path(outDir, paste0(subPrimaryAnnotation, "_withoutRN01_ThirdAnnotation.pdf")),
  195. plot = p6,
  196. width = 30, height = 20
  197. )
  198. # Save RData
  199. saveRDS(
  200. so,
  201. file = file.path(rdataDir, paste0(subPrimaryAnnotation, "_so_withoutRN01_ThirdAnnotation.rds")))
  202. m <- [email hidden]
  203. m_filtered <- m[, c("SecondaryAnnotation", "Third_SeuratClusters", "ThirdAnnotation")]
  204. # Save Third Annotation data with cell-barcodes as csv
  205. write.table(
  206. m_filtered,
  207. file = file.path(outDir, paste0(subPrimaryAnnotation, "_withoutRN01_ThirdAnnotation.csv")),
  208. row.names = TRUE,
  209. col.names = TRUE,
  210. sep = "\t",
  211. quote = FALSE
  212. )
  213. # }
  214. # findDEMarkers <- function(subPrimaryAnnotation){
  215. feature <- featDimList$feature[featDimList$subPrimaryAnnotation == subPrimaryAnnotation]
  216. so <- PrepSCTFindMarkers(so)
  217. feature_path <- file.path(outDir, "../../230817_experiment1/out_1", paste0(subPrimaryAnnotation, "_HVG", feature, "_second_withoutRN01_soSubFeatures.csv"))
  218. so_features <- read_csv(file = feature_path)
  219. so_features <- so_features[-1] # "X"の列を削除
  220. colnames(so_features) <- "gene"
  221. # head(so_features)
  222. so_features <- so_features$gene
  223. so.markers <- FindAllMarkers(
  224. so,
  225. assay = "SCT",
  226. only.pos = TRUE,
  227. test.use= "wilcox", # default
  228. min.pct = 0.1, # default
  229. logfc.threshold = 0.25, # default = 0.25,
  230. features = so_features
  231. )
  232. write.table(
  233. so.markers,
  234. file = file.path(outDir, paste0(subPrimaryAnnotation, "_ThirdAnnotation_AllMarkers.tsv")),
  235. row.names = FALSE,
  236. col.names = TRUE,
  237. sep = "\t",
  238. quote = FALSE
  239. )
  240. Idents(so) <- "ThirdAnnotation"
  241. clusters <- unique([email hidden]$ThirdAnnotation)
  242. for(i in seq_along(clusters)){
  243. ThirdAnnotation <- clusters[[i]]
  244. celltype_markers <- FindMarkers(
  245. so,
  246. ident.1 = ThirdAnnotation,
  247. min.pct = 0.1, # default
  248. logfc.threshold = 0.25, # default = 0.25,
  249. test.use= "wilcox", # default
  250. only.pos = TRUE,
  251. features = so_features
  252. )
  253. write.table(
  254. celltype_markers,
  255. file = file.path(outDir, paste0(subPrimaryAnnotation, "_", ThirdAnnotation, "_Markers.tsv")),
  256. row.names = TRUE,
  257. col.names = TRUE,
  258. sep = "\t",
  259. quote = FALSE
  260. )
  261. }
  262. }
  263. #'
  264. #' ### 01: Visualization of the subPrimaryAnnotation clusters
  265. ## -----------------------------------------------------------------------------
  266. subsets <- read.table(file = file.path(rdataDir, paste0(tissue, "_subsets.txt")), header = FALSE, stringsAsFactors = FALSE)$V1
  267. resultsLists <- list()
  268. for (i in seq_along(subsets)){
  269. subPrimaryAnnotation <- subsets[[i]]
  270. resultsList <- runAnalysis(subPrimaryAnnotation)
  271. so <- resultsList[[1]]
  272. plotAnalysis(subPrimaryAnnotation)
  273. resultsLists[[i]] <- resultsList
  274. names(resultsLists)[[i]] <- subPrimaryAnnotation
  275. }
  276. #'
  277. #' ### 02: Astrocytes
  278. ## -----------------------------------------------------------------------------
  279. subPrimaryAnnotation <- "Astrocytes"
  280. resultsList <- resultsLists[[subPrimaryAnnotation]]
  281. so <- resultsList[[1]]
  282. annotations_3rd <- list(
  283. "1" = "Astro_1",
  284. "2" = "Astro_2", # Oligos
  285. "3" = "Astro_3",
  286. "4" = "Astro_1",
  287. "5" = "Astro_2",
  288. "6" = "Astro_1"
  289. )
  290. # Save RData with Secondary annotation
  291. saveAnalysis(subPrimaryAnnotation)
  292. # findDEMarkers(subPrimaryAnnotation)
  293. #'
  294. #' ### 03: Micros
  295. ## -----------------------------------------------------------------------------
  296. subPrimaryAnnotation <- "Micros"
  297. resultsList <- resultsLists[[subPrimaryAnnotation]]
  298. so <- resultsList[[1]]
  299. annotations_3rd <- list(
  300. "1" = "Micro_1",
  301. "2" = "Micro_2",
  302. "3" = "Micro_3",
  303. "4" = "Micro_4",
  304. "5" = "Micro_5",
  305. "6" = "Macro_1",
  306. "7" = "Micro_6"
  307. )
  308. # Save RData with Secondary annotation
  309. saveAnalysis(subPrimaryAnnotation)
  310. # findDEMarkers(subPrimaryAnnotation)
  311. #'
  312. #' ### 04: Others
  313. ## -----------------------------------------------------------------------------
  314. # subPrimaryAnnotation <- "Others"
  315. # resultsList <- resultsLists[[subPrimaryAnnotation]]
  316. # so <- resultsList[[1]]
  317. # annotations_3rd <- list(
  318. # "1" = "Endothelial_1",
  319. # "2" = "Meninges_2",
  320. # "3" = "Lymphocyte_1",
  321. # "4" = "Pericyte_1",
  322. # "5" = "Ependymal_1",
  323. # "6" = "Meninges_1"
  324. # )
  325. # # Save RData with Secondary annotation
  326. # saveAnalysis(subPrimaryAnnotation)
  327. # # findDEMarkers(subPrimaryAnnotation)
  328. #'
  329. #' ### 05: Oligodendrocytes
  330. ## -----------------------------------------------------------------------------
  331. subPrimaryAnnotation <- "Oligos"
  332. resultsList <- resultsLists[[subPrimaryAnnotation]]
  333. so <- resultsList[[1]]
  334. annotations_3rd <- list(
  335. "1" = "Oligo_3",
  336. "2" = "Oligo_2",
  337. "3" = "Opc_1",
  338. "4" = "Oligo_1",
  339. "5" = "Oligo_4",
  340. "6" = "Oligo_1",
  341. "7" = "OligoProg_1"
  342. )
  343. saveAnalysis(subPrimaryAnnotation)
  344. # findDEMarkers(subPrimaryAnnotation)
  345. #'
  346. #' ### 06: Neurons
  347. ## -----------------------------------------------------------------------------
  348. subPrimaryAnnotation <- "Neurons"
  349. resultsList <- resultsLists[[subPrimaryAnnotation]]
  350. so <- resultsList[[1]]
  351. annotations_3rd <- list(
  352. "1" = "EX_9",
  353. "2" = "EX_13",
  354. "3" = "INH_6",
  355. "4" = "INH_4",
  356. "5" = "INH_1",
  357. "6" = "EX_4",
  358. "7" = "EX_8",
  359. "8" = "EX_12",
  360. "9" = "INH_5",
  361. "10" = "INH_3",
  362. "11" = "EX_5",
  363. "12" = "MN_1",
  364. "13" = "EX_2",
  365. "14" = "EX_10",
  366. "15" = "INH_7",
  367. "16" = "EX_11",
  368. "17" = "EX_3",
  369. "18" = "EX_6",
  370. "19" = "EX_1",
  371. "20" = "EX_7",
  372. "21" = "INH_2"
  373. )
  374. saveAnalysis(subPrimaryAnnotation)
  375. # findDEMarkers(subPrimaryAnnotation)
  376. #'
  377. #' ## 03: Add Third annotation to all cell clusters
  378. #'
  379. ## -----------------------------------------------------------------------------
  380. subsets <- read.table(file = file.path(rdataDir, paste0(tissue, "_subsets.txt")), header = FALSE, stringsAsFactors = FALSE)$V1
  381. mList <- list()
  382. for (i in seq_along(subsets)){
  383. subPrimaryAnnotation <- subsets[[i]]
  384. m <- read.table(
  385. file = file.path(outDir, paste0(subPrimaryAnnotation, "_withoutRN01_ThirdAnnotation.csv")),
  386. header = TRUE,
  387. stringsAsFactors = FALSE
  388. )
  389. mList[[i]] <- m
  390. }
  391. metadata <- do.call(rbind, mList)
  392. so.m <- readRDS(file.path(rdataDir, paste0(tissue, "_som_HVG3000_PrimaryAnnotationSymphony.rds")))
  393. so.m <- AddMetaData(so.m, metadata)
  394. unique(so.m$ThirdAnnotation)
  395. so.m <- subset(so.m, subset = ThirdAnnotation != "NA")
  396. saveRDS(so.m, file = file.path(rdataDir, paste0(tissue, "_som_HVG3000_PrimaryAnnotationSymphony_ThirdAnnotation.rds")))
  397. #'
  398. ## -----------------------------------------------------------------------------
  399. sessionInfo()
  400. #'
  401. ## -----------------------------------------------------------------------------
  402. knitr::purl(file.path("/Users/etakeuchi/bioinformatics/Neurology/ALS/ALS_snRNA_seq/code", "/06_ThirdAnnotation.Rmd"), documentation = 2)

06_ThirdAnnotation_brain.R at commit cf97472, no license · at the source

Overview

Authors: Eriko Takeuchi1,2,3, Yoshiaki Yasumizu1,3,4,5, Junko Morita2, Masakazu Ishikawa6, Kotaro Ogawa1, Daisuke Motooka3,7, Daisuke Okuzaki3,7, Miho Nagata8, Yasuki Ishihara8,9, Yohei Miyashita8,10, Yoshihiro Asano8,10, Kohji Mori11, Eiichi Morii3,12, Goichi Beck1, Yuko Saito13, Shigeo Murayama14, Hideki Mochizuki1,3,15, Seiichi Nagano1,2,3,16
16 affiliations
  1. Department of Neurology, The University of Osaka Graduate School of Medicine, Suita, Osaka 565-0871, Japan
  2. Department of Neurotherapeutics, The University of Osaka Graduate School of Medicine, Suita, Osaka 565-0871, Japan
  3. Integrated Frontier Research for Medical Science Division, Institute for Open and Transdisciplinary Research Initiatives (OTRI), The University of Osaka, Suita, Osaka 565-0871, Japan
  4. Department of Experimental Immunology, Immunology Frontier Research Center, The University of Osaka, Suita, Osaka 565-0871, Japan
  5. Department of Neurology, Yale School of Medicine, New Haven, CT 06510, USA
  6. Genome Information Research Center, The University of Osaka, Suita, Osaka 565-0871, Japan
  7. Genome Information Research Center, Research Institute for Microbial Diseases, The University of Osaka, Suita, Osaka 565-0871, Japan
  8. Department of Cardiovascular Medicine (IRUD Analysis Center), The University of Osaka Graduate School of Medicine, Suita, Osaka 565-0871, Japan
  9. NCVC Biobank, National Cerebral and Cardiovascular Center, Suita, Osaka 564-8565, Japan
  10. Department of Genomic Medicine, National Cerebral and Cardiovascular Center, Suita, Osaka 564-8565, Japan
  11. Department of Psychiatry, The University of Osaka Graduate School of Medicine, Suita, Osaka 565-0871, Japan
  12. Department of Pathology, The University of Osaka Graduate School of Medicine, Suita, Osaka 565-0871, Japan
  13. Department of Neuropathology (Brain Bank for Aging Research), Tokyo Metropolitan Geriatric Hospital and Institute of Gerontology, Itabashi, Tokyo 173-0015, Japan
  14. Brain Bank for Neurodevelopmental, Molecular Research Center for Children’s Mental Development, Neurological and Psychiatric Disorders, The University of Osaka United Graduate School of Child Development, Suita, Osaka 565-0871, Japan
  15. Department of Neurology, National Hospital Organization Osaka Toneyama Medical Center, Toyonaka, Osaka 560-0871, Japan
  16. Department of Neurodevelopmental and Neurodegenerative Disease Research, The University of Osaka United Graduate School of Child Development, Suita, Osaka 565-0871, Japan
Journal: Brain : a journal of neurology, volume 149, issue 7, pages 2480-2494
Dates: received 1 March 2025; accepted 12 October 2025; published online 11 November 2025; in print July 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1093/brain/awaf426 · PMID 41218062 · PMCID PMC13337230 · OpenAlex W4416113913
Open access: hybrid, a free copy (OpenAlex)
Status: code verified
Categories: genetics / omics (modality), human (organism), other condition (population), systems (subfield)
Methods: Spectral & time-frequency, Statistics, Smoothing, state filtering, decompositions, Machine learning, fMRI & imaging
Keywords: amyotrophic lateral sclerosis, single nucleus RNA-seq, single nucleus ATAC-seq, GWAS, spinal cord, motor cortex
MeSH: Amyotrophic Lateral Sclerosis*, Glutamic Acid*, Motor Neurons*, Aged, Female, Genome-Wide Association Study, Humans, Male, Middle Aged, Motor Cortex, Polymorphism, Single Nucleotide, Spinal Cord (* major topic)
Topic: Amyotrophic Lateral Sclerosis Research (Neurology, Medicine), according to OpenAlex
Citations: cited by 3 papers (Europe PMC); 67 references in the paper

Abstract

Amyotrophic lateral sclerosis (ALS) is a neurodegenerative disease that causes motor neuron degeneration. However, the mechanisms underlying the selective vulnerability of motor neurons and the involvement of non-motor neuron cells in ALS remain unclear.

To investigate ALS pathology at the cellular level, we performed a single-nucleus multiome analysis, including RNA sequencing and chromatin accessibility profiling, on the motor cortex (75 583 nuclei) and spinal cord (62 711 nuclei) from patients with ALS (n = 6) and controls (n = 6).

Our results revealed significant gene expression changes specifically in spinal motor neurons, including upregulation of a metabotropic glutamate receptor, GRM5, and enhanced glutamate signalling. By integrating genome-wide association study data, we identified ALS-associated single nucleotide polymorphisms (SNPs) in regulatory regions, suggesting cell-type-specific enrichment of risk, especially in microglia.

These findings suggest that changes in spinal motor neurons and their surrounding environment, including glutamate signalling, may be involved in ALS pathology. The study also provides valuable resources for future research on the underlying mechanisms and potential therapeutic targets.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repository

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

ertakeuchi/ALS_project

License: none: the authors keep all their rights
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: cf974726a451cea20e51dc0757837439ac281b38, 13 February 2025
Languages: R (20)
Size: 24 files, 20 scripts
Software Heritage: not checked
Found in: “Data availability”
Holds: README
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: patchwork (20 files), Seurat (20 files), tidyverse (20 files), reticulate (16 files), data.table (3 files), Harmony (3 files), ComplexHeatmap (2 files), cowplot (2 files), pheatmap (2 files), SingleCellExperiment (2 files), DESeq2 (1 file), lme4 (1 file), reshape2 (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
21 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;
  • 20 scripts, each with its path and the digest of its content;
  • 10 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

Data availability

Raw sequence data have been deposited at the DNA Data Bank of Japan (DDBJ) under the Accession ID JGAS000852. The codes are available on GitHub (https://github.com/ertakeuchi/ALS_project). The processed snRNA/ATAC-seq data and full DEG statistics are available in figshare (DOI: 10.6084/m9.figshare.29628653) and CZ CELLxGENE (https://cellxgene.cziscience.com/collections/0986e4cd-7a58-405d-9b91-4b199bb4124e).

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

Recorded: type, language, journal, volume, issue, pages, dates, 18 authors, 6 keywords, 12 MeSH terms, 6 funders, 66 references.

Cite

This paper

Takeuchi, E., Yasumizu, Y., Morita, J., Ishikawa, M., Ogawa, K., Motooka, D., Okuzaki, D., Nagata, M., Ishihara, Y., Miyashita, Y., Asano, Y., Mori, K., Morii, E., Beck, G., Saito, Y., Murayama, S., Mochizuki, H., & Nagano, S. (2026). Single-nucleus multiome shows motor neuron glutamate overactivation in amyotrophic lateral sclerosis. Brain : a journal of neurology, 149(7), 2480-2494. https://doi.org/10.1093/brain/awaf426

BibTeX

@article{takeuchi2026single,
author = {Takeuchi, Eriko and Yasumizu, Yoshiaki and Morita, Junko and Ishikawa, Masakazu and Ogawa, Kotaro and Motooka, Daisuke and Okuzaki, Daisuke and Nagata, Miho and Ishihara, Yasuki and Miyashita, Yohei and Asano, Yoshihiro and Mori, Kohji and Morii, Eiichi and Beck, Goichi and Saito, Yuko and Murayama, Shigeo and Mochizuki, Hideki and Nagano, Seiichi},
title = {{Single-nucleus multiome shows motor neuron glutamate overactivation in amyotrophic lateral sclerosis}},
journal = {Brain : a journal of neurology},
year = {2026},
month = jul,
volume = {149},
number = {7},
pages = {2480--2494},
publisher = {Oxford University Press},
issn = {0006-8950},
doi = {10.1093/brain/awaf426},
url = {https://doi.org/10.1093/brain/awaf426},
pmid = {41218062},
pmcid = {PMC13337230}
}

RIS

TY - JOUR
AU - Takeuchi, Eriko
AU - Yasumizu, Yoshiaki
AU - Morita, Junko
AU - Ishikawa, Masakazu
AU - Ogawa, Kotaro
AU - Motooka, Daisuke
AU - Okuzaki, Daisuke
AU - Nagata, Miho
AU - Ishihara, Yasuki
AU - Miyashita, Yohei
AU - Asano, Yoshihiro
AU - Mori, Kohji
AU - Morii, Eiichi
AU - Beck, Goichi
AU - Saito, Yuko
AU - Murayama, Shigeo
AU - Mochizuki, Hideki
AU - Nagano, Seiichi
TI - Single-nucleus multiome shows motor neuron glutamate overactivation in amyotrophic lateral sclerosis
T2 - Brain : a journal of neurology
J2 - Brain
PY - 2026
DA - 2026/07/01
VL - 149
IS - 7
SP - 2480
EP - 2494
SN - 0006-8950
PB - Oxford University Press
DO - 10.1093/brain/awaf426
UR - https://doi.org/10.1093/brain/awaf426
LA - en
ER -

CSL-JSON

{
"id": "10.1093/brain/awaf426",
"type": "article-journal",
"title": "Single-nucleus multiome shows motor neuron glutamate overactivation in amyotrophic lateral sclerosis",
"container-title": "Brain : a journal of neurology",
"author": [
{
"family": "Takeuchi",
"given": "Eriko"
},
{
"family": "Yasumizu",
"given": "Yoshiaki"
},
{
"family": "Morita",
"given": "Junko"
},
{
"family": "Ishikawa",
"given": "Masakazu"
},
{
"family": "Ogawa",
"given": "Kotaro"
},
{
"family": "Motooka",
"given": "Daisuke"
},
{
"family": "Okuzaki",
"given": "Daisuke"
},
{
"family": "Nagata",
"given": "Miho"
},
{
"family": "Ishihara",
"given": "Yasuki"
},
{
"family": "Miyashita",
"given": "Yohei"
},
{
"family": "Asano",
"given": "Yoshihiro"
},
{
"family": "Mori",
"given": "Kohji"
},
{
"family": "Morii",
"given": "Eiichi"
},
{
"family": "Beck",
"given": "Goichi"
},
{
"family": "Saito",
"given": "Yuko"
},
{
"family": "Murayama",
"given": "Shigeo"
},
{
"family": "Mochizuki",
"given": "Hideki"
},
{
"family": "Nagano",
"given": "Seiichi"
}
],
"container-title-short": "Brain",
"volume": "149",
"issue": "7",
"page": "2480-2494",
"DOI": "10.1093/brain/awaf426",
"PMID": "41218062",
"PMCID": "PMC13337230",
"ISSN": "0006-8950",
"publisher": "Oxford University Press",
"URL": "https://doi.org/10.1093/brain/awaf426",
"language": "en",
"issued": {
"date-parts": [
[
2026,
7,
1
]
]
}
}

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/s41467-026-69944-6 [code]
Multi-modal dissection of cell-type specific TDP-43 pathology in the motor cortex.
Journal: Nature communications
In common: DESeq2, ComplexHeatmap, pheatmap, 6 other tools, genetics / omics, other condition, 14 references
[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. Medicine
In common: Harmony, SingleCellExperiment, DESeq2, 9 other tools, genetics / omics, other condition, 6 references
[3] doi:10.1038/s41593-026-02300-5 [code]
Integrated single-cell and spatial transcriptomic profiling in ALS uncovers peripheral-to-central immune infiltration and reprogramming.
Journal: Nature neuroscience
In common: Harmony, DESeq2, ComplexHeatmap, 7 other tools, genetics / omics, other condition, 4 references
[4] 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: Harmony, SingleCellExperiment, reticulate, 9 other tools, 3 references
[5] doi:10.1038/s41467-026-70232-6 [code]
Gene expression dynamics of human and mouse craniofacial development at the single-cell level.
Journal: Nature communications
In common: Harmony, SingleCellExperiment, reticulate, 8 other tools, genetics / omics, 3 references
[6] doi:10.1038/s41586-026-10214-2 [code]
Multidimensional profiling of heterogeneity in supratentorial ependymomas.
Journal: Nature
In common: Harmony, SingleCellExperiment, reticulate, 9 other tools, genetics / omics, other condition, 1 reference
[7] doi:10.1038/s41467-026-73305-8 [code]
Comparative analysis of the cellular landscape in mammalian striatum.
Journal: Nature communications
In common: Harmony, SingleCellExperiment, DESeq2, 8 other tools, genetics / omics, 2 references
[8] doi:10.1016/j.xcrm.2026.102651 [code]
Integrative CSF profiling identifies disease-specific immune responses in leptomeningeal disease.
Journal: Cell reports. Medicine
In common: Harmony, SingleCellExperiment, reticulate, 8 other tools, genetics / omics, other condition, 1 reference
[9] doi:10.1016/j.celrep.2026.117500 [code]
Spatio-molecular gene expression reflects dorsal anterior cingulate cortex structure and function in the human brain.
Journal: Cell reports
In common: Harmony, SingleCellExperiment, reticulate, 7 other tools, genetics / omics, 3 references
[10] doi:10.1038/s41586-026-10512-9 [code]
Astrocyte glucocorticoid receptor signalling restricts neuronal plasticity.
Journal: Nature
In common: DESeq2, ComplexHeatmap, pheatmap, 5 other tools, 7 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.