Cellular signatures of melanocortin pathway genes across the locus coeruleus.
The 27 matches
- [1] § Results › Single-nucleus transcriptomics and meta-analysis of the human LC ↔ figures_main.Rmd, lines 338–409 · score 0.93 · MC3R, MC2R, MC5R, MC1R, melanocortin pathway, MC4R
- [2] § Materials and methods › Neuronal subtype analysis in the integrated snRNA-seq meta-dataset ↔ 02_meta_integration.Rmd, lines 227–277 · score 0.92 · avg_log2FC, discriminative genes, FindAllMarkers, ligand genes, low background, curated gene
- [3] § Materials and methods › Integration with published Weber LC Visium data and spatial cluster annotation ↔ figures_main.Rmd, lines 412–465 · score 0.90 · SCN4B, GABAergic, serotonergic neurons, glutamatergic neurons, CRH neurons, spatial cell
- [4] § Results › Visium spatial transcriptomics of the human LC ↔ figures_supplementary.Rmd, lines 337–383 · score 0.90 · SCN4B, GABAergic, PENK neurons, VGF neurons, serotonergic neurons, glutamatergic neurons
- [5] § Results › Visium spatial transcriptomics of the human LC ↔ figures_main.Rmd, lines 412–465 · score 0.90 · SCN4B, GABAergic, PENK neurons, VGF neurons, serotonergic neurons, glutamatergic neurons
- [6] § Results › Single-nucleus transcriptomics and meta-analysis of the human LC ↔ figures_supplementary.Rmd, lines 227–284 · score 0.88 · MC3R, MC2R, MC5R, MC1R, MC4R, neuron subtypes
- [7] § Materials and methods › snRNA-seq analysis of human LC ↔ 01_basak_snRNAseq.Rmd, lines 116–153 · score 0.86 · kernel density, QC batches, Gaussian mixture, batch aware, nFeature_RNA, nCount_RNA
- [8] § Materials and methods › snRNA-seq analysis of human LC ↔ figures_main.Rmd, lines 168–221 · score 0.85 · C1QB, pan neuronal, SLC6A2, AIF1, GFAP, PDGFRA
- [9] § Results › Visium spatial transcriptomics of the human LC ↔ figures_main.Rmd, lines 338–409 · score 0.85 · MC3R, MC2R, MC5R, MC1R, MC4R, AD associated
- [10] § Materials and methods › Integration with published Weber LC Visium data and spatial cluster annotation ↔ figures_supplementary.Rmd, lines 385–437 · score 0.84 · SCN4B, DCN, HBA2, SLC6A2, CCDC153, MAG
- [11] § Materials and methods › snRNA-seq analysis of human LC ↔ 01_basak_snRNAseq.Rmd, lines 23–62 · score 0.82 · filtered feature bc, LC001A, LC002A, percent.mt, Seurat, matrices
- [12] § Results › Visium spatial transcriptomics of the human LC ↔ figures_supplementary.Rmd, lines 227–284 · score 0.82 · MC3R, MC2R, MC5R, MC1R, MC4R, SLC6A2
- [13] § Results › Single-nucleus transcriptomics and meta-analysis of the human LC ↔ figures_main.Rmd, lines 270–335 · score 0.82 · HTR2C, BDNF, CARTPT, CHRNA3, DLK1, GPX3
- [14] § Materials and methods › Integration with published Weber LC Visium data and spatial cluster annotation ↔ 04_visium_integrated.Rmd, lines 95–126 · score 0.77 · SCTransform, FindNeighbors, k.param, PCA, resolutions, layers
- [15] § Materials and methods › snRNA-seq analysis of human LC ↔ 02_meta_integration.Rmd, lines 134–191 · score 0.76 · C1QB, pan neuronal, Broad cell, EGFR, GJA1, MBP
- [16] § Materials and methods › snRNA-seq analysis of human LC ↔ 01_basak_snRNAseq.Rmd, lines 65–85 · score 0.72 · FindClusters, FindNeighbors, k.param, PCA, variable, resolutions
- [17] § Materials and methods › snRNA-seq analysis of human LC ↔ 03_basak_visium.Rmd, lines 20–47 · score 0.69 · filtered feature bc, percent.mt, nFeature_RNA, nCount_RNA, matrices, UMI
- [18] § Materials and methods › snRNA-seq analysis of human LC ↔ R/qc_plots_by_sample.R, lines 77–118 · score 0.67 · Gaussian mixture, nFeature_RNA, nCount_RNA, log2, thresholds, QC
- [19] § Materials and methods › Visium spatial transcriptomics analysis of human LC ↔ 03_basak_visium.Rmd, lines 20–47 · score 0.66 · Load10X_Spatial, filtered feature, QC metrics, periphery, nCount_RNA, cropping
- [20] § Materials and methods › Neuronal subtype analysis in the integrated snRNA-seq meta-dataset ↔ 02_meta_integration.Rmd, lines 98–132 · score 0.66 · FindNeighbors, k.param, PCA, variable, resolutions, layers
- [21] § Results › Visium spatial transcriptomics of the human LC ↔ 03_basak_visium.Rmd, lines 115–121 · score 0.66 · Upper Caudal, Lower Caudal, Upper Rostral, Lower Rostral, cropping, Visium
- [22] § Materials and methods › snRNA-seq meta-analysis of human LC datasets ↔ 02_meta_integration.Rmd, lines 77–95 · score 0.62 · pontine reticular formation, PB, PN, pons, parabrachial, Siletti
- [23] § Materials and methods › snRNA-seq meta-analysis of human LC datasets ↔ figures_main.Rmd, lines 168–221 · score 0.61 · pan neuronal, SLC6A2, STMN2, SYT1, ependymal, vascular
- [24] § Materials and methods › Integration with published Weber LC Visium data and spatial cluster annotation ↔ 02_meta_integration.Rmd, lines 98–132 · score 0.61 · FindNeighbors, k.param, PCA, biological, resolutions, layers
- [25] § Results › Single-nucleus transcriptomics and meta-analysis of the human LC ↔ 02_meta_integration.Rmd, lines 227–277 · score 0.58 · discriminative gene pair, transcriptionally distinct, ligands, GPCRs, curated, cluster
- [26] § Results › Single-nucleus transcriptomics and meta-analysis of the human LC ↔ 02_meta_integration.Rmd, lines 134–191 · score 0.55 · QC metrics, Siletti, NE neurons, ependymal, vascular, OPCs
- [27] § Results › Single-nucleus transcriptomics and meta-analysis of the human LC ↔ 02_meta_integration.Rmd, lines 279–333 · score 0.51 · neuron subtypes, SLC6A2, MET, Siletti, Weber, Basak
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 Markdown · 487 lines · 16 KB · MIT · 8 matches
- ---
- title: "02 — snRNA-seq Meta-integration: Three-dataset RPCA, Neuronal Subtypes, and DE"
- ---
- This script integrates the Basak snRNA-seq data with the published Weber et al.
- (2024) and Siletti et al. (2023) LC/pons datasets, annotates the integrated
- object, performs neuron-level subtype analysis, and runs differential expression
- between the two dominant DBH+ NE neuron subtypes.
- Inputs:
- - `output/01_basak/basak_snRNA_seurat.rds`
- - `data/external/Weber/weber_snRNA_seurat.rds`
- - `data/external/Siletti/Pons_PnRF_PB_seurat.rds`
- Outputs (Supplementary Table 2 documents nuclei counts per dataset):
- - `output/02_meta/meta_snRNA_allcells_seurat.rds` (46,417 nuclei)
- - `output/02_meta/meta_snRNA_neurons_seurat.rds` (33,375 neuronal nuclei)
- - `output/02_meta/DE/markers_MAST.csv`
- ```{r setup}
- library(Seurat)
- library(SeuratWrappers)
- library(dplyr)
- library(ggplot2)
- library(ggrepel)
- dir.create("output/02_meta/DE", recursive = TRUE, showWarnings = FALSE)
- options(future.globals.maxSize = 40 * 1024^3) # 40 GB for large integrations
- ```
- # 1. Prepare datasets for integration
- ## 1.1 Basak
- ```{r basak-prep}
- basak <- readRDS("output/01_basak/basak_snRNA_seurat.rds") # 2,071 nuclei
- basak <- RenameCells(basak, add.cell.id = "basak")
- basak$Dataset <- "Basak"
- basak$Sample <- basak$Section
- basak$Donor <- "Donor_1"
- basak$orig.ident <- basak$Section
- [email hidden] <- [email hidden] %>%
- dplyr::select(Dataset, orig.ident, Donor, Sample,
- nCount_RNA, nFeature_RNA, percent.mt,
- SectionLevel, CellType, CellType_AllCells)
- ```
- ## 1.2 Weber et al. 2024
- The Weber dataset is available from the original publication.
- See `data/README.md` for the expected file path.
- ```{r weber-prep}
- weber <- readRDS("data/external/Weber/weber_snRNA_seurat.rds") # 20,191 nuclei
- weber <- DietSeurat(weber, assay = "RNA")
- weber@assays$RNA$scale.data <- NULL
- weber@assays$RNA$data <- NULL
- weber$Dataset <- "Weber"
- weber$Donor <- weber$orig.ident
- weber$nCount_RNA <- weber$nCount_originalexp
- weber$nFeature_RNA <- weber$nFeature_originalexp
- weber[["percent.mt"]] <- PercentageFeatureSet(weber, pattern = "^MT-")
- [email hidden] <- [email hidden] %>%
- dplyr::select(Dataset, orig.ident, Donor, Sample,
- nCount_RNA, nFeature_RNA, percent.mt,
- label_merged, supervised_NE, unsupervised_NE)
- ```
- ## 1.3 Siletti et al. 2023
- Only the parabrachial / pontine reticular formation section (PnRF_PB) containing
- DBH+ NE neurons is used. See `data/README.md` for the expected file path.
- ```{r siletti-prep}
- siletti <- readRDS("data/external/Siletti/Pons_PnRF_PB_seurat.rds") # 24,155 nuclei
- siletti$Dataset <- "Siletti"
- siletti$Sample <- as.character(siletti$sample_id)
- siletti$Donor <- as.character(siletti$donor_id)
- siletti[["percent.mt"]] <- PercentageFeatureSet(siletti, pattern = "^MT-")
- [email hidden] <- [email hidden] %>%
- dplyr::select(Dataset, orig.ident, Donor, Sample,
- nCount_RNA, nFeature_RNA, percent.mt,
- supercluster_term, cluster_id, subcluster_id,
- dissection, tissue, sex, development_stage)
- ```
- # 2. Three-dataset RPCA integration (all cell types)
- Four integration methods were evaluated (RPCA, CCA, Harmony, FastMNN);
- RPCA produced the best mixing of datasets while preserving biological structure
- and was used for all analyses.
- ```{r integrate-allcells}
- seurat_meta <- merge(basak, y = c(weber, siletti)) # 46,417 nuclei
- rm(basak, weber, siletti)
- seurat_meta[["RNA"]] <- JoinLayers(seurat_meta[["RNA"]])
- seurat_meta <- DietSeurat(seurat_meta, assays = "RNA")
- seurat_meta@assays$RNA$scale.data <- NULL
- seurat_meta[["RNA"]] <- split(seurat_meta[["RNA"]],
- f = seurat_meta$Sample)
- seurat_meta <- NormalizeData(seurat_meta, verbose = FALSE)
- seurat_meta <- FindVariableFeatures(seurat_meta, verbose = FALSE)
- seurat_meta <- ScaleData(seurat_meta, verbose = FALSE)
- seurat_meta <- RunPCA(seurat_meta, verbose = FALSE)
- seurat_meta <- IntegrateLayers(seurat_meta, method = RPCAIntegration,
- new.reduction = "integrated.rpca",
- verbose = FALSE, k.weight = 100)
- seurat_meta <- FindNeighbors(seurat_meta, reduction = "integrated.rpca",
- dims = 1:30, k.param = 20, verbose = FALSE)
- seurat_meta <- FindClusters(seurat_meta,
- resolution = seq(0.1, 2.0, by = 0.1),
- verbose = FALSE)
- seurat_meta <- RunUMAP(seurat_meta, reduction = "integrated.rpca",
- dims = 1:30, reduction.name = "umap.rpca",
- verbose = FALSE)
- seurat_meta[["RNA"]] <- JoinLayers(seurat_meta[["RNA"]])
- ```
- ## 2.1 Annotate broad cell types
- Annotation at res 0.6 based on canonical marker expression.
- NE neurons: DBH, TH, SLC6A2; pan-neuronal: STMN2, SYT1;
- oligodendrocytes: MAG, MBP, MOG, PLP1; OPCs: PDGFRA, EGFR;
- astrocytes: GFAP, GJA1, AQP4; ependymal: FOXJ1, CCDC153, CAPS;
- microglia: C1QB, AIF1; vascular: ACTA2, TAGLN, COL1A1.
- ```{r annotate-allcells}
- Idents(seurat_meta) <- seurat_meta$RNA_snn_res.0.6
- seurat_meta <- RenameIdents(seurat_meta,
- "21" = "Neurons_NE",
- "24" = "Neurons",
- "0" = "Neurons", "1" = "Neurons", "2" = "Neurons",
- "4" = "Neurons", "7" = "Neurons", "8" = "Neurons",
- "10" = "Neurons", "11" = "Neurons", "12" = "Neurons",
- "14" = "Neurons", "15" = "Neurons", "16" = "Neurons",
- "18" = "Neurons", "19" = "Neurons", "20" = "Neurons",
- "23" = "Neurons", "26" = "Neurons", "27" = "Neurons",
- "28" = "Neurons", "29" = "Neurons",
- "3" = "Oligo", "5" = "Oligo", "9" = "Oligo",
- "13" = "OPCs",
- "6" = "Astro",
- "17" = "Microglia",
- "25" = "Ependymo",
- "22" = "Vascular"
- )
- seurat_meta$CellType_Integrated <- Idents(seurat_meta)
- table(seurat_meta$CellType_Integrated, seurat_meta$Dataset, useNA = "ifany")
- # Expected (Supplementary Table 2):
- # Neurons_NE : Basak=346, Weber=306, Siletti=113
- # Neurons : Basak=1012, Weber=16201, Siletti=15397
- seurat_meta@assays$RNA$scale.data.1 <- NULL
- seurat_meta@assays$RNA$scale.data <- NULL
- [email hidden] <- [email hidden] %>%
- dplyr::select(
- # Core identity
- Dataset, orig.ident, Donor, Sample,
- # Final annotation
- RNA_snn_res.0.6, CellType_Integrated,
- # QC metrics
- nCount_RNA, nFeature_RNA, percent.mt,
- # Basak-specific
- SectionLevel,
- # Weber-specific (useful for cross-dataset comparison)
- label_merged, supervised_NE, unsupervised_NE,
- # Siletti-specific
- supercluster_term, dissection
- )
- saveRDS(seurat_meta, file = "output/02_meta/meta_snRNA_allcells_seurat.rds")
- rm(seurat_meta)
- ```
- # 3. Neuron-only integration and subtype annotation
- ```{r neurons-subset}
- seurat_meta <- readRDS("output/02_meta/meta_snRNA_allcells_seurat.rds")
- neurons <- subset(seurat_meta,
- idents = c("Neurons_NE", "Neurons")) # 33,375 nuclei
- rm(seurat_meta)
- neurons <- DietSeurat(neurons, assays = "RNA")
- ```
- ```{r neurons-integrate}
- neurons[["RNA"]] <- split(neurons[["RNA"]], f = neurons$Sample)
- neurons <- NormalizeData(neurons, verbose = FALSE)
- neurons <- FindVariableFeatures(neurons, verbose = FALSE)
- neurons <- ScaleData(neurons, verbose = FALSE)
- neurons <- RunPCA(neurons, verbose = FALSE)
- neurons <- IntegrateLayers(neurons, method = RPCAIntegration,
- new.reduction = "integrated.rpca",
- verbose = FALSE, k.weight = 60)
- neurons <- FindNeighbors(neurons, reduction = "integrated.rpca",
- dims = 1:30, k.param = 10, verbose = FALSE)
- neurons <- FindClusters(neurons,
- resolution = seq(0.1, 1.5, by = 0.1),
- verbose = FALSE)
- neurons <- RunUMAP(neurons, reduction = "integrated.rpca",
- dims = 1:30, reduction.name = "umap.rpca",
- verbose = FALSE)
- neurons[["RNA"]] <- JoinLayers(neurons[["RNA"]])
- ```
- ## 3.1 Identify cluster markers using curated GPCR/ligand gene list
- Cluster labels are derived by selecting the top-2 discriminative genes from the
- IUPHAR curated list per cluster, concatenated into a gene-pair name.
- ```{r neurons-markers}
- Idents(neurons) <- neurons$RNA_snn_res.1.5
- length(levels(neurons)) # 68 transcriptionally distinct clusters
- # Load IUPHAR GPCR/ligand gene list
- gpcr_df <- read.csv("resources/IUPHAR/GtP_to_HGNC_mapping.csv", skip = 1)
- gene_vector <- unique(gpcr_df$HGNC.Symbol)
- # Cluster markers restricted to curated gene list
- marker_genes <- FindAllMarkers(
- object = neurons,
- features = intersect(gene_vector, rownames(neurons)),
- verbose = FALSE
- )
- write.csv(marker_genes,
- file = "output/02_meta/DEGs_neurons_res1.5_curated.csv")
- # Select top 2 discriminative genes per cluster (high FC, low background)
- markers_filtered <- marker_genes %>%
- dplyr::filter(avg_log2FC > 0.5 & pct.1 > 0.1 &
- pct.2 < 0.05 & p_val_adj < 0.05) %>%
- group_by(cluster) %>%
- slice_head(n = 2) %>%
- ungroup() %>%
- mutate(cluster = factor(cluster, levels = levels(neurons))) %>%
- arrange(cluster)
- # Relax criteria for clusters with no marker meeting strict filters
- missing_clusters <- setdiff(levels(neurons),
- unique(markers_filtered$cluster))
- if (length(missing_clusters) > 0) {
- missing_markers <- marker_genes %>%
- dplyr::filter(cluster %in% missing_clusters,
- avg_log2FC > 0.5 & pct.1 > 0.05 &
- pct.2 < 0.2 & p_val_adj < 0.05) %>%
- group_by(cluster) %>%
- slice_head(n = 2) %>%
- ungroup() %>%
- mutate(cluster = factor(cluster, levels = levels(neurons))) %>%
- arrange(cluster)
- }
- marker_df <- rbind(markers_filtered, missing_markers) %>%
- mutate(cluster = factor(cluster, levels = levels(neurons)))
- ```
- ## 3.2 Build cluster annotation labels
- ```{r neurons-annotate}
- cluster_annotations <- marker_df %>%
- group_by(cluster) %>%
- summarise(Annotation = paste(gene, collapse = "_"), .groups = "drop") %>%
- mutate(row_id = row_number()) %>%
- arrange(Annotation, row_id) %>%
- group_by(Annotation) %>%
- mutate(
- Annotation_unique = ifelse(
- row_number() == 1,
- Annotation,
- paste0(Annotation, "_", row_number())
- )
- ) %>%
- ungroup() %>%
- arrange(row_id) %>%
- select(-row_id)
- write.csv(cluster_annotations,
- file = "output/02_meta/cluster_annotations_neurons.csv")
- # Transfer annotations to metadata
- seurat_meta_df <- as.data.frame([email hidden]) %>%
- dplyr::select(RNA_snn_res.1.5)
- meta_df <- seurat_meta_df %>%
- tibble::rownames_to_column("row_id") %>%
- mutate(Cluster_Join = as.character(RNA_snn_res.1.5)) %>%
- left_join(cluster_annotations, by = c("Cluster_Join" = "cluster")) %>%
- rename(CellType = Annotation_unique) %>%
- select(-Cluster_Join) %>%
- tibble::column_to_rownames("row_id") %>%
- dplyr::select(CellType)
- neurons <- AddMetaData(neurons, metadata = meta_df,
- col.name = "Neuron_Subtype")
- # Prioritise DBH subtypes at the top of the level ordering
- dbh_clusters <- c("SLC6A2_DBH", "DBH_SLC6A2", "SLC6A2_MET")
- cluster_levels <- c(dbh_clusters,
- setdiff(sort(unique(neurons$Neuron_Subtype)),
- dbh_clusters))
- neurons$Neuron_Subtype <- factor(neurons$Neuron_Subtype,
- levels = cluster_levels)
- Idents(neurons) <- neurons$Neuron_Subtype
- table(neurons$Neuron_Subtype[neurons$Neuron_Subtype %in% dbh_clusters],
- neurons$Dataset[neurons$Neuron_Subtype %in% dbh_clusters],
- useNA = "ifany")
- # SLC6A2/DBH: Basak=256, Weber=285, Siletti=65
- # DBH/SLC6A2: Basak=112, Weber=177, Siletti=5
- # SLC6A2/MET: Basak=3, Weber=43, Siletti=43
- ```
- ```{r neurons-save}
- [email hidden] <- [email hidden] %>%
- dplyr::select(
- # Core identity
- Dataset, orig.ident, Donor, Sample,
- # Annotations
- Neuron_Subtype, CellType_Integrated,
- # QC metrics
- nCount_RNA, nFeature_RNA, percent.mt,
- # Basak-specific
- SectionLevel,
- # Weber-specific (useful for cross-dataset comparison)
- label_merged, supervised_NE, unsupervised_NE,
- # Siletti-specific
- supercluster_term, dissection
- )
- saveRDS(neurons, file = "output/02_meta/meta_snRNA_neurons_seurat.rds")
- rm(neurons)
- ```
- # 4. Differential expression: SLC6A2_DBH vs DBH_SLC6A2 (MAST)
- MAST single-cell DE comparing the two most abundant DBH+ NE neuron subtypes,
- adjusting for donor effect, library size, and mitochondrial read fraction.
- ## 4.1 Data preparation
- ```{r de-prep}
- library(MAST)
- neurons <- readRDS("output/02_meta/meta_snRNA_neurons_seurat.rds")
- Idents(neurons) <- neurons$Neuron_Subtype
- dbh_subset <- subset(neurons,
- idents = c("SLC6A2_DBH", "DBH_SLC6A2")) # 900 cells
- rm(neurons)
- # Remove donors with < 20 cells in either subtype (statistical stability)
- dbh_subset$Donor <- factor(dbh_subset$Donor)
- dbh_subset$Neuron_Subtype <- droplevels(dbh_subset$Neuron_Subtype)
- meta_df <- [email hidden] %>%
- tibble::rownames_to_column("cell_id") %>%
- group_by(Neuron_Subtype, Donor) %>%
- mutate(n_cells = n()) %>%
- ungroup()
- cells_to_keep <- meta_df %>%
- filter(n_cells >= 20) %>%
- pull(cell_id)
- dbh_filtered <- subset(dbh_subset, cells = cells_to_keep) # 890 cells
- rm(dbh_subset)
- table(dbh_filtered$Neuron_Subtype, dbh_filtered$Donor, useNA = "ifany")
- # SLC6A2_DBH: Br2701=157, Br8079=124, Donor_1=256, H18.30.002=41, H19.30.001=24
- # DBH_SLC6A2: Br2701=80, Br8079=96, Donor_1=112
- ```
- ## 4.2 MAST
- ```{r mast}
- Idents(dbh_filtered) <- dbh_filtered$Neuron_Subtype
- log2FC_limit <- 2
- markers_mast <- FindMarkers(
- object = dbh_filtered,
- ident.1 = "SLC6A2_DBH",
- ident.2 = "DBH_SLC6A2",
- test.use = "MAST",
- logfc.threshold = 0.1,
- min.pct = 0.05,
- only.pos = FALSE,
- latent.vars = c("nCount_RNA", "percent.mt", "Donor")
- )
- write.csv(markers_mast,
- file = "output/02_meta/DE/markers_MAST.csv")
- # Construct volcano plot dataframe (used in figures code)
- markers_filtered <- markers_mast %>%
- as.data.frame() %>%
- tibble::rownames_to_column("gene") %>%
- mutate(
- neg_log10_p = -log10(p_val_adj),
- sig = case_when(
- p_val_adj < 0.05 & avg_log2FC > log2FC_limit ~ "Up_in_SLC6A2_DBH",
- p_val_adj < 0.05 & avg_log2FC < -log2FC_limit ~ "Up_in_DBH_SLC6A2",
- TRUE ~ "Not_significant"
- )
- ) %>%
- dplyr::filter(sig %in% c("Up_in_SLC6A2_DBH", "Up_in_DBH_SLC6A2"))
- write.csv(markers_filtered,
- file = "output/02_meta/DE/markers_MAST_filtered.csv")
- table(markers_filtered$sig) # Up_in_DBH_SLC6A2 = 20, Up_in_SLC6A2_DBH = 5
- rm(dbh_filtered)
- ```
- > HTR2C, SNTG1 : Up_in_DBH_SLC6A2
- # 5. FindAllMarkers: DBH subtype markers (used in Fig 1f heatmap)
- Seurat FindAllMarkers identifies genes with specificity for each DBH subtype
- (including SLC6A2_MET). Genes from this analysis supplement the literature-
- curated gene set displayed in the heatmap of Fig 1f.
- ```{r findallmarkers}
- mito_ribo_genes <- readRDS("resources/gene_lists/mito_ribo_genes.rds")
- neurons <- readRDS("output/02_meta/meta_snRNA_neurons_seurat.rds")
- Idents(neurons) <- neurons$Neuron_Subtype
- dbh_subset <- subset(neurons,
- idents = c("SLC6A2_DBH", "DBH_SLC6A2", "SLC6A2_MET")) # 989 cells
- rm(neurons)
- # Remove uninformative gene classes
- gene_vector <- setdiff(rownames(dbh_subset), mito_ribo_genes)
- gene_vector <- setdiff(gene_vector,
- grep("^ENSG", gene_vector, value = TRUE))
- gene_vector <- setdiff(gene_vector,
- grep("^LINC", gene_vector, value = TRUE))
- all_markers <- FindAllMarkers(
- object = dbh_subset,
- features = gene_vector,
- logfc.threshold = 0.5,
- min.pct = 0.05,
- verbose = FALSE
- )
- write.csv(all_markers,
- file = "output/02_meta/DE/markers_FindAllMarkers_DBH.csv")
- # Filtered marker set used in Fig 1f
- markers_filtered <- all_markers %>%
- dplyr::filter(avg_log2FC > 0.5 & pct.1 > 0.2 &
- pct.2 < 0.2 & p_val_adj < 0.05) %>%
- mutate(cluster = factor(cluster,
- levels = c("SLC6A2_DBH", "DBH_SLC6A2", "SLC6A2_MET"))) %>%
- arrange(cluster)
- write.csv(markers_filtered,
- file = "output/02_meta/DE/markers_FindAllMarkers_DBH_filtered.csv")
- rm(dbh_subset, all_markers, markers_filtered)
- ```
- > CHRNA3 : Up in SLC6A2_DBH
- > LEPR, BDNF, TMC3, INVS : Up in SLC6A2_MET
02_meta_integration.Rmd at commit a0838e9, under MIT · at the source
Overview
and 6 other authors
Mark W. Sleeman6, Judith Y. Altarejos6, Rudolph L. Leibel1,2, Liang Oscar Qiang4, Andrew F. Teich5,7, Claudia A. Doege2,5- Department of Pediatrics, Division of Molecular Genetics, Columbia University Irving Medical Center,New York, NY USA
- Naomi Berrie Diabetes Center, Columbia University Irving Medical Center,New York, NY USA
- Key Laboratory of Neuroregeneration of Jiangsu and Ministry of Education, Co-Innovation Center of Neuroregeneration, Nantong University,Nantong, 226001 Jiangsu China
- Department of Neurobiology and Anatomy, Drexel University College of Medicine,Philadelphia, PA USA
- Department of Pathology and Cell Biology, Columbia University Irving Medical Center,New York, NY USA
- Regeneron Genetics Center, Regeneron Pharmaceuticals Inc.,Tarrytown, NY 10591 USA
- Taub Institute, Columbia University Irving Medical Center,New York, NY USA
- Department of Neurology, Columbia University Irving Medical Center,New York, NY USA
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 27 matches between paragraphs and lines of code.
fmbetul/LC-melanocortin-analysis
a0838e9ac6d49db720a1daa218fae7a478e9bbab, 9 April 2026Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
11 files
- 01_basak_snRNAseq.Rmd, R, 232 lines, 3 matches
- 02_meta_integration.Rmd, R, 487 lines, 8 matches
- 03_basak_visium.Rmd, R, 136 lines, 3 matches
- 04_visium_integrated.Rmd
, R, 251 lines, 1 match - R/
DotPlot_allow_dups.R , R, 166 lines - R/
apply_qc_thresholds.R , R, 143 lines - R/
qc_plots_by_sample.R , R, 461 lines, 1 match - figures_main.Rmd, R, 524 lines, 7 matches
- figures_supplementary.Rm
d , R, 791 lines, 4 matches - LICENSE, License, 21 lines
- README.md, Text, 90 lines
Code availability statement
The paper has a code 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: fmbetul/
LC-melanocortin-analysis
Read it in the paper: doi.org/10.1186/s40478-026-02287-x.
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;
- 9 scripts, each with its path and the digest of its content;
- 27 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.
Availability statements
The paper has a data availability statement and a data availability statement. Its license (CC BY-NC-ND) does not allow reproducing them here; in short, from what the harvester recognized in them:
- no repository, dataset or request procedure was recognized in them
Read them in the paper: doi.org/10.1186/s40478-026-02287-x.
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, 26 authors, 6 keywords, 14 MeSH terms, 1 funder, 143 references.
Cite
This paper
Basak, A., Erol, F. M. B., De Rosa, M. C., Dong, Z., Ogbolu, V., Glover, H. J., Rausch, R., Hargus, G., Creus-Muncunill, J., Buchanan, H., Bai, Y., Su, Q., Chang, B., Adler, C., Flaherty, D., Ciener, B., Xiao, H., Reddy, H., Aime-Wilson, P., . . . Doege, C. A. (2026). Cellular signatures of melanocortin pathway genes across the locus coeruleus. Acta neuropathologica communications, 14(1), 96. https://
BibTeX
@article{basak2026cellul
author = {Basak, Alisha and Erol, Fahrünisa Meryem Betül and De Rosa, Maria Caterina and Dong, Zhangji and Ogbolu, Victor and Glover, Hannah J. and Rausch, Rick and Hargus, Gunnar and Creus-Muncunill, Jordi and Buchanan, Heather and Bai, Yu and Su, Qi and Chang, Betty and Adler, Christina and Flaherty, Delaney and Ciener, Benjamin and Xiao, Harrison and Reddy, Hasini and Aime-Wilson, Pascaline and Reitz, Christiane and Sleeman, Mark W. and Altarejos, Judith Y. and Leibel, Rudolph L. and Qiang, Liang Oscar and Teich, Andrew F. and Doege, Claudia A.},
title = {{Cellular signatures of melanocortin pathway genes across the locus coeruleus}},
journal = {Acta neuropathologica communications},
year = {2026},
month = apr,
volume = {14},
number = {1},
pages = {96},
publisher = {BMC},
issn = {2051-5960},
doi = {10.1186/
url = {https://
pmid = {41935248},
pmcid = {PMC13097939}
}
RIS
TY - JOUR
AU - Basak, Alisha
AU - Erol, Fahrünisa Meryem Betül
AU - De Rosa, Maria Caterina
AU - Dong, Zhangji
AU - Ogbolu, Victor
AU - Glover, Hannah J.
AU - Rausch, Rick
AU - Hargus, Gunnar
AU - Creus-Muncunill, Jordi
AU - Buchanan, Heather
AU - Bai, Yu
AU - Su, Qi
AU - Chang, Betty
AU - Adler, Christina
AU - Flaherty, Delaney
AU - Ciener, Benjamin
AU - Xiao, Harrison
AU - Reddy, Hasini
AU - Aime-Wilson, Pascaline
AU - Reitz, Christiane
AU - Sleeman, Mark W.
AU - Altarejos, Judith Y.
AU - Leibel, Rudolph L.
AU - Qiang, Liang Oscar
AU - Teich, Andrew F.
AU - Doege, Claudia A.
TI - Cellular signatures of melanocortin pathway genes across the locus coeruleus
T2 - Acta neuropathologica communications
J2 - Acta Neuropathol Commun
PY - 2026
DA - 2026/
VL - 14
IS - 1
SP - 96
SN - 2051-5960
PB - BMC
DO - 10.1186/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1186/
"type": "article-journal",
"title": "Cellular signatures of melanocortin pathway genes across the locus coeruleus",
"container-title": "Acta neuropathologica communications",
"author": [
{
"family": "Basak",
"given": "Alisha"
},
{
"family": "Erol",
"given": "Fahrünisa Meryem Betül"
},
{
"family": "De Rosa",
"given": "Maria Caterina"
},
{
"family": "Dong",
"given": "Zhangji"
},
{
"family": "Ogbolu",
"given": "Victor"
},
{
"family": "Glover",
"given": "Hannah J."
},
{
"family": "Rausch",
"given": "Rick"
},
{
"family": "Hargus",
"given": "Gunnar"
},
{
"family": "Creus-Muncunill",
"given": "Jordi"
},
{
"family": "Buchanan",
"given": "Heather"
},
{
"family": "Bai",
"given": "Yu"
},
{
"family": "Su",
"given": "Qi"
},
{
"family": "Chang",
"given": "Betty"
},
{
"family": "Adler",
"given": "Christina"
},
{
"family": "Flaherty",
"given": "Delaney"
},
{
"family": "Ciener",
"given": "Benjamin"
},
{
"family": "Xiao",
"given": "Harrison"
},
{
"family": "Reddy",
"given": "Hasini"
},
{
"family": "Aime-Wilson",
"given": "Pascaline"
},
{
"family": "Reitz",
"given": "Christiane"
},
{
"family": "Sleeman",
"given": "Mark W."
},
{
"family": "Altarejos",
"given": "Judith Y."
},
{
"family": "Leibel",
"given": "Rudolph L."
},
{
"family": "Qiang",
"given": "Liang Oscar"
},
{
"family": "Teich",
"given": "Andrew F."
},
{
"family": "Doege",
"given": "Claudia A."
}
],
"container-title-short":
"volume": "14",
"issue": "1",
"page": "96",
"DOI": "10.1186/
"PMID": "41935248",
"PMCID": "PMC13097939",
"ISSN": "2051-5960",
"publisher": "BMC",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
4
]
]
}
}
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.1016/j.neurobiolaging.2026.04.007 [code]
- The TREM2 R47H variant is associated with liver-plasma-brain axis dyshomeostasis in the 5xFAD mouse model of Alzheimer's disease.Journal: Neurobiology of agingIn common: tidyverse, Alzheimer's / dementia, genetics / omics, mouse, 1 other category, 5 references
- [2] doi:10.1016/j.stemcr.2026.102958 [code]
- Scalable hypothalamic neuron differentiation from human pluripotent stem cells suitable for modeling metabolic disorders.Journal: Stem cell reportsIn common: genetics / omics, cellular / molecular, 3 references, author Claudia A. Doege
- [3] doi:10.1038/s41586-026-10629-x [code]
- Whole-genome duplication shaped cell-type evolution in the vertebrate brain.Journal: NatureIn common: Seurat, patchwork, ggplot2, 1 other tool, genetics / omics, mouse, cellular / molecular, 2 references
- [4] doi:10.1038/s41467-026-75650-0 [code]
- Reduced melanocortin tone modulates feeding during pregnancy in mice.Journal: Nature communicationsIn common: Seurat, patchwork, ggplot2, 1 other tool, genetics / omics, mouse, 2 references
- [5] doi:10.1038/s44318-026-00818-9 [code]
- FAM134B-mediated ER-phagy degrades APP and suppresses Alzheimer's disease pathology.Journal: The EMBO journalIn common: Seurat, patchwork, ggplot2, 1 other tool, Alzheimer's / dementia, mouse, cellular / molecular, 1 reference
- [6] doi:10.1002/alz.71823 [code]
- Cellular transcriptomic signatures underpinning the heterogeneity of depression in Alzheimer's disease.Journal: Alzheimer's & dementia : the journal of the Alzheimer's AssociationIn common: Seurat, patchwork, ggplot2, 1 other tool, Alzheimer's / dementia, genetics / omics, cellular / molecular, 1 reference
- [7] doi:10.1371/journal.pone.0355165 [code]
- Pupillary dynamics during hands-off L2 driving and transitions of control under high cognitive load.Journal: PloS oneIn common: patchwork, ggplot2, tidyverse, 3 references
- [8] doi:10.1038/s41514-026-00391-9 [code]
- Region-specific transcriptional signatures of brain aging in the absence of neuropathology at the single-cell level.Journal: npj agingIn common: Seurat, patchwork, ggplot2, 1 other tool, genetics / omics, cellular / molecular, 2 references
- [9] doi:10.1186/s12974-026-03848-6 [code]
- Iba1 deficiency impairs microglial synaptic remodeling and neuronal survival after axonal injury.Journal: Journal of neuroinflammationIn common: Seurat, patchwork, ggplot2, 1 other tool, genetics / omics, mouse, cellular / molecular, 1 reference
- [10] doi:10.1038/s41386-026-02399-x [code]
- Regulation of the decision threshold by the locus coeruleus.Journal: Neuropsychopharmacology : official publication of the American College of NeuropsychopharmacologyIn common: tidyverse, mouse, 4 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.
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: 1 repository of the authors' code, each at its verified commit and with its license, 9 scripts, and 27 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:5bb5e3ffd8c6e428…
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.
