Molecular Disambiguation of Heart Rate Control by the Nucleus Ambiguus.
The 5 matches
- [1] § Materials and Methods › Single-nuclei RNA-sequencing ↔ Reference_Query_Mapping .Rmd, lines 184 to 223 · score 0.66 · log normalization, FindVariableFeatures, Seurat, mapping, PCA, resolution · Report a mismatch
- [2] § Materials and Methods › Single-nuclei RNA-sequencing ↔ Reference_Query_Mapping .Rmd, lines 184 to 223 · score 0.65 · FindAllMarkers, Slc17a6, Seurat, threshold, PCA, resolution · Report a mismatch
- [3] § Materials and Methods › Single-nuclei RNA-sequencing ↔ namb_data_analysis_Jalil_Maira.Rmd, lines 262 to 289 · score 0.61 · FindAllMarkers, BuildClusterTree, log2, threshold, relatedness, PCA · Report a mismatch
- [4] § Results › Molecular classification of nAmb neurons in the adult mouse ↔ Batch_elimination_noFemale.Rmd, lines 180 to 206 · score 0.55 · Slc32a1, Slc17a6, Slc18a3, batches, Isl1, clusters · Report a mismatch
- [5] § Results › Molecular classification of nAmb neurons in the adult mouse ↔ Reference_Query_Mapping .Rmd, lines 86 to 111 · score 0.54 · ACP neurons, ACV neurons, Bche, Calb1, Npy2r, heart · Report a mismatch
Paper
Loaded from Europe PMC by your browser; OSCR does not store it: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
R Markdown · 312 lines · 14 KB · CC-BY-4.0 · 3 matches
- ---
- author: "Maira Jalil"
- date: "5/4/2023"
- output: html_document
- editor_options:
- chunk_output_type: console
- ---
- #Load libraries
- ```{r}
- #can't remember if you need all of these libraries for this particular figure, but these are the ones included in my script
- library(amap)
- library(FactoMineR)
- library(scatterD3)
- library(gplots)
- library(ggplot2)
- library(cowplot)
- library(ClassDiscovery)
- library(pheatmap)
- library(dplyr)
- library(Seurat)
- library(pheatmap)
- library(Matrix)
- library(latticeExtra)
- library(tools)
- library(matrixStats)
- ```
- #Load Jalil et al dataset
- ```{r}
- #load data
- namb_all.int <-readRDS("~/Desktop/Lab/Projects/Namb data/Sequencing/nAmb_Jalil.rds")
- DimPlot(namb_all.int, reduction = "umap", label = TRUE, pt.size = 1) + NoLegend()
- ```
- #Load Veerakumar dataset
- ```{r}
- # perform label transfer
- Karasnow.data = read.csv(file = "~/Desktop/Lab/Projects/Namb data/Sequencing/Karasnow data/GSE198709_AMB_raw_counts.csv.gz", header = TRUE, row.names = 1)
- #specify the gene names are the rownames
- gene_List <- rownames(Karasnow.data)
- Karasnow1 <- CreateSeuratObject(counts = Karasnow.data, project = "Namb", min.cells = 3, min.features = 200)
- #this resembles our snucseq data
- VlnPlot(Karasnow1, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3, pt.size = 0.001)
- length(WhichCells(Karasnow1))
- plot1 <- FeatureScatter(Karasnow1, feature1 = "nCount_RNA", feature2 = "percent.mt")
- plot2 <- FeatureScatter(Karasnow1, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")
- plot1+plot2
- ###Now choosing the dataset
- Karasnow1 <- subset(Karasnow1, subset = nFeature_RNA > 100)
- #Data Normalization
- Karasnow1 <- NormalizeData(Karasnow1)
- ##### Find and visualize highly variable genes
- Karasnow1 <- FindVariableFeatures(Karasnow1, selection.method = "vst", nfeatures = 2000)
- # Identify the 10 most highly variable genes
- top10 <- head(VariableFeatures(Karasnow1), 10)
- # plot variable features with and without labels
- plot1 <- VariableFeaturePlot(Karasnow1)
- plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)
- LabelPoints(plot = plot1, points = top10, repel = TRUE, xnudge = 0, ynudge = 0)
- all.genes <- rownames(Karasnow1)
- Karasnow1 <- ScaleData(Karasnow1, features = all.genes)
- Karasnow1 <- RunPCA(Karasnow1, features = VariableFeatures(object = Karasnow1))
- # Examine and visualize PCA results a few different ways
- print(Karasnow1[["pca"]], dims = 1:5, nfeatures = 5)
- VizDimLoadings(Karasnow1, dims = 1:2, reduction = "pca")
- DimPlot(Karasnow1, reduction = "pca")
- DimHeatmap(Karasnow1, dims = 1, cells = 203, balanced = TRUE)
- DimHeatmap(Karasnow1, dims = 1:12, cells = 203, balanced = TRUE)
- ElbowPlot(Karasnow1)
- ```
- ```{r}
- ##Perform clustering
- x <- 12
- Karasnow1 <- FindNeighbors(Karasnow1, dims = 1:x)
- Karasnow1 <- FindClusters(Karasnow1, resolution = 0.7)
- head(Idents(Karasnow1), 5)
- length(WhichCells(Karasnow1))
- ##### Visualize clustering
- Karasnow1 <- RunUMAP(Karasnow1, dims = 1:x)
- ##### Reorder clusters by relatedness
- Karasnow1=BuildClusterTree(Karasnow1,reorder=TRUE, reorder.numeric = TRUE)
- PlotClusterTree(Karasnow1)
- DimPlot(Karasnow1, reduction = "umap", label = T, pt.size= 2)
- Karasnow1.markers <- FindAllMarkers(Karasnow1, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)
- ```
- ```{r}
- #Acp neurons cluster 3
- #not use dotplot because scaling that data will lead to misleading results
- markers.plot <- c("Trhr", "Sema3d", "Pappa2", "Mc4r", "Calb1", "Gabre")
- VlnPlot (object = Karasnow1, features= markers.plot, stack = T, sort = F, flip = TRUE)
- #ACV neurons cluster1
- markers.plot <- c("Hoxa5", "Ghsr", "Bche", "Htr3b", "Sstr2", "P2ry1")
- VlnPlot (object = Karasnow1, features= markers.plot, stack = T, sort = F, flip = TRUE)
- #heart markers
- markers.plot <- c("Celf6", "Kcna5", "Tbx3", "Dgkb", "Npy2r")
- DotPlot (object = Karasnow1, features= markers.plot)
- VlnPlot (object = Karasnow1, features= markers.plot, stack = T, sort = F, flip = TRUE)
- #larynx cluster cluster 2
- markers.plot <- c("Calca", "Pnoc", "Uts2", "Lhx4", "Dlk1")
- VlnPlot (object = Karasnow1, features= markers.plot, stack = T, sort = F, flip = TRUE)
- #all namb marker
- markers.plot <- c("Slc18a3", "Isl1")
- VlnPlot (object = Karasnow1, features= markers.plot)
- VlnPlot(Karasnow1, features = c("Vipr2", "Adcyap1", "Crhr2"))
- #cluster 2
- VlnPlot(Karasnow1, features = c("Calca", "Dlk1"))
- #cluster1
- VlnPlot(Karasnow1, features = c("Ghsr", "Bche", "Htr3b", "Npy2r"))
- #cluster 3
- VlnPlot(Karasnow1, features = c("Trhr", "Sema3d", "Pappa2", "Pcdh18"))
- ```
- ```{r}
- new.cluster.ids_numeric <- c("01","02","03")
- names(new.cluster.ids_numeric) <- levels(Karasnow1)
- Karasnow1 <- RenameIdents(Karasnow1, new.cluster.ids_numeric)
- Karasnow1$annotationsnumeric=Idents(Karasnow1)
- new.cluster.ids <- c("n01.ACV","n02.larynx","n03.ACP")
- names(new.cluster.ids) <- levels(Karasnow1)
- Karasnow1 <- RenameIdents(Karasnow1, new.cluster.ids)
- Karasnow1$annotationsnumeric=Idents(Karasnow1)
- Karasnow1$annotations=Idents(Karasnow1)
- DimPlot(Karasnow1, reduction = "umap", label = TRUE, pt.size = 2) + NoLegend()
- ```
- ```{r}
- PlotClusterTree(Karasnow1)
- VlnPlot(Karasnow1, features=c("Adcyap1", "Crhr2", "Uts2", "Vipr2", "Calca"), pt.size=0.1)
- markers.plot <- c("Adcyap1", "Calca")
- VlnPlot (object = Karasnow1, features= markers.plot, stack = T, sort = F, flip = TRUE)
- #remotes::install_github("satijalab/seurat", ref = "release/4.0.0")
- DefaultAssay(namb_all.int)<- "integrated"
- DefaultAssay(Karasnow1)<- "RNA"
- anchors <- FindTransferAnchors(
- reference = namb_all.int,
- query = Karasnow1,reference.assay = "integrated",
- query.assay = "RNA", dims = 1:50)
- predictions_Veerakumar <- TransferData(anchorset = anchors, refdata = namb_all.int$annotationsnumeric, dims = 1:30)
- #query dataset goes here
- Karasnow1 <- AddMetaData(Karasnow1, metadata = predictions_Veerakumar)
- ```
- #Create Figure:
- ```{r}
- pids = as.integer(as.matrix(Karasnow1$predicted.id))
- ones = as.integer(pids==1)
- Karasnow1$ones = ones
- twos = as.integer(pids==2)
- Karasnow1$twos = twos
- threes = as.integer(pids==3)
- Karasnow1$threes = threes
- fours = as.integer(pids==4)
- Karasnow1$fours = fours
- fives = as.integer(pids==5)
- Karasnow1$fives = fives
- sixes = as.integer(pids==6)
- Karasnow1$sixes = sixes
- ```
- ```{r}
- ct_factor = factor(Karasnow1$tree.ident)
- ct_factor = factor(ct_factor,levels(ct_factor)[rev(c(6,5,4,3,2,1))])
- Karasnow1$tree.ident <- ct_factor
- #mapping on the UMAP
- library(Seurat)
- library(SeuratDisk)
- library(ggplot2)
- library(patchwork)
- Karasnow1 <- MapQuery(
- anchorset = anchors,
- query = Karasnow1,
- reference = namb_all.int,
- refdata = list(
- Karasnow1 = "Karasnow",
- namb_all.int = "namb"
- ),
- reference.reduction = "spca",
- reduction.model = "wnn.umap"
- )
- markers.plot <- c("ones","twos","threes","fours","fives","sixes")
- VlnPlot(Karasnow1,features=c("ones","twos","threes","fours","fives","sixes"),group.by="tree.ident", stack = F)
- DotPlot(Karasnow1,features=c("ones","twos","threes","fours","fives","sixes"),group.by="tree.ident", scale=F) + scale_colour_gradient2(low = "#00FFFF", mid = "#FFFFFF", high = "#FF00FF")
- DotPlot(Karasnow1,features=c("ones","twos","threes","fours","fives","sixes"),group.by="tree.ident",scale.by="size") + scale_colour_gradient2(low = "#00FFFF", mid = "#FFFFFF", high = "#FF00FF")
- ```
- #Load Coverdell dataset
- ```{r}
- #load snucseq data
- ChatNamb.data=read.table(file = "~/Desktop/Lab/Projects/Namb data/Sequencing/ChatNAmb_dge.tsv", header = TRUE, row.names = 1)
- ChatNAmb <- CreateSeuratObject(counts = ChatNamb.data, min.cells = 3, min.features = 2000, project = "ChatNAmb")
- ChatNAmb <- NormalizeData(object = ChatNAmb, normalization.method = "LogNormalize")
- # Visualize QC metrics as a violin plot
- VlnPlot(ChatNAmb, features = c("nFeature_RNA", "nCount_RNA"), ncol = 3)
- # Identify the 10 most highly variable genes
- top10 <- head(VariableFeatures(ChatNAmb), 10)
- # plot variable features with and without labels
- ChatNAmb <- FindVariableFeatures(ChatNAmb, selection.method = "vst", nfeatures = 2000)
- plot1 <- VariableFeaturePlot(ChatNAmb)
- plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)
- CombinePlots(plots = list(plot1, plot2))
- all.genes <- rownames(ChatNAmb)
- ChatNAmb <- ScaleData(ChatNAmb, features = all.genes)
- ChatNAmb <- RunPCA(ChatNAmb, features = VariableFeatures(object = ChatNAmb))
- # Examine and visualize PCA results a few different ways
- print(ChatNAmb[["pca"]], dims = 1:5, nfeatures = 5)
- VizDimLoadings(ChatNAmb, dims = 1:2, reduction = "pca")
- DimPlot(ChatNAmb, reduction = "pca")
- DimHeatmap(ChatNAmb, dims = 1, cells = 500, balanced = TRUE)
- DimHeatmap(ChatNAmb, dims = 1:15, cells = 500, balanced = TRUE)
- ElbowPlot(ChatNAmb)
- ChatNAmb <- FindNeighbors(ChatNAmb, dims = 1:8)
- ChatNAmb <- FindClusters(ChatNAmb, resolution = 0.5)
- head(Idents(ChatNAmb), 5)
- ChatNAmb <- RunUMAP(ChatNAmb, dims = 1:10)
- DimPlot(ChatNAmb, reduction = "umap")
- ChatNAmb.markers <- FindAllMarkers(ChatNAmb, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)
- ChatNAmb.markers %>% group_by(cluster) %>% top_n(n = 2, wt = avg_logFC)
- # you can plot raw counts as well
- VlnPlot(ChatNAmb, features = c("Vipr2","Slc17a6" , "Crhr2", "Slc6a5", "Adcyap1"), slot = "counts", log = TRUE)
- VlnPlot(ChatNAmb, features = c("Vipr2", "Tbx3", "Crhr2", "Col1a2", "Adcyap1", "Calca", "Sox5", "Uts2", "Chat", "Phox2b", "Nos1", "Htr3a", "Npy2r", "Trhr", "Kcnj14", "Edn1", "Edn3", "Oprm1"), slot = "counts")
- VlnPlot(ChatNAmb, features = c("Vipr2", "Tbx3"), slot = "counts", log = TRUE)
- FeaturePlot(ChatNAmb, features = c("Vipr2", "Tbx3", "Crhr2", "Col1a2", "Adcyap1", "Calca", "Sox5", "Uts2", "Chat", "Phox2b", "Nos1", "Htr3a", "Npy2r", "Trhr", "Kcnj14", "Edn1", "Edn3", "Oprm1"))
- top10 <- ChatNAmb.markers %>% group_by(cluster) %>% top_n(n = 10, wt = avg_logFC)
- DoHeatmap(ChatNAmb, features = top10$gene) + NoLegend()
- ```
- #Chatnamb neurons
- ```{r}
- VlnPlot(ChatNAmb, features = c("Vipr2","Slc17a6" , "Crhr2", "Slc6a5", "Adcyap1"), slot = "counts", log = TRUE)
- new.cluster.ids <- c("n01.Vipr2","n02.Slc17a6/Chat","n03.Crhr2","n04.Slc6a5/Chat","n05.Adcyap1")
- names(new.cluster.ids) <- levels(ChatNAmb)
- ChatNAmb <- RenameIdents(ChatNAmb, new.cluster.ids)
- DimPlot(ChatNAmb, reduction = "umap", label = TRUE, pt.size = 2) + NoLegend()
- Idents(ChatNamb)=ChatNAmb$celltype
- # subset relevant cell types from snucseq data data object
- Chat_Nambonly_SeuratObject = subset(ChatNAmb,idents=c("n01.Vipr2","n03.Crhr2","n05.Adcyap1"))
- Chat_Nambonly_SeuratObject <- NormalizeData(Chat_Nambonly_SeuratObject, normalization.method = "LogNormalize", scale.factor = 10000)
- Chat_Nambonly_SeuratObject <- FindVariableFeatures(Chat_Nambonly_SeuratObject, selection.method = "vst", nfeatures = 2000)
- top10 <- head(VariableFeatures(Chat_Nambonly_SeuratObject), 10)
- # plot variable features with and without labels
- plot1 <- VariableFeaturePlot(Chat_Nambonly_SeuratObject)
- plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)
- LabelPoints(plot = plot1, points = top10, repel = TRUE, xnudge = 0, ynudge = 0)
- Chat_Nambonly_SeuratObject <- ScaleData(Chat_Nambonly_SeuratObject, features = gene_List)
- Chat_Nambonly_SeuratObject <- RunPCA(Chat_Nambonly_SeuratObject, features = VariableFeatures(object = Chat_Nambonly_SeuratObject))
- # Examine and visualize PCA results a few different ways
- print(Chat_Nambonly_SeuratObject[["pca"]], dims = 1:5, nfeatures = 5)
- VizDimLoadings(Chat_Nambonly_SeuratObject, dims = 1:2, reduction = "pca")
- DimPlot(Chat_Nambonly_SeuratObject, reduction = "pca")
- DimHeatmap(Chat_Nambonly_SeuratObject, dims = 1, cells = 400, balanced = TRUE)
- DimHeatmap(Chat_Nambonly_SeuratObject, dims = 1:12, cells = 400, balanced = TRUE)
- ElbowPlot(Chat_Nambonly_SeuratObject)
- ```
- ```{r}
- x <- 10
- Chat_Nambonly_SeuratObject <- FindNeighbors(Chat_Nambonly_SeuratObject, dims = 1:x)
- Chat_Nambonly_SeuratObject <- FindClusters(Chat_Nambonly_SeuratObject, resolution = 0.25)
- head(Idents(Chat_Nambonly_SeuratObject), 5)
- length(WhichCells(Chat_Nambonly_SeuratObject))
- ##### Visualize clustering
- Chat_Nambonly_SeuratObject <- RunUMAP(Chat_Nambonly_SeuratObject, dims = 1:x)
- ##### Reorder clusters by relatedness
- Chat_Nambonly_SeuratObject=BuildClusterTree(Chat_Nambonly_SeuratObject,reorder=TRUE, reorder.numeric = TRUE)
- PlotClusterTree(Chat_Nambonly_SeuratObject)
- DimPlot(Chat_Nambonly_SeuratObject, reduction = "umap", label = T)
- VlnPlot(Chat_Nambonly_SeuratObject, features = c("Vipr2", "Crhr2","Adcyap1"), slot = "counts", log = TRUE)
- ```
- # perform label transfer
- ```{r}
- DefaultAssay(namb_all.int)<- "integrated"
- DefaultAssay(Chat_Nambonly_SeuratObject)<- "RNA"
- anchors_namb <- FindTransferAnchors(reference = namb_all.int, query = Chat_Nambonly_SeuratObject,dims = 1:30)
- predictions <- TransferData(anchorset = anchors_namb, refdata = namb_all.int$annotationsnumeric, dims = 1:30)
- Chat_Nambonly_SeuratObject <- AddMetaData(Chat_Nambonly_SeuratObject, metadata = predictions)
- ```
- ```{r}
- DotPlot(Chat_Nambonly_SeuratObject, features = c("Vipr2", "Adcyap1", "Crhr2"))
- new.cluster.ids <- c("n01.Vipr2","n02.Crhr2","n03.Adcyap1")
- names(new.cluster.ids) <- levels(Chat_Nambonly_SeuratObject)
- Chat_Nambonly_SeuratObject <- RenameIdents(Chat_Nambonly_SeuratObject, new.cluster.ids)
- DimPlot(Chat_Nambonly_SeuratObject, reduction = "umap", label = TRUE, pt.size = 2) + NoLegend()
- Chat_Nambonly_SeuratObject$annotations=Idents(Chat_Nambonly_SeuratObject)
- new.cluster.ids_numeric <- c("01","02","03")
- names(new.cluster.ids_numeric) <- levels(Chat_Nambonly_SeuratObject)
- Chat_Nambonly_SeuratObject <- RenameIdents(Chat_Nambonly_SeuratObject, new.cluster.ids_numeric)
- Chat_Nambonly_SeuratObject$annotationsnumeric=Idents(Chat_Nambonly_SeuratObject)
- DimPlot(Chat_Nambonly_SeuratObject, reduction = "umap", label = TRUE, pt.size = 2) + NoLegend()
- DotPlot(Chat_Nambonly_SeuratObject, features = c("Vipr2", "Adcyap1", "Crhr2"))
- ```
- #Create Figure:
- ```{r}
- pids = as.integer(as.matrix(Chat_Nambonly_SeuratObject$predicted.id))
- ones = as.integer(pids==1)
- Chat_Nambonly_SeuratObject$ones = ones
- twos = as.integer(pids==2)
- Chat_Nambonly_SeuratObject$twos = twos
- threes = as.integer(pids==3)
- Chat_Nambonly_SeuratObject$threes = threes
- fours = as.integer(pids==4)
- Chat_Nambonly_SeuratObject$fours = fours
- fives = as.integer(pids==5)
- Chat_Nambonly_SeuratObject$fives = fives
- sixes = as.integer(pids==6)
- Chat_Nambonly_SeuratObject$sixes = sixes
- ```
- ```{r}
- ct_factor1_chat = factor(Chat_Nambonly_SeuratObject$tree.ident)
- ct_factor1_chat = factor(ct_factor1_chat,levels(ct_factor1_chat)[rev(c(6,5,4,3,2,1))])
- Chat_Nambonly_SeuratObject$tree.ident <- ct_factor1_chat
- DotPlot(Chat_Nambonly_SeuratObject,features=c("ones","twos","threes","fours","fives","sixes"),group.by="tree.ident",scale.by="size") + scale_colour_gradient2(low = "#00FFFF", mid = "#FFFFFF", high = "#FF00FF")
- ```
Reference_Query_Mapping .Rmd, under CC-BY-4.0 · at the source
Overview
- Department of Biology, University of Virginia, Charlottesville, Virginia 22904
- Neuroscience Graduate Program, University of Virginia, Charlottesville, Virginia 22903
- Department of Pharmacology, University of Virginia, Charlottesville, Virginia 22903
- Dalton Cardiovascular Research Center, University of Missouri, Columbia, Missouri 65211
- Department of Pathobiology and Integrative Biomedical Sciences, College of Veterinary Medicine, University of Missouri, Columbia, Missouri, 65211
Abstract
The nucleus ambiguus (nAmb) provides parasympathetic control of cardiorespiratory functions as well as motor control of the upper airways and esophagus. A subset of nAmb neurons innervates the heart through the vagus nerve to control cardiac function at rest and during key autonomic reflexes such as the mammalian diving reflex. Yet, how these cardiovagal nAmb neurons differ from other nAmb neurons in the adult brain remains unclear. We therefore classified adult male and female mouse nAmb neurons molecularly, anatomically, and functionally. First, our integrated analysis of single-nucleus RNA-sequencing data predicted multiple molecular subtypes of nAmb neurons. Mapping the axon projections of one nAmb neuron subtype, Npy2r-expressing nAmb neurons, showed that they innervate cardiac ganglia but not the upper airways or esophagus. Chemogenetically stimulating Npy2r + nAmb neurons robustly decreased heart rate through peripheral muscarinic acetylcholine receptors. Finally, voluntary underwater diving decreases heart rate and activates Npy2r + nAmb neurons, consistent with a cardiovagal function for this nAmb subtype. These results together reveal the molecular organization of nAmb neurons and its control of the heart rate.
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 5 matches between paragraphs and lines of code.
Zenodo 22864368
Availability: 1 check, the latest on 24 October 2026: the link answers (HTTP 200)
- 24 October 2026: the link answers (HTTP 200)
5 files
- Batch_elimination_noFema
le.Rmd , R, 257 lines, 1 match - Batch_elimination_noMale
.Rmd , R, 255 lines - Reference_Query_Mapping .Rmd, R, 312 lines, 3 matches
- Riverplot_Jalil_Veerakum
ar.Rmd , R, 117 lines - namb_data_analysis_Jalil
_Maira.Rmd , R, 374 lines, 1 match
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;
- 5 scripts, each with its path and the digest of its content;
- 5 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.
Data Availability
The raw and processed snRNA-seq data and metadata reported in this paper are available at GEO accession number GSE348348. A user-friendly interface for visualizing and exploring the fully processed snRNA-seq data is available at the Broad Institute Single Cell Portal at https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 24 October 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 16 authors, 7 keywords, 10 MeSH terms, 5 funders, 81 references, 2 RRIDs.
Cite
This paper
Jalil, M., MacMillan, M. K., Coverdell, T. C., Gutierrez, V. A., Crook, M. E., Heinrichs, T. J., Dever, A., Cox, K. S., Stornetta, D. S., Wang, Y. B., Schwalbe, D. C., Singh, A., VanderVoort, L., Boychuk, C. R., Abbott, S. B. G., & Campbell, J. N. (2026). Molecular Disambiguation of Heart Rate Control by the Nucleus Ambiguus. The Journal of neuroscience : the official journal of the Society for Neuroscience, 46(42), e0398262026. https://
BibTeX
@article{jalil2026molecu
author = {Jalil, Maira and MacMillan, Mary Katherine and Coverdell, Tatiana C. and Gutierrez, Veronica A. and Crook, Maisie E. and Heinrichs, Travis J. and Dever, Ashlyn and Cox, Katie Shouse and Stornetta, Daniel S. and Wang, Yoko B. and Schwalbe, Dana C. and Singh, Adriana and VanderVoort, Lane and Boychuk, Carie R. and Abbott, Stephen B. G. and Campbell, John N.},
title = {{Molecular Disambiguation of Heart Rate Control by the Nucleus Ambiguus}},
journal = {The Journal of neuroscience : the official journal of the Society for Neuroscience},
year = {2026},
month = oct,
volume = {46},
number = {42},
pages = {e0398262026},
publisher = {Society for Neuroscience},
issn = {0270-6474},
doi = {10.1523/
url = {https://
pmid = {42736025},
pmcid = {PMC13689988}
}
RIS
TY - JOUR
AU - Jalil, Maira
AU - MacMillan, Mary Katherine
AU - Coverdell, Tatiana C.
AU - Gutierrez, Veronica A.
AU - Crook, Maisie E.
AU - Heinrichs, Travis J.
AU - Dever, Ashlyn
AU - Cox, Katie Shouse
AU - Stornetta, Daniel S.
AU - Wang, Yoko B.
AU - Schwalbe, Dana C.
AU - Singh, Adriana
AU - VanderVoort, Lane
AU - Boychuk, Carie R.
AU - Abbott, Stephen B. G.
AU - Campbell, John N.
TI - Molecular Disambiguation of Heart Rate Control by the Nucleus Ambiguus
T2 - The Journal of neuroscience : the official journal of the Society for Neuroscience
J2 - J Neurosci
PY - 2026
DA - 2026/
VL - 46
IS - 42
SP - e0398262026
SN - 0270-6474
PB - Society for Neuroscience
DO - 10.1523/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1523/
"type": "article-journal",
"title": "Molecular Disambiguation of Heart Rate Control by the Nucleus Ambiguus",
"container-title": "The Journal of neuroscience : the official journal of the Society for Neuroscience",
"author": [
{
"family": "Jalil",
"given": "Maira"
},
{
"family": "MacMillan",
"given": "Mary Katherine"
},
{
"family": "Coverdell",
"given": "Tatiana C."
},
{
"family": "Gutierrez",
"given": "Veronica A."
},
{
"family": "Crook",
"given": "Maisie E."
},
{
"family": "Heinrichs",
"given": "Travis J."
},
{
"family": "Dever",
"given": "Ashlyn"
},
{
"family": "Cox",
"given": "Katie Shouse"
},
{
"family": "Stornetta",
"given": "Daniel S."
},
{
"family": "Wang",
"given": "Yoko B."
},
{
"family": "Schwalbe",
"given": "Dana C."
},
{
"family": "Singh",
"given": "Adriana"
},
{
"family": "VanderVoort",
"given": "Lane"
},
{
"family": "Boychuk",
"given": "Carie R."
},
{
"family": "Abbott",
"given": "Stephen B. G."
},
{
"family": "Campbell",
"given": "John N."
}
],
"container-title-short":
"volume": "46",
"issue": "42",
"page": "e0398262026",
"DOI": "10.1523/
"PMID": "42736025",
"PMCID": "PMC13689988",
"ISSN": "0270-6474",
"publisher": "Society for Neuroscience",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
10,
21
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1016/j.celrep.2022.110962 [code]
- Genetic encoding of an esophageal motor circuit.Journal: Cell reportsIn common: tidyverse, genetics / omics, 19 references, 2 authors
- [2] doi:10.1016/j.isci.2024.109137
- Dorsal motor vagal neurons can elicit bradycardia and reduce anxiety-like behavior.Journal: iScienceIn common: 9 references, 2 authors
- [3] doi:10.1038/s41586-022-04760-8
- Molecularly defined circuits for cardiovascular and cardiopulmonary control.Journal: NatureIn common: genetics / omics, mouse, 7 references
- [4] doi:10.1101/2025.05.11.653249 [code]
- NodoMap: a spatio-cellular map of the mouse nodose gangliaJournal: bioRxiv (preprint)In common: pheatmap, Seurat, patchwork, 3 other tools, genetics / omics, mouse, cellular / molecular, 4 references
- [5] doi:10.1016/j.cpblue.2026.100072 [code]
- NodoMap: A single-cell and spatial transcriptomic atlas of the mouse nodose ganglion.Journal: Cell press blueIn common: pheatmap, Seurat, patchwork, 3 other tools, genetics / omics, mouse, 4 references
- [6] doi:10.1038/s41586-026-10490-y [code]
- Lineage and organ signals sequentially build organ intrinsic nervous systems.Journal: NatureIn common: Seurat, patchwork, cowplot, 2 other tools, mouse, 4 references
- [7] doi:10.1016/j.celrep.2025.116507 [code]
- Molecular and functional asymmetry in Cckar-expressing vagal sensory neurons.Journal: Cell reportsIn common: Seurat, patchwork, cowplot, 2 other tools, genetics / omics, mouse, cellular / molecular, 3 references
- [8] doi:10.1016/j.isci.2024.110549 [code]
- Neuromodulatory co-expression in cardiac vagal motor neurons of the dorsal motor nucleus of the vagus.Journal: iScienceIn common: pheatmap, Seurat, cowplot, 2 other tools, 2 references
- [9] doi:10.1016/j.isci.2026.116337 [code]
- Multimodal atlas of single neuron metabolic electrophysiological coupling uncovers circadian rewiring.Journal: iScienceIn common: pheatmap, Seurat, patchwork, 2 other tools, genetics / omics, cellular / molecular, 3 references
- [10] doi:10.1371/journal.pcbi.1014573 [code]
- Cell-type-specific m1A dynamics are associated with microglial phenotypic transition and neuronal metabolic adaptation during spinal cord injury.Journal: PLoS computational biologyIn common: pheatmap, Seurat, patchwork, 3 other tools, genetics / omics, mouse, cellular / molecular, 1 reference
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, 5 scripts, and 5 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:1cce5fe33cc3e3fe…
Add the badge to the code's README
If you are an author or a maintainer of this paper's code, you can add this badge. It says what OSCR knows of the paper (its code, its validated tracing map) and links the code to this page. Paste one of these snippets under the README's title. Keep the two marks around it, so that the badge can be replaced in place and is never added twice. OSCR changes nothing in your repository.
Markdown
<!-- oscr-badge:start -->
[](https://openscicode.org/badge/doi/10.1523/jneurosci.0398-26.2026)
<!-- oscr-badge:end -->reStructuredText
.. oscr-badge:start
.. image:: https://openscicode.org/badge/doi/10.1523/jneurosci.0398-26.2026.svg
:target: https://openscicode.org/badge/doi/10.1523/jneurosci.0398-26.2026
:alt: OSCR
.. oscr-badge:endHTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1523/jneurosci.0398-26.2026"><img src="https://openscicode.org/badge/doi/10.1523/jneurosci.0398-26.2026.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->If you choose to, you can have the badge kept up to date for you, with oscr badge --write from the command line or with the GitHub Action in your repository's workflows. Every other form and option (a card, AsciiDoc, LaTeX, shields.io) is on the badge 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: code errors and mismatches between the code and the paper about this paper and its code, from readers and its authors, beside the paper and its tracing map.
Report a mismatch between the code and the paper · Report a code error (signed in)
Reproductions: reports from readers who ran the authors' code and did not get the paper's result, what they ran, with which environment, commit and data.
Report a reproduction failure (signed in)
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
