A single-cell transcriptomic atlas reveals the emergence of medusa-specific cell states in the scyphozoan Aurelia coerulea.
The 16 matches
- [1] § Materials and methods › Phylogenetic trees ↔ Supplement.RMD, lines 385–395 · score 0.98 · Branchiostoma floridae, Caenorhabditis elegans, Cassiopea xamachana, Exaiptasia diaphana, Homo sapiens, Hydractinia symbiolongicarpus
- [2] § Materials and methods › Single-cell analysis ↔ Linketal.Ac.analyse.alldata_REVISED.R, lines 391–473 · score 0.87 · k.param, annoy.metric, FindNeighbors, alldata revised, linketal ac analyse, RunPCA
- [3] § Results › Cnidocytes highlight conserved features of cnidogenesis between anthozoans and scyphozoans ↔ Linketal.Ac.generate.figures_REVISED.R, lines 407–493 · score 0.82 · SoxA, gfi1b, SoxC, ZN431, fos, prdm13
- [4] § Materials and methods › Single-cell analysis ↔ Linketal.Ac.Nv.OMA_REVISED.R, lines 222–263 · score 0.81 · k.param, annoy.metric, FindNeighbors, UMAP, euclidean, Seurat
- [5] § Results › Shared core contractile machinery between smooth and striated muscles indicates a gradual maturation of smooth fibers into the striated phenotype ↔ Linketal.Ac.generate.figures_REVISED.R, lines 540–604 · score 0.80 · myosin light chain, myosin regulatory, protein gene, smooth muscle, kinase, melc
- [6] § Materials and methods › Single-cell analysis ↔ Linketal.Ac.Nv.OMA_REVISED.R, lines 1035–1078 · score 0.76 · FindIntegrationAnchors, IntegrateData, NormalizeData, RunPCA, Seurat, variable
- [7] § Results › Aurelia neural complement reveals two neuro-secretory classes with similarities to anthozoan neuroglandular populations ↔ Supplement.RMD, lines 335–357 · score 0.76 · atoh8a, atoh8b, atoh8c, atoh8d, neurons, Nematostella
- [8] § Results › Principles of muscle contraction and sub functionalization of paralogs ↔ Linketal.Ac.generate.figures_REVISED.R, lines 540–604 · score 0.70 · myosin light chain, smooth muscle, tpm, tropomyosin, MELC, kinase
- [9] § Results › Transcription factor family expansions may be related to the generation of novel medusa cell types ↔ Supplement.RMD, lines 335–357 · score 0.67 · atoh8b, atoh8c, atoh8d, neuron, family, Nematostella
- [10] § Results › Transcription factor family expansions may be related to the generation of novel medusa cell types ↔ Linketal.Ac.Nv.OMA_REVISED.R, lines 1121–1159 · score 0.64 · otx1c, novel cell, expansion, myc, outer, putative
- [11] § Results › Transition to free-swimming medusa is accompanied by increased cell type complement ↔ Supplement.RMD, lines 234–265 · score 0.61 · gastric filaments, ashC, Digestive gland cell, localized, Mucin, chitinase
- [12] § Results › Cnidocytes highlight conserved features of cnidogenesis between anthozoans and scyphozoans ↔ Linketal.Ac.Nv.OMA_REVISED.R, lines 412–464 · score 0.60 · GFI1B, SoxC, jun, myc1, nv, OMA
- [13] § Results › Single-cell transcriptomic atlas reveals distinct cellular subtypes associated with the formation of medusa in the moon jelly ↔ Supplement.RMD, lines 385–395 · score 0.60 · class n1, class n2, Hydra vulgaris, ins, human, POU4
- [14] § Results › Aurelia neural complement reveals two neuro-secretory classes with similarities to anthozoan neuroglandular populations ↔ Linketal.Ac.generate.figures_REVISED.R, lines 495–538 · score 0.54 · ins1a, ashA, pRFa, voltage, embedding, pou4
- [15] § Results › Muscle profiles correspond to smooth and striated fiber types ↔ Linketal.Ac.Nv.OMA_REVISED.R, lines 1121–1159 · score 0.53 · otx1a, cPATH, otx2, Striated muscle, gastrodermis, Aurelia
- [16] § Results › Transition to free-swimming medusa is accompanied by increased cell type complement ↔ Linketal.Ac.generate.figures_REVISED.R, lines 671–760 · score 0.52 · mucin gland, digestive gland, inner, partition, outer, gastrodermis
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 · 397 lines · 21 KB · no license · 5 matches
- ---
- title: "Aurelia Atlas | Supplementary Data Figures"
- output: html_document
- ---
- ```{r, setup, include=FALSE}
- # Global chunk options
- knitr::opts_chunk$set(
- warning = FALSE,
- message = FALSE,
- echo = FALSE,
- fig.width = 12
- )
- setwd("/lisc/data/scratch/molevo/agcole/R/Aurelia_51k/Ac_manuscript_revision_ACOE")
- #load libraries:
- library(tinytex,quietly = T)
- library(Seurat,quietly=T)
- library(RColorBrewer,quietly=T)
- library(patchwork,quietly=T)
- library(ggplot2,quietly=T)
- library(pals,quietly=T)
- library(readxl,quietly=T)
- library(SeuratWrappers,quietly=T)#,lib.loc = '/lisc/data/scratch/molevo/agcole/R/libs/course24/')
- library(tidyr,quietly=T)
- library(dplyr,quietly = T)
- load (file='/lisc/data/scratch/molevo/agcole/R/Aurelia_51k/ac.kostyaPlus/ACOE.genes.RData')
- if(!exists('Ac.Alldata'))
- load(file='Ac.Alldata.Robj')
- if(!exists('data1.subsets'))
- load(file='Ac.subsets.RObj')
- genes=genes.ac
- gene.cp = c('lightgrey', rev(brewer.pal(11 , "Spectral")))
- clust.cp.separate = unique (c(cols25(25), glasbey(32), alphabet(26)))
- clust.cp.graded = unique(c(stepped3(20), stepped2(20), stepped(20)))
- LibCP = c(stepped3(3),stepped(20)[c(13:16)],stepped(20)[c(11,9)],stepped3(20)[c(5,6)],'red',stepped(20)[c(1,2)],stepped2(20)[c(17,18)])
- Ac.Alldata$orig.ident=as.factor(Ac.Alldata$orig.ident)
- names(LibCP)=levels(as.factor(Ac.Alldata$orig.ident))
- LibCP.stages=LibCP[c(1,9,11,16)]
- names(LibCP.stages)=c('polyp','strobila','ephyra','medusa')
- neur.cp=rev(c('wheat3','burlywood',stepped(8)[7:8],"#ff7f00",stepped3(8)[5:7],'orange','chocolate','darkkhaki',stepped(12)[9:11],"#33a02c",'green3','forestgreen','darkgreen','darkolivegreen',(stepped2(8)[5:8])))
- all.clusters.cp=c("skyblue","#1F78C8","darkblue","seagreen3","#FFD700" ,'goldenrod3','goldenrod1','yellow','goldenrod4',"grey",brewer.greys(14)[6:9],"#ff0000",brewer.reds(6)[3:6],neur.cp,"#FB6496",brewer.rdpu(20)[c(6,8,10,14,17,12,18)],'violet',"#6A33C2", brewer.purples(10)[4:10],'black')
- names(all.clusters.cp)=levels(SetIdent(Ac.Alldata,value='ID.separate'))
- names(neur.cp)=levels(data1.subsets$neural)
- ```
- **Aurelia Cell Atlas:**
- Supplementary materials in support of the conclusions drawn in Link et al. (2026), PLOS Biology.
- <br> <br>
- **A single-cell transcriptomic atlas reveals the emergence of medusa-specific cell states in the scyphozoan *Aurelia coerulea* **
- <br><br>
- Oliver Link1, Stefan M. Jahnel2, Kristin Janicek1, Daniel Guerguerian1, Johanna Kraus1, Juan Daniel Montenegro1, Bob Zimmerman1, Brittney Wick3, Konstantin Khalturin4, Alison G. Cole1, and Ulrich Technau1,5
- <br> <br> <br>
- ### **Figure S1: Life cycle: medusa genes**
- ```{r}
- print(
- VlnPlot(Ac.Alldata,c('nFeature_RNA','nCount_RNA'), group.by = 'lifehistory', cols= LibCP.stages)+
- plot_annotation(tag_levels = "A")&ylab('counts'))
- metadata<-cbind(Ac.Alldata$nFeature_RNA,Ac.Alldata$nCount_RNA)
- colnames(metadata)<-c('nFeature_RNA','nCount_RNA')
- #xlsx::write.xlsx(metadata,'S4_raw.xlsx',sheetName='FigS1AB',col.names = T,row.names = T,append=T)
- ```
- ```{r echo=FALSE}
- medusa.specific = read.csv(file='DS1.1a.csv')
- g=medusa.specific$gene_short_name
- # sort gene.plot according to clusters with dist and hclust to get gene orders:
- data1<-ScaleData(Ac.Alldata,features=g,split.by = 'lifehistory',assay='RNA',verbose = F)
- m=AverageExpression(data1,slot = 'scale.data',assay='RNA',features=g)
- h=hclust(dist(m$RNA),method='ward.D2')
- #FigS1B: All medusa genes ----
- x=DotPlot(Ac.Alldata,assay='RNA',features=rev(g[h$order]),scale.by='size', dot.min = 0.001,group.by = 'ID.separate', col.min = 0,cols = c('lightgrey','red'))+RotatedAxis() +FontSize(10,5)+ labs(title='Medusa-specific genes',subtitle='all genes')+theme(legend.position = 'bottom',legend.text = (element_text(size=8)),panel.grid = element_line('grey80',linewidth = 0.2))+coord_flip()
- specificity.index2= x$data %>%
- group_by(id) %>%
- filter(pct.exp >0 & avg.exp.scaled >=0)%>%
- count(pct.exp >0)
- summary.medusa.exp=as.data.frame(levels(Ac.Alldata$ID.separate))
- summary.medusa.exp$n = 0L
- names(summary.medusa.exp)[1] = 'id'
- summary.medusa.exp$n[summary.medusa.exp$id %in% specificity.index2$id]=specificity.index2$n
- # xlsx::write.xlsx(summary.medusa.exp$n,'S4_raw.xlsx',sheetName='FigS1C',col.names = T,row.names = T,append=T)
- ```
- ```{r}
- par(mar = c(10, 4.1, 4.1, 2.1))
- barplot(summary.medusa.exp$n,
- names.arg = summary.medusa.exp$id,
- las = 2,
- cex.names = 1,
- col = all.clusters.cp[summary.medusa.exp$id],
- ylim=c(0,500),
- ylab='counts')
- title("All medusa.genes, detection / cluster")
- mtext("C",
- side = 3, # top
- adj = -0.05, # left align
- line = 2,
- cex = 1.5,
- font = 2)
- ```
- Figure S1: **A**) Total number of genes (nFeatures_RNA) and **B**) molecules (nCounts_RNA) recovered from all cells captured across life cycle stages **C**) Distribution of medusa-specific genes across all cell types. The set of all medusa-specific genes were considered. For every cluster the gene is counted as expressed if reads are detected and expression value is above the average expression across all identities.
- <br> <br> <br> <br>
- ### **Figure S2: Life cycle: differentially expressed genes**
- ```{r fig.height=24, fig.width=12}
- load(file='markers.lifehistory.RObj')
- l<-round(length(unique(life.history.markers$gene))/2)
- goi=(unique(life.history.markers$gene))
- S2A<-DotPlot(SetIdent(Ac.Alldata,value='lifehistory'),assay='RNA',features=rev(goi[1:l]),split.by = 'lifehistory',cols = LibCP.stages,scale.by = 'radius',
- col.min = 0,
- dot.scale = 5)+DotPlot(SetIdent(Ac.Alldata,value='lifehistory'),assay='RNA',features=rev(goi[c(l+1:length(goi))]),split.by = 'lifehistory',cols = LibCP.stages,scale.by = 'radius',
- col.min = 0,
- dot.scale = 5)&
- RotatedAxis()+FontSize(10,6)&theme(panel.grid = element_line(linewidth = 0.2,colour = 'grey90'),legend.title = element_text(size = 8),legend.text = element_text(size=6),legend.position = 'bottom')&coord_flip()
- #xlsx::write.xlsx(S2A@data,'S4_raw.xlsx',sheetName='FigS2A',col.names = T,row.names = T,append=T)
- S2A& plot_annotation(tag_levels = list(c("A",'')))
- ```
- ```{r fig.height=12, fig.width=12}
- load(file='lifehistory.topGO.RObj')
- S2BE=rbind(topGO.lifehistory[[1]]@data,topGO.lifehistory[[2]]@data,topGO.lifehistory[[3]]@data,topGO.lifehistory[[4]]@data)
- #xlsx::write.xlsx(S2BE,'S4_raw.xlsx',sheetName='FigS2B_E',col.names = T,row.names = T,append=T)
- topGO.lifehistory[[1]]+topGO.lifehistory[[2]]+topGO.lifehistory[[3]]+topGO.lifehistory[[4]]&
- plot_annotation(tag_levels = list(c("B","C","D","E")))&
- theme(
- plot.tag = element_text(face = "bold")
- )
- ```
- **Fig. S2: Differential gene usage across lifecycle. A**) Dotplot of the set of deferentially expressed genes across life cycle stages. Plot split in two panels for increased legibility. **B:E**) TOP go evaluation of all differentially expressed genes across life cycle stages. See supplementary Data S1.2 for full gene lists.
- <br> <br> <br> <br>
- ### **Figure S3: Full cell state complement**
- ```{r fig.height=8}
- DimPlot(Ac.Alldata,cols=all.clusters.cp,group.by = 'ID.separate',split.by = 'lifehistory')&NoAxes() &
- theme(legend.position = "bottom")&
- plot_annotation(tag_levels = list("A"))
- ```
- **Fig. S3: Full cell state complement**. UMAP representation of all cluster identities, separated by life cycle stage.
- <br> <br> <br> <br>
- ### **Figure S4: Digestive Gland**
- ```{r fig.height=5}
- data1a<-SetIdent(Ac.Alldata,value='ID.separate')
- data1<-data1.subsets$gland.dig
- ids.cluster.library = as.data.frame(table(Idents(data1), [email hidden]$lifehistory.tissue))
- colnames(ids.cluster.library) = c('ID','Stage','CellCount')
- #xlsx::write.xlsx(ids.cluster.library,'S4_raw.xlsx',sheetName='FigS4C',col.names = T,row.names = T,append=T)
- ids<-c(52:59)
- coi=NULL
- for (i in 1:length(ids))
- coi[[i]]=WhichCells(data1a,idents=levels(data1a)[ids[i]])
- names(coi)=levels(data1a)[ids]
- p1<-(DimPlot(data1a,cells.highlight=(coi),cols.highlight = rev(clust.cp.separate[1:8]))+NoAxes()+NoLegend()+labs(subtitle = 'Alldata: Digestive cell subset'))+
- (DimPlot(data1,cols=clust.cp.separate[1:8],label=T)+NoAxes()+labs(subtitle = 'Digestive cell subtypes'))+
- (ggplot(ids.cluster.library, aes(fill=ID, y= (CellCount),
- x=Stage)) +
- geom_bar(mapping =aes(fill=ID, y= (CellCount),
- x=(Stage)),
- position="stack", stat="identity", width = 0.75)+
- scale_fill_manual(values = c(clust.cp.separate[1:8]))+
- theme(axis.text.x = element_text(
- size=8, angle=-45,hjust=0,vjust = 0.5))+NoLegend()+labs(subtitle = 'Digestive cell counts / life cycle'))
- p3<-DotPlot(data1a,feature=c('ashC.1'),cols=c('grey','red'),col.min = 0)+
- RotatedAxis() +theme(legend.position = 'bottom',legend.title = element_text(size=8),legend.text = element_text(size=8),panel.grid = element_line(color='grey90',linewidth = 0.2))+coord_flip()
- print(p1 +
- plot_annotation(tag_levels = "A")&
- theme(
- plot.tag = element_text(face = "bold")
- ))
- ```
- ```{r fig.height=4}
- #xlsx::write.xlsx(p3@data,'S4_raw.xlsx',sheetName='FigS4D',col.names = T,row.names = T,append=T)
- print(p3+
- plot_annotation(tag_levels = list("D")))
- ```
- ```{r fig.height=12}
- load(file = 'Ac.AllData.subsets.markers.RObj')
- list = NULL
- for (c in (1:length(unique((markers$gland.dig$cluster)))))
- {
- x=markers$gland.dig[as.numeric(markers$gland.dig$cluster)==c,][1:min(10,length(which(as.numeric(markers$gland.dig$cluster)==c))),7]
- list=c(list,x)
- }
- list=unique(list)
- list=list[!is.na(list)]
- p2<- DotPlot(data1.subsets$gland.dig,'RNA', features = c(list),scale.by='radius' , col.min = 0, split.by = 'lifehistory',cols = LibCP.stages,
- dot.min = 0.02)+
- RotatedAxis() +FontSize(10,8) +labs(title='Top 10 DEGs / cell sub-type',subtitle = 'adj.p-val <= 0.001')+theme(legend.position = 'bottom',legend.title = element_text(size=8),legend.text = element_text(size=8),panel.grid = element_line(color='grey90',linewidth = 0.1))+coord_flip()
- #xlsx::write.xlsx(p2@data,'S4_raw.xlsx',sheetName='FigS4E',col.names = T,row.names = T,append=T)
- print(p2 +
- plot_annotation(tag_levels = list("E")))
- ```
- ```{r fig.height = 4}
- chitinase <- png::readPNG("Chitinase.png")
- pA <- ggplot() + annotation_custom( grid::rasterGrob(chitinase, interpolate = TRUE), xmin = -Inf, xmax = Inf, ymin = -Inf, ymax = Inf ) + theme_void()
- pA+ plot_annotation(tag_levels = list("F")) &
- theme(
- plot.tag = element_text(face = "bold")
- )
- ```
- **Figure S4: Digestive gland population**. **A**) Full dataset UMAP showing position of cluster subset **B**) UMAP distribution of identified clusters. **C**) Bar plot showing distribution of digestive gland cells across life cycle stages and medusa tissue samples as absolute cell numbers. **D**) Gene expression dot plot showing expression profile of *ashC* specifically in identified digestive gland cell subtypes. **E**) Gene expression dot plot showing expression profile of top 10 differentially expressed genes for each cluster, separated by life cycle contribution. Full gene list is available in supplementary data S1.10 **F)** *in situ* hybridization showing localization of chitinase gene expression to the gastric filaments.
- <br> <br> <br> <br>
- ### **Figure S5: Mucin gland cluster**
- ```{r fig.height=5}
- data1a<-SetIdent(Ac.Alldata,value='ID.separate')
- data1<-data1.subsets$gland.muc
- ids.cluster.library = as.data.frame(table(Idents(data1), [email hidden]$lifehistory.tissue))
- colnames(ids.cluster.library) = c('ID','Stage','CellCount')
- #xlsx::write.xlsx(ids.cluster.library,'S4_raw.xlsx',sheetName='FigS5C',col.names = T,row.names = T,append=T)
- ids<-c(15:19)
- coi=NULL
- for (i in 1:length(ids))
- coi[[i]]=WhichCells(data1a,idents=levels(data1a)[ids[i]])
- names(coi)=levels(data1a)[ids]
- p1<-(DimPlot(data1a,cells.highlight=(coi),cols.highlight = rev(clust.cp.separate[1:5]))+NoAxes()+NoLegend()+labs(subtitle = 'Alldata: Mucin cell subset'))+
- (DimPlot(data1,cols=clust.cp.separate[1:8],label=T)+NoAxes()+labs(subtitle = 'Mucin cell subtypes'))+
- (ggplot(ids.cluster.library, aes(fill=ID, y= (CellCount),
- x=Stage)) +
- geom_bar(mapping =aes(fill=ID, y= (CellCount),
- x=(Stage)),
- position="stack", stat="identity", width = 0.75)+
- scale_fill_manual(values = c(clust.cp.separate[1:8]))+
- theme(axis.text.x = element_text(#face="bold", color="#993333",
- size=8, angle=-45,hjust=0,vjust = 0.5))+NoLegend()+labs(subtitle = 'Mucin cell counts / life cycle') )
- p1+
- plot_annotation(tag_levels = "A")&
- theme(
- plot.tag = element_text(face = "bold"))
- ```
- ```{r fig.height=4}
- FS5D<-DotPlot(data1a,feature=c('atoh8a','neuroD','mlp-like'),cols=c('grey','red'),col.min = 0)+
- RotatedAxis() +theme(legend.position = 'bottom',legend.title = element_text(size=8),legend.text = element_text(size=8),panel.grid = element_line(color='grey90',linewidth = 0.2))+coord_flip()
- #xlsx::write.xlsx(FS5D@data,'S4_raw.xlsx',sheetName='FigS5D',col.names = T,row.names = T,append=T)
- FS5D+
- plot_annotation(tag_levels = list("D"))
- ```
- **Figure S5: Mucin gland population**. **A**) Full dataset UMAP showing position of cluster subset **B**) UMAP distribution of identified clusters. **C**) Bar plot showing distribution of mucin gland cells across life cycle stages and medusa tissue samples as absolute cell numbers. **D**) Gene expression dot plot showing expression profile of mucin-like-protein (*mlp-like*) and the bHLH transcription factor *ngn* specifically in identified mucin gland cell subtypes. One paralog of the *atoh8* gene family is also expressed specifically in mucin subtypes *mucin.3* and *mucin.medusa*.
- <br> <br> <br> <br>
- ## **Figure S6: Myc gene tree**
- ```{r}
- myc <- png::readPNG("myc.png")
- myc.hydra<- png::readPNG("HydraMyc.png")
- p6A <- ggplot() +
- annotation_custom(
- grid::rasterGrob(myc, interpolate = TRUE),
- xmin = -Inf, xmax = Inf,
- ymin = -Inf, ymax = Inf
- ) +
- theme_void()
- p6B <- ggplot() +
- annotation_custom(
- grid::rasterGrob(myc.hydra, interpolate = TRUE),
- xmin = -Inf, xmax = Inf,
- ymin = -Inf, ymax = Inf
- ) +
- theme_void()
- ```
- ```{r}
- (p6A | p6B) +
- plot_annotation(tag_levels = "A")&
- theme(
- plot.tag = element_text(face = "bold")
- )
- ```
- **Figure S6: Cnidarian expansion of myc-family members. A**) Maximum likelihood tree; *Aurelia* is indicated in blue, *Nematostella* in salmon, other cnidarians in black and bilaterian orthologs in grey. Expression within the two shared cell type states (early and mature) as indicated in Figure 3 are plotted. Internal nodes indicate bootstrap values. Ac: *Aurelia coerulea*; Bf: *Branchiostoma floridae*; Ce: *Caenorhabditis elegans*; Cx: *Cassiopea xamachana*; Ed: *Exaiptasia diaphana*; Hs: *Homo sapiens*; Hv: *Hydra vulgaris*; Hy: *Hydractinia symbiolongicarpus*; Mg: *Magallana gigas*; Nv: *Nematostella vectensis*; Of: *Owenia fusiformis*; Re: *Rhopilema esculentum*; Sm: *Sanderia malayensis*; Sp: *Stylophora pistillata* ; Tc: *Tripedalia cystophora* **B**) Expression of included gene models on the *Hydra vulgaris* dataset (from [*https://research.nhgri.nih.gov/HydraAEP/SingleCellBrowser/*](https://research.nhgri.nih.gov/HydraAEP/SingleCellBrowser/){.uri}). <br> <br> <br> <br>
- ### **Figure S7: Neuron GO terms**
- ```{r fig.height=24}
- load(file='topGO.neurons.RData')
- # generate the source data:
- FS7<- do.call(cbind, lapply(topGO.IDs, slot, "data"))
- #xlsx::write.xlsx(FS7,'S4_raw.xlsx',sheetName='FigS7',col.names = T,row.names = T,append=T)
- plots=as.list(topGO.IDs)
- # plots = c(extra.element,plots)-#add something else to the empty spot but in first position...
- plots <- lapply(plots, function(p)
- p + theme(
- axis.title = element_blank(),
- axis.text = element_text(size = 8)
- )
- )
- combined <- wrap_plots(rev(plots), nrow = 8, ncol = 3)
- combined+
- plot_annotation(tag_levels = "A")&
- theme(
- plot.tag = element_text(face = "bold")
- )
- ```
- **Figure S7: Over-represented biological processes in differential gene lists (topGO)**. Each set of up-regulated genes from all neuroglandular subtypes was evaluated for over-represented biological processes with the topGO package. Full gene lists are available in supplementary data S1.8. <br> <br> <br> <br>
- ### **Figure S8: ATOH8 family genes**
- ```{r fig.width=12, fig.height=14}
- atoh8= c('atoh8a','atoh8b','atoh8c','atoh8d')
- load(file='nem.neur.Robj')
- load('Genes.Nv2.RData')
- atoh8.nem=genes[match(c('NV2.6610','NV2.5283','NV2.11608'),genes$geneID),]
- rownames(atoh8.nem) = c('atoh8a','atoh8c','atoh8d')
- nem.neur.reduced=subset(nem.neur,idents=levels(nem.neur)[c(2:4,6:10,13:21,23,39:46)])
- data.ac<-SetIdent(Ac.Alldata,value='ID.separate')
- p <-DotPlot(Ac.Alldata,'RNA', features=c(atoh8),scale.by='size' ,dot.min = 0.01, col.min = 0,cols = c('lightgrey','black'))+RotatedAxis()+ labs(title='Aurelia all data',subtitle = 'atoh8-like')+theme(legend.position = 'bottom',legend.text = (element_text(size=8)),panel.grid = element_line(color='grey90',linewidth = 0.2))+coord_flip()
- p.a<-DotPlot(data.ac,'RNA', features=c(atoh8),scale.by='size' ,dot.min = 0.01, col.min = 0, idents=levels(data.ac)[c(20:42)],cols = c('lightgrey','steelblue'))+RotatedAxis()+ labs(title='Aurelia all neurons',subtitle = 'atoh8-like')+theme(legend.position = 'bottom',legend.text = (element_text(size=8)),panel.grid = element_line('black',linewidth = 0.1))+coord_flip()
- p.n<-DotPlot(nem.neur.reduced,'RNA', features=atoh8.nem$gene_short_name,scale.by='size' ,dot.min = 0.01,group.by = 'IDs', col.min = 0,cols = c('lightgrey','red'))+RotatedAxis() + labs(title='Nematostella all neurons',subtitle = 'atoh8-like')+theme(legend.position = 'bottom',legend.text = (element_text(size=8)),panel.grid = element_line(color='grey90',linewidth = 0.2))+coord_flip()+ scale_x_discrete(labels = rownames(atoh8.nem))
- #xlsx::write.xlsx(p@data,'S4_raw.xlsx',sheetName='FigS8A',col.names = T,row.names = T,append=T)
- #xlsx::write.xlsx(p.a@data,'S4_raw.xlsx',sheetName='FigS8B',col.names = T,row.names = T,append=T)
- #xlsx::write.xlsx(p.n@data,'S4_raw.xlsx',sheetName='FigS8C',col.names = T,row.names = T,append=T)
- print(p / p.a / p.n +
- plot_annotation(tag_levels = "A"))
- ```
- ```{r fig.width=12}
- p.h<- png::readPNG("hy.neuro.atoh8.png")
- pD <- ggplot() +
- annotation_custom(
- grid::rasterGrob(p.h, interpolate = TRUE),
- xmin = -Inf, xmax = Inf,
- ymin = -Inf, ymax = Inf
- ) +
- theme_void()+labs(title = 'Hydra all neurons',subtitle='https://cejuliano.shinyapps.io/HydraAtlas/',)+theme(plot.title = element_text(face = "bold"))
- img <- png::readPNG("atoh8.png")
- pA <- ggplot() +
- annotation_custom(
- grid::rasterGrob(img, interpolate = TRUE),
- xmin = -Inf, xmax = Inf,
- ymin = -Inf, ymax = Inf
- ) +
- theme_void()
- # print(pA+
- # plot_annotation(tag_levels = list("E")))
- (pD | pA) +
- plot_annotation(tag_levels = list(c("D","E")))&
- theme(
- plot.tag = element_text(face = "bold")
- )
- ```
- **Figure. S8**: Expression of atoh8 family transcription factors. **A**) Expression profiles across all identified cell type families of each member of the atoh8 family. **B:D**) Expression profiles of atoh8 family genes within the neural clusters of *Aurelia* (B), *Nematostella* (C), and *Hydra* (D) highlights both broad expression profiles, as well as cell type specific expression. Expression of included gene models on the *Hydra vulgaris* dataset (from [*https://research.nhgri.nih.gov/HydraAEP/SingleCellBrowser/*](https://research.nhgri.nih.gov/HydraAEP/SingleCellBrowser/){.uri}). G023106 is the hydra *pou4* ortholog indicating class n2-type neurons, and G017257 is the *ins* ortholog, indicating class n1-type neurons. **E**) Gene family tree with *Nematostella* (salmon), *Aurelia* (blue), *Hydra* (blue-green) and human (red) paralogs highlighted. Internal nodes indicate bootstrap values. Ac: *Aurelia coerulea*; Bf: *Branchiostoma floridae*; Ce: *Caenorhabditis elegans*; Cx: *Cassiopea xamachana*; Ed: *Exaiptasia diaphana*; Hs: *Homo sapiens*; Hv: *Hydra vulgaris*; Hy: *Hydractinia symbiolongicarpus*; Mg: *Magallana gigas*; Nv: *Nematostella vectensis*; Of: *Owenia fusiformis*; Re: *Rhopilema esculentum*; Sm: *Sanderia malayensis*; Sp: *Stylophora pistillata* ; Tc: *Tripedalia cystophora* <br> <br> <br> <br>
- ### **Figure S9: Muscle Transcription Factors**
- ```{r fig.height=4}
- load(file='all.idents.markers.RData')
- FS9<-DotPlot(Ac.Alldata,features=all.markers.TF.allidents$gene[c(7:12)],cols=c('grey','red'),col.min = 0, dot.min = 0.1,group.by = "ID.separate")+
- RotatedAxis() +theme(legend.position = 'bottom',legend.title = element_text(size=8),legend.text = element_text(size=8),panel.grid = element_line(color='grey90',linewidth = 0.2))+coord_flip()
- #xlsx::write.xlsx(FS9@data,'S4_raw.xlsx',sheetName='FigS9',col.names = T,row.names = T,append=T)
- FS9
- ```
- **Figure S9:** **Muscle-specific transcription factors.** Dotplot of expression of the top differentially expressed gene models with DNA binding sites specific to the striated muscle subset. Full gene list is available in supplementary Data S1.4b.
Supplement.RMD at commit a474383, no license · at the source
Overview
- Department of Neurosciences and Developmental Biology, Faculty of Life Sciences, University of Vienna, Vienna, Austria
- Institute of Molecular Biotechnology, Vienna, Austria
- UCSC Cellbrowser, University of California, Santa Cruz, California, United States of America
- Institute of Cellular and Organismic Biology (ICOB), Academia Sinica, Taipei, Taiwan
- Marine Genomics Unit, Okinawa Institute of Science and Technology (OIST), Onna, Okinawa, Japan
- Research platform Single Cell Regulation of Stem Cells, University of Vienna, Vienna, Austria
Abstract
The life cycle of most medusozoan cnidarians is marked by the metagenesis from the asexually reproducing sessile polyp and the sexually reproducing motile medusa. At present, it is unknown to what extent this drastic morphological transformation is accompanied by molecular changes in the cell type composition. Here, we provide a single-cell transcriptome atlas of the cosmopolitan scyphozoan Aurelia coerulea focusing on changes in individual cell states during the transition from polyp to medusa. Notably, this transition is marked by an increase in cell type diversity, including an expansion of neural subtypes and the appearance of striated muscles. We find that two families of neuronal lineages are specified by homologous transcription factors in the sea anemone Nematostella vectensis and A. coerulea, suggesting an origin in the common ancestor of medusozoans and anthozoans about 500 Myr ago. Our analysis suggests that gene duplications might be drivers for the increase of cellular complexity during the evolution of cnidarian neuroglandular lineages and highlights the close relationship of neurons and muscles. One key medusozoan-specific cell type is the striated muscle in the subumbrella. Evaluating muscle types by fiber anatomy and gene expression validation of their individual molecular profiles made it possible for the first time to investigate transcriptome differences between smooth and striated muscles. Although smooth and striated muscles are phenotypically different, both have a similar regulation of the contractile complex, reminiscent to the regulation of smooth muscles in bilaterians. This contrasts with bilaterian striated muscles, where the regulation of muscle contraction involves Ca2+ binding troponins and their interaction with Tropomyosin. These data suggest that smooth muscle contraction regulation is ancestral and the use of troponins in striated muscles only evolved in bilaterians.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repositories
Its files are read in the Code ↔ Paper reader above, with 16 matches between paragraphs and lines of code.
technau/AureliaAtlas
a474383e5b32e866cae39480e2dd22d96de0250b, 2 July 2026Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
7 files
- Linketal.Ac.Nv.OMA_REVIS
ED.R , R, 1,297 lines, 5 matches - Linketal.Ac.analyse.alld
ata_REVISED.R , R, 585 lines, 1 match - Linketal.Ac.analyse.subs
ets_REVISED.R , R, 986 lines - Linketal.Ac.generate.dat
a_REVISED.R , R, 147 lines - Linketal.Ac.generate.fig
ures_REVISED.R , R, 760 lines, 5 matches - Supplement.RMD, R, 397 lines, 5 matches
- README.md, Text, 17 lines
Zenodo 21132158
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
- 27 September 2026: the link answers (HTTP 200)
7 files
- Linketal.Ac.Nv.OMA_REVIS
ED.R , R, 1,297 lines - Linketal.Ac.analyse.alld
ata_REVISED.R , R, 585 lines - Linketal.Ac.analyse.subs
ets_REVISED.R , R, 986 lines - Linketal.Ac.generate.dat
a_REVISED.R , R, 147 lines - Linketal.Ac.generate.fig
ures_REVISED.R , R, 760 lines - Supplement.RMD, R, 397 lines
- README.md, Text, 17 lines
The paper's code and data availability statement is in the Data section.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 12 scripts, each with its path and the digest of its content;
- 16 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
Data links
- ncbi.nlm.nih.gov/
geo , NCBI; found in “Data Availability”
Data Availability
Raw sequence data are deposited in the GEO database (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, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 11 authors, 8 MeSH terms, 2 funders, 91 references.
Cite
This paper
Link, O., Jahnel, S. M., Janicek, K., Guerguerian, D., Kraus, J., Montenegro, J. D., Zimmermann, B., Wick, B., Khalturin, K., Cole, A. G., & Technau, U. (2026). A single-cell transcriptomic atlas reveals the emergence of medusa-specific cell states in the scyphozoan Aurelia coerulea. PLoS biology, 24(8), e3003931. https://
BibTeX
@article{link2026single,
author = {Link, Oliver and Jahnel, Stefan M and Janicek, Kristin and Guerguerian, Daniel and Kraus, Johanna and Montenegro, Juan D and Zimmermann, Bob and Wick, Brittney and Khalturin, Konstantin and Cole, Alison G and Technau, Ulrich},
title = {{A single-cell transcriptomic atlas reveals the emergence of medusa-specific cell states in the scyphozoan Aurelia coerulea}},
journal = {PLoS biology},
year = {2026},
month = aug,
volume = {24},
number = {8},
pages = {e3003931},
publisher = {PLOS},
issn = {1544-9173},
doi = {10.1371/
url = {https://
pmid = {42599956},
pmcid = {PMC13485128}
}
RIS
TY - JOUR
AU - Link, Oliver
AU - Jahnel, Stefan M
AU - Janicek, Kristin
AU - Guerguerian, Daniel
AU - Kraus, Johanna
AU - Montenegro, Juan D
AU - Zimmermann, Bob
AU - Wick, Brittney
AU - Khalturin, Konstantin
AU - Cole, Alison G
AU - Technau, Ulrich
TI - A single-cell transcriptomic atlas reveals the emergence of medusa-specific cell states in the scyphozoan Aurelia coerulea
T2 - PLoS biology
J2 - PLoS Biol
PY - 2026
DA - 2026/
VL - 24
IS - 8
SP - e3003931
SN - 1544-9173
PB - PLOS
DO - 10.1371/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1371/
"type": "article-journal",
"title": "A single-cell transcriptomic atlas reveals the emergence of medusa-specific cell states in the scyphozoan Aurelia coerulea",
"container-title": "PLoS biology",
"author": [
{
"family": "Link",
"given": "Oliver"
},
{
"family": "Jahnel",
"given": "Stefan M"
},
{
"family": "Janicek",
"given": "Kristin"
},
{
"family": "Guerguerian",
"given": "Daniel"
},
{
"family": "Kraus",
"given": "Johanna"
},
{
"family": "Montenegro",
"given": "Juan D"
},
{
"family": "Zimmermann",
"given": "Bob"
},
{
"family": "Wick",
"given": "Brittney"
},
{
"family": "Khalturin",
"given": "Konstantin"
},
{
"family": "Cole",
"given": "Alison G"
},
{
"family": "Technau",
"given": "Ulrich"
}
],
"container-title-short":
"volume": "24",
"issue": "8",
"page": "e3003931",
"DOI": "10.1371/
"PMID": "42599956",
"PMCID": "PMC13485128",
"ISSN": "1544-9173",
"publisher": "PLOS",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
8,
14
]
]
}
}
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.1371/journal.pbio.3003803 [code]
- The anti-neural role of BMP signaling is a consequence of its ancestral function in dorsoventral patterning.Journal: PLoS biologyIn common: Seurat, ggplot2, tidyverse, 12 references, author Juan D Montenegro
- [2] doi:10.1093/molbev/msag128 [code]
- Single-cell analyses of tissue regeneration in two true jellyfish.Journal: Molecular biology and evolutionIn common: genetics / omics, cellular / molecular, 15 references
- [3] doi:10.1038/s41586-026-10629-x [code]
- Whole-genome duplication shaped cell-type evolution in the vertebrate brain.Journal: NatureIn common: Harmony, circlize, pheatmap, 4 other tools, genetics / omics, cellular / molecular, 3 references
- [4] doi:10.1016/j.xcrm.2026.102766 [code]
- A longitudinal single-cell and spatial multiomic atlas of pediatric high-grade glioma.Journal: Cell reports. MedicineIn common: Harmony, circlize, pheatmap, 4 other tools, genetics / omics, cellular / molecular, 2 references
- [5] 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 reportsIn common: Harmony, circlize, pheatmap, 4 other tools, genetics / omics, cellular / molecular, 2 references
- [6] 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 neuroscienceIn common: Harmony, circlize, pheatmap, 4 other tools, cellular / molecular, 2 references
- [7] doi:10.1038/s41467-026-75225-z [code]
- A single-cell atlas of alternative wing development in two hemipteran species.Journal: Nature communicationsIn common: Harmony, circlize, pheatmap, 3 other tools, 3 references
- [8] doi:10.1038/s41597-026-07185-4 [code]
- A multi-center cross-platform single-cell multimodal atlas of the mouse cerebral cortex.Journal: Scientific dataIn common: Harmony, circlize, Seurat, 3 other tools, genetics / omics, 3 references
- [9] doi:10.1038/s41514-026-00397-3 [code]
- Nasal administration of Protollin enhances monocyte phagocytosis and decreases CD8&
lt;sup& gt;+& lt;/ sup& gt; T cell cytotoxicity in subjects with early Alzheimer's disease: a Phase 1 clinical trial. Journal: npj agingIn common: Harmony, circlize, pheatmap, 4 other tools, 2 references - [10] doi:10.1038/s41380-026-03629-w [code]
- Maternal fasting during early gestation induces epigenetic alterations and schizophrenia-related phenotypes.Journal: Molecular psychiatryIn common: Harmony, circlize, pheatmap, 4 other tools, genetics / omics, 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: 2 repositories of the authors' code, each at its verified commit and with its license, 12 scripts, and 16 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:46df969a35aaa62a…
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.
