Defective EV-mediated transport of SHH alters neural fate specification in EPM1 epilepsy.
The 7 matches
- [1] § MATERIALS AND METHODS › scRNA-seq sample preparation › scRNA-seq data analysis ↔ vCO_02_normalization.ipynb, lines 80–90 · score 0.73 · preliminary clustering, log1p, PCA, tl, pp, neighborhood
- [2] § MATERIALS AND METHODS › scRNA-seq sample preparation › scRNA-seq data analysis ↔ vCO_06_annotation.ipynb, lines 339–346 · score 0.68 · preliminary clustering, log1p, PCA, tl, pp, neighborhood
- [3] § RESULTS › EPM1 ventral progenitors and neurons change cell identity ↔ vCO_08_nomenclature_post_integration-PT2.ipynb, lines 166–170 · score 0.62 · THSD7A, CACNA2D1, NEUROG2, DLX2, EOMES, NEUROD1
- [4] § RESULTS › EPM1 ventral progenitors and neurons change cell identity ↔ vCO_08_nomenclature_post_integration-PT2.ipynb, lines 172–191 · score 0.62 · Neurons subclusters, THSD7A, CACNA2D1, NEUROG2, DLX2, NEUROD1
- [5] § MATERIALS AND METHODS › scRNA-seq sample preparation › scRNA-seq data analysis ↔ vCO_01_quality_control.ipynb, lines 220–230 · score 0.61 · scDblFinder, SingleCellExperiment, seed, doublets, cells
- [6] § RESULTS › EPM1 ventral progenitors and neurons change cell identity ↔ vCO_08_nomenclature_post_integration-PT2.ipynb, lines 295–297 · score 0.54 · Progenitor subclusters, vCTRL, vEPM1, UMAP, clustered
- [7] § MATERIALS AND METHODS › scRNA-seq sample preparation › scRNA-seq data analysis ↔ vCO_01_quality_control.ipynb, lines 110–119 · score 0.52 · mitochondrial gene, low quality, mt
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
Jupyter notebook · 507 lines · 17 KB · MIT · 3 matches
- # %%
- #I would like to dissect better the Neurons cluster..
- # %%
- adata = sc.read_h5ad('02_Results/CSTB_annotated_09.h5ad')
- # %%
- adata
- # %%
- sc.pl.umap(adata, color=['DSCAM','type'], show=False,vmax=0.5,frameon=False, legend_loc='right margin', legend_fontsize=12, wspace=0.1)
- # %%
- adata.obs['annotated'].value_counts()
- # %%
- #Subcluster
- adata_MatNeurons = adata[adata.obs['annotated']=='Neurons'].copy()
- # %%
- sc.tl.leiden(adata_MatNeurons, resolution=0.2, restrict_to = ['annotated',['Neurons']], key_added='leiden_R1')
- # %%
- from pylab import rcParams
- sc.pl.umap(adata_MatNeurons, color='leiden_R1', legend_loc='right margin' , legend_fontsize = 8, frameon=False)
- # %%
- # Define your categories of interest
- neurons_categories = ['Mature Neurons,0', 'Neurons,1', 'Neurons,2']
- # Subset the adata to only include cells where 'annotated' is one of the progenitor categories
- adata_Neuro_clusters = adata_MatNeurons[adata_MatNeurons.obs['leiden_R1'].isin(neurons_categories)].copy()
- # %%
- num_tot_cells = adata_Neuro_clusters.obs.groupby(['sample']).count()
- num_tot_cells = dict(zip(num_tot_cells.index, num_tot_cells.scDblFinder_class))
- num_tot_cells
- # %%
- cell_type_counts = adata_Neuro_clusters.obs.groupby(['type','sample', 'leiden_R1']).count()
- cell_type_counts = cell_type_counts[cell_type_counts.sum(axis = 1) > 0].reset_index()
- cell_type_counts = cell_type_counts[cell_type_counts.columns[0:4]]
- cell_type_counts
- # %%
- cell_type_counts['total_cells'] = cell_type_counts['sample'].map(num_tot_cells).astype(int)
- cell_type_counts['frequency'] = cell_type_counts['experiment'] / cell_type_counts['total_cells']
- # Now, you can print the updated cell_type_counts DataFrame
- print(cell_type_counts)
- # %%
- import matplotlib.pyplot as plt
- import seaborn as sns
- plt.figure(figsize = (10,4))
- # Create a custom palette
- palette = {'vCTRL':'#6cb052','vEPM1':'#9652b0'}
- ax = sns.boxplot(data = cell_type_counts, x = 'leiden_R1', y = 'frequency', hue = 'type', palette=palette)
- plt.xticks(rotation = 35, rotation_mode = 'anchor', ha = 'right')
- # Save the figure as a PDF file
- plt.savefig('figures/FIG2_H.pdf', format='pdf', bbox_inches='tight')
- plt.show()
- # %%
- # Convert columns to string type and create a new column merging without underscore
- adata_Neuro_clusters.obs['leiden_R1'] = adata_Neuro_clusters.obs['leiden_R1'].astype(str) + ' ' + adata_Neuro_clusters.obs['type'].astype(str)
- # %%
- sc.pl.umap(adata_Neuro_clusters, color='leiden_R1', legend_loc='right margin' , legend_fontsize = 12, frameon=False,title="Neurons Subclusters",
- palette = { 'Neurons,0 vCTRL': '#00979f', # Original CTRL color
- 'Neurons,0 vEPM1': '#66b2b4', # Lightened shade for Neurons,0
- 'Neurons,1 vCTRL': '#00479f', # Original CTRL color
- 'Neurons,1 vEPM1': '#4da6ff', # Lightened shade for Neurons,1
- 'Neurons,2 vCTRL': '#007c9f', # Original CTRL color
- 'Neurons,2 vEPM1': '#33b5cc', # Lightened shade for Neurons,2
- },
- save="FIG2_G.pdf" )
- # %%
- sc.pl.umap(adata_Neuro_clusters,
- color='THSD7A',
- legend_loc='right margin',
- legend_fontsize = 12,
- frameon=False,
- save="FIG2_I_1.pdf")
- # %%
- sc.pl.umap(adata_Neuro_clusters,
- color='DLX1',
- legend_loc='right margin',
- legend_fontsize = 12,
- frameon=False,
- save="FIG2_I_2.pdf")
- # %%
- sc.pl.umap(adata_Neuro_clusters,
- color='TBR1',
- legend_loc='right margin',
- legend_fontsize = 12,
- frameon=False,
- save="FIG2_I_3.pdf")
- # %%
- sc.pl.umap(adata_Neuro_clusters, color='type', legend_loc='right margin' , legend_fontsize = 12, frameon=False,title="Neurons Subclusters - Genotype",
- palette={'vCTRL':'#6cb052','vEPM1':'#9652b0'}, save="Neurons_Subcluster_Genotype.pdf")
- # %%
- sc.pp.log1p(adata)
- sc.tl.rank_genes_groups(adata = adata_Neuro_clusters, groupby='leiden_R1', groups= ['Neurons,0','Neurons,1'],
- reference='Neurons,1', rankby_abs=True)
- # %%
- sc.pp.log1p(adata)
- sc.tl.rank_genes_groups(adata = adata_Neuro_clusters, groupby='leiden_R1', groups= ['Neurons,0','Neurons,2'],
- reference='Neurons,2', rankby_abs=True)
- # %%
- rcParams['figure.figsize']=(10,5)
- sc.pl.rank_genes_groups(adata_Neuro_clusters, size=10, n_genes=100)
- # %%
- adata_Neuro_clusters_0vs1=adata_Neuro_clusters[adata_Neuro_clusters.obs["leiden_R1"] != "Neurons,2"]
- # %%
- sc.pl.umap(
- adata_Neuro_clusters,
- color=['THSD7A', 'DLX1', 'TBR1'],
- show=False,
- frameon=False,
- legend_loc='right margin',
- legend_fontsize=12,
- wspace=0.1,
- ncols=3, # This will create 3 plots per row
- save="FIG2_I"
- )
- # %%
- sc.pl.umap(
- adata_Neuro_clusters,
- color=['CACNA2D1', 'NEUROD1',
- 'DLX1', 'GAD1',
- 'NEUROG2','EOMES'],
- show=False,
- frameon=False,
- legend_loc='right margin',
- legend_fontsize=12,
- wspace=0.1,
- ncols=2, # This will create 3 plots per row
- save="supplFIG2_F.pdf"
- )
- # %%
- sc.set_figure_params(dpi=150, dpi_save=300, fontsize=12)
- markers = ['NEUROD1','THSD7A', 'CACNA2D1','DLX1', 'DLX2', 'GAD1', 'NEUROG2', 'EOMES', 'TBR1']
- sc.pl.heatmap(adata_Neuro_clusters, markers, groupby='leiden_R1',swap_axes=True,
- figsize=[10,5],save="FIG2_J.pdf")
- # %%
- adata_Neuro_clusters_0vs1=adata_Neuro_clusters[adata_Neuro_clusters.obs["leiden_R1"] != "Neurons,2"]
- #rcParams['figure.figsize']=(9,5)
- df = sc.get.obs_df(adata_Neuro_clusters_0vs1, ['DLX1','DLX2', 'DLX5', 'THSD7A','CACNA2D1','NEUROD1','NEUROG2','leiden_R1'])
- df = df.set_index('leiden_R1').stack().reset_index()
- df.columns = ['leiden_R1', 'gene', 'value']
- import seaborn as sns
- g=sns.violinplot(data=df, x='gene', y='value', hue="leiden_R1", gap=.5,
- split=True, inner="quart", linewidth=.8, palette={'Neurons,0':'#00979f','Neurons,1':'#00479f'})
- g.set_xlabel("Genes")
- g.set_ylabel("Expression Levels")
- plt.setp(g.get_xticklabels(), rotation=45)
- # Put the legend out of the figure
- plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
- plt.savefig('figures/Neurons Subclusters splitplot.pdf', bbox_inches='tight')
- # %%
- sc.pl.rank_genes_groups_violin(adata_Neuro_clusters, groups='Neurons,0', n_genes=20)
- # %%
- #Same for Progenitors
- # %%
- #Subcluster
- #a12006
- adata_Prog = adata[adata.obs['annotated']=='Progenitors'].copy()
- sc.pl.umap(adata_Prog, color='annotated', legend_loc='right margin' , legend_fontsize = 8, frameon=False)
- # %%
- sc.pl.umap(adata_Prog,
- color=['GSX2','ASCL1','PAX6','MEIS2'],
- legend_loc='right margin',
- legend_fontsize = 12,
- frameon=False)
- # %%
- adata.obs
- # %%
- print(type(adata_Prog.obs['type']))
- # %%
- genes = ['NKX2-1', 'SIX3', 'PAX6', 'GSX2','ASCL1']
- sc.pl.dotplot(adata_Prog, genes, groupby='type', dendrogram=True)
- # %%
- sc.tl.leiden(adata_Prog, resolution=0.4, restrict_to = ['annotated',['Progenitors']], key_added='leiden_Prog')
- # %%
- from pylab import rcParams
- rcParams['figure.figsize']=(5,5)
- sc.pl.umap(adata_Prog, color='leiden_Prog', legend_loc='right margin' , legend_fontsize = 8, frameon=False)
- # %%
- cluster_sizes = adata_Prog.obs['leiden_Prog'].value_counts()
- print(cluster_sizes)
- # %%
- # Define your categories of interest
- progenitor_categories = ['Progenitors,0', 'Progenitors,1', 'Progenitors,2', 'Progenitors,3', 'Progenitors,4']
- # Subset the adata to only include cells where 'annotated' is one of the progenitor categories
- adata_Prog_clusters = adata_Prog[adata_Prog.obs['leiden_Prog'].isin(progenitor_categories)].copy()
- # %%
- adata_Prog_clusters
- # %%
- num_tot_cells = adata_Prog_clusters.obs.groupby(['sample']).count()
- num_tot_cells = dict(zip(num_tot_cells.index, num_tot_cells.scDblFinder_class))
- num_tot_cells
- # %%
- cell_type_counts = adata_Prog_clusters.obs.groupby(['type','sample', 'leiden_Prog']).count()
- cell_type_counts = cell_type_counts[cell_type_counts.sum(axis = 1) > 0].reset_index()
- cell_type_counts = cell_type_counts[cell_type_counts.columns[0:4]]
- cell_type_counts
- # %%
- cell_type_counts['total_cells'] = cell_type_counts['sample'].map(num_tot_cells).astype(int)
- cell_type_counts['frequency'] = cell_type_counts['experiment'] / cell_type_counts['total_cells']
- # Now, you can print the updated cell_type_counts DataFrame
- print(cell_type_counts)
- # %%
- import matplotlib.pyplot as plt
- import seaborn as sns
- plt.figure(figsize=(10, 4))
- # Create a custom palette
- palette = {'vCTRL': '#6cb052', 'vEPM1': '#9652b0'}
- # Create the boxplot
- ax = sns.boxplot(data=cell_type_counts, x='leiden_Prog', y='frequency', hue='type', palette=palette)
- # Set x-axis title with extra padding
- plt.xlabel("Progenitors Subclusters", labelpad=15) # Adjust 'labelpad' for spacing
- # Rotate x-axis labels
- plt.xticks(rotation=35, rotation_mode='anchor', ha='right')
- # Save the figure as a PDF file
- plt.savefig('figures/FIG2_C.pdf', format='pdf', bbox_inches='tight')
- plt.show()
- # %%
- sc.pl.umap(adata_Prog_clusters, color='type', legend_loc='right margin' , legend_fontsize = 8, frameon=False,title="Progenitors Subclusters - Genotype",
- palette={'vCTRL':'#6cb052','vEPM1':'#9652b0'}, save="Progenitors_Subcluster_Genotype.pdf")
- # %%
- sc.pl.umap(adata_Prog_clusters, color='leiden_Prog', legend_loc='right margin' , legend_fontsize = 8, frameon=False,title="Progenitors Subcluster",
- palette={'Progenitors,0':'#eb0954','Progenitors,1':'#eb2f09','Progenitors,2':'#eba009','Progenitors,3':'#8e358b','Progenitors,4':'#d40062'}, save="Progenitors Subclusters.pdf")
- # %%
- sc.pl.umap(adata_Prog_clusters, color=['MEIS2','NKX2-1','PAX6'], show=False, frameon=False, legend_loc='right margin', legend_fontsize=12, wspace=0.5, save="FIG2_D.pdf")
- # %%
- # Convert columns to string type and create a new column merging without underscore
- adata_Prog_clusters.obs['leiden_type'] = adata_Prog_clusters.obs['leiden_Prog'].astype(str) + ' ' + adata_Prog_clusters.obs['type'].astype(str)
- # %%
- sc.pl.umap(adata_Prog_clusters, color='leiden_type', legend_loc='right margin' , legend_fontsize = 12, frameon=False,title="Progenitors Subclusters",
- palette = {
- 'Progenitors,0 vCTRL': '#eb0954', # Original color with slight modification
- 'Progenitors,0 vEPM1': '#ff8b94', # Lightened shade of original color
- 'Progenitors,1 vCTRL': '#eb2f09', # Original color with slight modification
- 'Progenitors,1 vEPM1': '#ff7e3b', # Lightened shade of original color
- 'Progenitors,2 vCTRL': '#eba009', # Original color with slight modification
- 'Progenitors,2 vEPM1': '#ffba33', # Lightened shade of original color
- 'Progenitors,3 vCTRL': '#8e358b', # Original color with slight modification
- 'Progenitors,3 vEPM1': '#ab6c9a', # Lightened shade of original color
- 'Progenitors,4 vCTRL': '#d40062', # Original color with slight modification
- 'Progenitors,4 vEPM1': '#f46b94', # Lightened shade of original color
- # Add more colors as needed
- },
- save="FIG2_B.pdf")
- # %%
- sc.pl.umap(adata_Prog_clusters,
- color='MEIS2',
- legend_loc='right margin',
- legend_fontsize = 12,
- frameon=False,
- save="FIG2_D_1")
- # %%
- sc.pl.umap(adata_Prog_clusters,
- color='PAX6',
- legend_loc='right margin',
- legend_fontsize = 12,
- frameon=False,
- save="FIG2_D_2")
- # %%
- sc.pl.umap(adata_Prog_clusters,
- color='NKX2-1',
- legend_loc='right margin',
- legend_fontsize = 12,
- frameon=False,
- save="FIG2_D_3")
- # %%
- sc.pl.umap(adata_Prog_clusters,
- color='SIX3',
- legend_loc='right margin',
- legend_fontsize = 12,
- frameon=False,
- save="FIG2_D_4")
- # %%
- sc.set_figure_params(dpi=300, dpi_save=300, fontsize=12)
- markers = ['MEIS2','PAX6','NKX2-1','SIX3']
- # Plot the heatmap using the new column with custom color mapping
- sc.pl.heatmap(
- adata_Prog_clusters,
- markers,
- figsize=[10,5],
- groupby='leiden_type', # Use the new combined column
- swap_axes=True,
- save="FIG2_E.pdf"
- )
- # %%
- adata_Prog_clusters_0vs2 = adata_Prog_clusters[~adata_Prog_clusters.obs["leiden_Prog"].isin(["Progenitors,1", "Progenitors,3", "Progenitors,4"])]
- adata_Prog_clusters_0vs2
- # %%
- rcParams['figure.figsize']=(9,5)
- df = sc.get.obs_df(adata_Prog_clusters_0vs2, ['NKX2-1','SIX3', 'PAX6', 'SOX2','leiden_Prog'])
- df = df.set_index('leiden_Prog').stack().reset_index()
- df.columns = ['leiden_Prog', 'gene', 'value']
- import seaborn as sns
- g=sns.violinplot(data=df, x='gene', y='value', hue="leiden_Prog", gap=.5,
- split=True, inner="quart", linewidth=.8, palette={'Progenitors,0':'#eb0954','Progenitors,2':'#eba009'})
- g.set_xlabel("Genes")
- g.set_ylabel("Expression Levels")
- plt.setp(g.get_xticklabels(), rotation=45)
- # Put the legend out of the figure
- plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
- plt.savefig('figures/FIG2_C.pdf', bbox_inches='tight')
- # %%
- sc.pp.log1p(adata_Prog_clusters)
- sc.tl.rank_genes_groups(adata = adata_Prog_clusters, groupby='leiden_Prog', groups= ['Progenitors,0','Progenitors,2'],
- reference='Progenitors,2', rankby_abs=True)
- # %%
- rcParams['figure.figsize']=(5,5)
- sc.pl.rank_genes_groups(adata_Prog_clusters, size=10, n_genes=50)
- # %%
- sc.pl.rank_genes_groups_violin(adata_Prog_clusters, n_genes=15)
- # %%
- sc.pl.umap(adata_Prog_clusters, color=['MEIS2','PAX6','NKX2-1','FOXG1'], show=False, frameon=False, legend_loc='right margin', legend_fontsize=12, wspace=0.1)
- # %%
- sc.pl.umap(adata, color=['MEIS2','PAX6','NKX2-1','FOXG1'], show=False, frameon=False, legend_loc='right margin', legend_fontsize=12, wspace=0.1)
- # %%
- ax = sc.pl.umap(adata, size=25, show=False)
- sc.pl.umap(
- adata[(adata.obs["annotated"] == "Progenitors") | (adata.obs["annotated"] == "Newborn Neurons")| (adata.obs["annotated"] == "Progenitors/NKX2-1+")|
- (adata.obs["annotated"] == "Neurons")|(adata.obs["annotated"] == "Progenitors/MEIS2+")| (adata.obs["annotated"] == "Striatum Progenitors")|
- (adata.obs["annotated"] == "Striatum Neurons")],
- size=25,
- show=False,
- frameon=False,
- color=['CACNA2D1'],
- ax=ax
- )
- # Adjust figure size and layout
- fig = plt.gcf()
- fig.set_size_inches(8, 6) # Adjust the size as needed
- fig.tight_layout() # Adjust layout
- # Save the figure
- plt.savefig('03_Figures/Fig2_B_2.png') # Adjust the filename and dpi as needed
- plt.show() # Optional: Show the plot if you want to display it in the notebook
- # %%
- rcParams['figure.figsize']=(5,5)
- # %%
- sc.pl.umap(adata, color=['DLX1','DLX2','GAD1'], show=False, frameon=False, legend_loc='right margin', legend_fontsize=12, wspace=0.1, save="Inhibitory_Markers.pdf")
- # %%
- sc.pl.umap(adata, color=['NEUROD1','THSD7A','CACNA2D1'], show=False, frameon=False, legend_loc='right margin', legend_fontsize=12, wspace=0.1,save="Excitatory_Markers.pdf")
- # %%
- sc.pl.umap(adata, color=['NEUROG2','INSM1','TBR1'], show=False, frameon=False, legend_loc='right margin', legend_fontsize=12, wspace=0.1,save="Dorsal_Markers.pdf")
- # %%
- adata.obs['sample'].value_counts()
- # %%
- adata.write("02_Results/CSTB_annotated_09.h5ad")
- # %%
- adata = sc.read_h5ad('02_Results/CSTB_annotated_09.h5ad')
- # %%
- sc.pl.umap(adata, color=['type'], show=False, frameon=False, legend_loc='right margin', title="Genotype",
- legend_fontsize=12, save="Sfig2_A.pdf")
- # %%
- sc.pl.umap(adata, color=['SOX2'], show=False, frameon=False, legend_loc='right margin',
- legend_fontsize=12, save="Sfig2_B1.pdf")
- # %%
- sc.pl.umap(adata, color=['VIM'], show=False, frameon=False, legend_loc='right margin',
- vmax=0.8,
- legend_fontsize=12, save="Sfig2_B2.pdf")
- # %%
- sc.pl.umap(adata, color=['NES'], show=False, frameon=False, legend_loc='right margin',
- legend_fontsize=12, save="Sfig2_B3.pdf")
- # %%
- sc.pl.umap(adata_Prog_clusters, color=['type'], show=False, frameon=False, legend_loc='right margin', title="Progenitors Subclusters - Genotype",
- legend_fontsize=12, save="Sfig2_C.pdf")
- # %%
- sc.pl.umap(adata, color=['DCX'], show=False, frameon=False, legend_loc='right margin',
- legend_fontsize=12, save="Sfig2_E1.pdf")
- # %%
- sc.pl.umap(adata, color=['MAP2'], show=False, frameon=False, legend_loc='right margin',
- legend_fontsize=12, save="Sfig2_E2.pdf")
- # %%
- sc.pl.umap(adata_Neuro_clusters, color=['type'], show=False, frameon=False, legend_loc='right margin', title="Neurons Subclusters - Genotype",
- legend_fontsize=12, save="Sfig2_F.pdf")
- # %%
- sc.pl.umap(adata_Neuro_clusters, color=['CACNA2D1'], show=False, frameon=False, legend_loc='right margin',
- legend_fontsize=12, save="Sfig2_G1.pdf")
- sc.pl.umap(adata_Neuro_clusters, color=['NEUROD1'], show=False, frameon=False, legend_loc='right margin',
- legend_fontsize=12, save="Sfig2_G2.pdf")
- sc.pl.umap(adata_Neuro_clusters, color=['DLX2'], show=False, frameon=False, legend_loc='right margin',
- legend_fontsize=12, save="Sfig2_G3.pdf")
- sc.pl.umap(adata_Neuro_clusters, color=['GAD1'], show=False, frameon=False, legend_loc='right margin',
- legend_fontsize=12, save="Sfig2_G4.pdf")
- sc.pl.umap(adata_Neuro_clusters, color=['NEUROG2'], show=False, frameon=False, legend_loc='right margin',
- legend_fontsize=12, save="Sfig2_G5.pdf")
- sc.pl.umap(adata_Neuro_clusters, color=['EOMES'], show=False, frameon=False, legend_loc='right margin',
- legend_fontsize=12, save="Sfig2_G6.pdf")
vCO_08_nomenclature_post_integration-PT2.ipynb at commit 4c22f86, under MIT · at the source
Overview
- Physiological Genomics, Biomedical Center (BMC), LMU Medizin, LMU Munich, Munich, Germany
- Max Planck Institute of Psychiatry, Munich, Germany
- International Max Planck Research School for Translational Psychiatry, Max Planck Institute of Psychiatry, Munich, Germany
- Graduate School of Systemic Neurosciences (GSN), Ludwig-Maximilians-University, Munich, Germany
- Department of Biology, University of Naples Federico II, Naples, Italy
- Fondazione IRCCS Istituto Neurologico Carlo Besta, Milan, Italy
- Core Facility Bioimaging and Walter-Brendel-Centre of Experimental Medicine, Biomedical Center, Ludwig Maximilian University, Munich, Germany
- Division of Cardiovascular Physiology and Pathophysiology, Biomedical Center (BMC), LMU Medizin, LMU Munich, Munich, Germany
- Division of Molecular Biology, Biomedical Center (BMC), LMU Medizin, LMU Munich, Munich, Germany
- Department of Science and Technological Innovation, University of Piemonte Orientale, Alessandria, Italy
- Munich Cluster for Systems Neurology (SyNergy), Munich, Germany
Abstract
The extracellular milieu, including extracellular vesicles (EVs), plays a pivotal role in brain development. In this study, we sought to elucidate the pathogenesis of progressive myoclonus epilepsy type 1 (EPM1), a disease caused by mutations in the CSTB gene, using cerebral organoids (COs) derived from patient cells. The results demonstrate that EPM1 COs display increased electrophysiological activity and disrupted excitatory/
Reproduced under the paper's license (CC BY-NC), from the paper cited above.
Repositories
Its files are read in the Code ↔ Paper reader above, with 7 matches between paragraphs and lines of code.
coolbutuseless/ggpattern
14e1355d38f35566c21a23b76bf2417285beb9ac, 24 June 2026Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
96 files
- R/
a-geom-docs.R , R, 114 lines - R/
aaa-ggplot2-compat-plyr. , R, 34 linesR - R/
aaa-ggplot2-ggplot-globa , R, 57 linesl.R - R/
aaa-ggplot2-performance. , R, 5 linesR - R/
aaa-ggplot2-scale-manual , R, 34 lines.R - R/
aaa-ggplot2-utilities-gr , R, 13 linesid.R - R/
aaa-ggplot2-utilities.R , R, 47 lines - R/
geom-.R , R, 337 lines - R/
geom-bar.R , R, 41 lines - R/
geom-bin2d.R , R, 14 lines - R/
geom-boxplot.R , R, 251 lines - R/
geom-col.R , R, 11 lines - R/
geom-crossbar.R , R, 145 lines - R/
geom-density.R , R, 26 lines - R/
geom-histogram.R , R, 7 lines - R/
geom-map.R , R, 100 lines - R/
geom-polygon.R , R, 133 lines - R/
geom-rect.R , R, 75 lines - R/
geom-ribbon.R , R, 170 lines - R/
geom-sf.R , R, 122 lines - R/
geom-tile.R , R, 27 lines - R/
geom-violin.R , R, 129 lines - R/
ggpattern-defunct.R , R, 65 lines - R/
ggpattern-deprecated.R , R, 7 lines - R/
ggpattern-package.R , R, 23 lines - R/
pattern.R , R, 99 lines - R/
polygon_df.R , R, 64 lines - R/
scale-pattern-alpha.R , R, 90 lines - R/
scale-pattern-auto.R , R, 1,791 lines - R/
scale-pattern-brewer.R , R, 168 lines - R/
scale-pattern-colour.R , R, 91 lines - R/
scale-pattern-gradient.R , R, 154 lines - R/
scale-pattern-grey.R , R, 53 lines - R/
scale-pattern-hue.R , R, 62 lines - R/
scale-pattern-linetype.R , R, 63 lines - R/
scale-pattern-shape.R , R, 74 lines - R/
scale-pattern-size.R , R, 80 lines - R/
scale-pattern-viridis.R , R, 190 lines - R/
scale-pattern.R , R, 84 lines - R/
zxx.R , R, 142 lines - R/
zzz.R , R, 6 lines - README.Rmd, R, 263 lines
- data-raw/
config.R , R, 36 lines - data-raw/
generate-scales-continuo , R, 230 linesus-discrete.R - data-raw/
generate-scales-identity , R, 99 lines.R - data-raw/
generate-scales-manual.R , R, 72 lines - data-raw/
generate-scales.R , R, 19 lines - data-raw/
logo.R , R, 66 lines - tests/
testthat.R , R, 5 lines - tests/
testthat/ , R, 93 linestest-array-patterns.R - tests/
testthat/ , R, 61 linestest-fill.R - tests/
testthat/ , R, 24 linestest-geom-bar.R - tests/
testthat/ , R, 17 linestest-geom-bin2d.R - tests/
testthat/ , R, 21 linestest-geom-boxplot.R - tests/
testthat/ , R, 24 linestest-geom-col.R - tests/
testthat/ , R, 31 linestest-geom-crossbar.R - tests/
testthat/ , R, 24 linestest-geom-density.R - tests/
testthat/ , R, 11 linestest-geom-histogram.R - tests/
testthat/ , R, 32 linestest-geom-map.R - tests/
testthat/ , R, 52 linestest-geom-polygon.R - tests/
testthat/ , R, 40 linestest-geom-rect.R - tests/
testthat/ , R, 40 linestest-geom-ribbon.R - tests/
testthat/ , R, 64 linestest-geom-sf.R - tests/
testthat/ , R, 31 linestest-geom-tile.R - tests/
testthat/ , R, 17 linestest-geom-violin.R - tests/
testthat/ , R, 27 linestest-geometry-patterns.R - tests/
testthat/ , R, 12 linestest-ggpattern-defunct.R - tests/
testthat/ , R, 7 linestest-scale-pattern-alpha .R - tests/
testthat/ , R, 304 linestest-scale-pattern-auto. R - tests/
testthat/ , R, 11 linestest-scale-pattern-brewe r.R - tests/
testthat/ , R, 17 linestest-scale-pattern-colou r.R - tests/
testthat/ , R, 17 linestest-scale-pattern-gradi ent.R - tests/
testthat/ , R, 5 linestest-scale-pattern-grey. R - tests/
testthat/ , R, 5 linestest-scale-pattern-hue.R - tests/
testthat/ , R, 3 linestest-scale-pattern-linet ype.R - tests/
testthat/ , R, 3 linestest-scale-pattern-shape .R - tests/
testthat/ , R, 17 linestest-scale-pattern-size. R - tests/
testthat/ , R, 11 linestest-scale-pattern-virid is.R - tests/
testthat/ , R, 26 linestest-scale-pattern.R - tests/
testthat/ , R, 61 linestest-scales.R - tests/
testthat/ , R, 37 linestest-zero-area-array-fil l.R - vignettes/
developing-patterns.Rmd , R, 247 lines - vignettes/
geom-gallery-array.Rmd , R, 611 lines - vignettes/
geom-gallery-geometry.Rm , R, 471 linesd - vignettes/
geometry-based-pattern-p , R, 182 linesarameters.Rmd - vignettes/
gganimate.Rmd , R, 62 lines - vignettes/
patterns-image.Rmd , R, 467 lines - vignettes/
patterns-noise.Rmd , R, 278 lines - vignettes/
patterns-other.Rmd , R, 205 lines - vignettes/
patterns-points.Rmd , R, 190 lines - vignettes/
patterns-stripes.Rmd , R, 223 lines - vignettes/
patterns-tilings.Rmd , R, 219 lines - vignettes/
precompute_vignettes.R , R, 6 lines - LICENSE, License, 8 lines
- LICENSE.md, License, 27 lines
- README.md, Text, 230 lines
VeronicaMP/Defective-EV-Mediated-Transport-of-SHH-Alters-Neural-Fate-Specification-in-EPM1-epilepsy
4c22f863f350fa0a1844f76f2d9d723f46a6c011, 19 July 2026Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
11 files
- 1_PCA_TPM.R, R, 182 lines
- vCO_01_quality_control.i
pynb , Jupyter, 266 lines, 2 matches - vCO_02_normalization.ipy
nb , Jupyter, 153 lines, 1 match - vCO_03_feature_selection
.ipynb , Jupyter, 78 lines - vCO_04_dimensionality_re
duction.ipynb , Jupyter, 91 lines - vCO_05_clustering.ipynb, Jupyter, 53 lines
- vCO_06_annotation.ipynb, Jupyter, 834 lines, 1 match
- vCO_07_integration_Scran
orama.ipynb , Jupyter, 158 lines - vCO_08_nomenclature_post
_integration-PT2.ipynb , Jupyter, 507 lines, 3 matches - repository limit reached (2,000 files or 30 MB): the rest is at the source (6 files)
- LICENSE, License, 21 lines
- README.md, Text, 35 lines
Zenodo 21453507
Availability: 1 check, the latest on 26 September 2026: the link answers (HTTP 200)
- 26 September 2026: the link answers (HTTP 200)
11 files
- 1_PCA_TPM.R, R, 182 lines
- vCO_01_quality_control.i
pynb , Jupyter, 266 lines - vCO_02_normalization.ipy
nb , Jupyter, 153 lines - vCO_03_feature_selection
.ipynb , Jupyter, 78 lines - vCO_04_dimensionality_re
duction.ipynb , Jupyter, 91 lines - vCO_05_clustering.ipynb, Jupyter, 53 lines
- vCO_06_annotation.ipynb, Jupyter, 834 lines
- vCO_07_integration_Scran
orama.ipynb , Jupyter, 158 lines - vCO_08_nomenclature_post
_integration-PT2.ipynb , Jupyter, 507 lines - repository limit reached (2,000 files or 30 MB): the rest is at the source
- LICENSE, License, 21 lines
- README.md, Text, 35 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:
- 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 111 scripts, each with its path and the digest of its content;
- 7 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
Datasets cited
- geo:GSE188219, at NCBI GEO; found in “Data, code, and materials availability:”
Data, code, and materials availability
Raw sequencing data have been deposited in the Gene Expression Omnibus (GEO) database under accession codes GSE188219 (https://
Reproduced under the paper's license (CC BY-NC), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 18 authors, 9 MeSH terms, 1 funder, 78 references, 2 RRIDs.
Cite
This paper
Forero, A., Pravata, V., Pipicelli, F., Frenna, E., Soloperto, A., Ianni, M., Abate, N., Di Matteo, F., Bekjarova, Z., Canafoglia, L., Ragona, F., Maccarrone, G., Pisfil, M. G., Wahl-Schott, C., Cernilogar, F. M., Eder, M., Di Giaimo, R., & Cappello, S. (2026). Defective EV-mediated transport of SHH alters neural fate specification in EPM1 epilepsy. Science advances, 12(36), eadu3955. https://
BibTeX
@article{forero2026defec
author = {Forero, Andrea and Pravata, Veronica and Pipicelli, Fabrizia and Frenna, Elisa and Soloperto, Alessandro and Ianni, Marta and Abate, Natalia and Di Matteo, Francesco and Bekjarova, Zagorka and Canafoglia, Laura and Ragona, Francesca and Maccarrone, Giuseppina and Pisfil, Mariano Gonzalez and Wahl-Schott, Christian and Cernilogar, Filippo M and Eder, Matthias and Di Giaimo, Rossella and Cappello, Silvia},
title = {{Defective EV-mediated transport of SHH alters neural fate specification in EPM1 epilepsy}},
journal = {Science advances},
year = {2026},
month = sep,
volume = {12},
number = {36},
pages = {eadu3955},
publisher = {American Association for the Advancement of Science},
issn = {2375-2548},
doi = {10.1126/
url = {https://
pmid = {42685196},
pmcid = {PMC13537273}
}
RIS
TY - JOUR
AU - Forero, Andrea
AU - Pravata, Veronica
AU - Pipicelli, Fabrizia
AU - Frenna, Elisa
AU - Soloperto, Alessandro
AU - Ianni, Marta
AU - Abate, Natalia
AU - Di Matteo, Francesco
AU - Bekjarova, Zagorka
AU - Canafoglia, Laura
AU - Ragona, Francesca
AU - Maccarrone, Giuseppina
AU - Pisfil, Mariano Gonzalez
AU - Wahl-Schott, Christian
AU - Cernilogar, Filippo M
AU - Eder, Matthias
AU - Di Giaimo, Rossella
AU - Cappello, Silvia
TI - Defective EV-mediated transport of SHH alters neural fate specification in EPM1 epilepsy
T2 - Science advances
J2 - Sci Adv
PY - 2026
DA - 2026/
VL - 12
IS - 36
SP - eadu3955
SN - 2375-2548
PB - American Association for the Advancement of Science
DO - 10.1126/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1126/
"type": "article-journal",
"title": "Defective EV-mediated transport of SHH alters neural fate specification in EPM1 epilepsy",
"container-title": "Science advances",
"author": [
{
"family": "Forero",
"given": "Andrea"
},
{
"family": "Pravata",
"given": "Veronica"
},
{
"family": "Pipicelli",
"given": "Fabrizia"
},
{
"family": "Frenna",
"given": "Elisa"
},
{
"family": "Soloperto",
"given": "Alessandro"
},
{
"family": "Ianni",
"given": "Marta"
},
{
"family": "Abate",
"given": "Natalia"
},
{
"family": "Di Matteo",
"given": "Francesco"
},
{
"family": "Bekjarova",
"given": "Zagorka"
},
{
"family": "Canafoglia",
"given": "Laura"
},
{
"family": "Ragona",
"given": "Francesca"
},
{
"family": "Maccarrone",
"given": "Giuseppina"
},
{
"family": "Pisfil",
"given": "Mariano Gonzalez"
},
{
"family": "Wahl-Schott",
"given": "Christian"
},
{
"family": "Cernilogar",
"given": "Filippo M"
},
{
"family": "Eder",
"given": "Matthias"
},
{
"family": "Di Giaimo",
"given": "Rossella"
},
{
"family": "Cappello",
"given": "Silvia"
}
],
"container-title-short":
"volume": "12",
"issue": "36",
"page": "eadu3955",
"DOI": "10.1126/
"PMID": "42685196",
"PMCID": "PMC13537273",
"ISSN": "2375-2548",
"publisher": "American Association for the Advancement of Science",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
9,
2
]
]
}
}
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.1002/adhm.202504889 [code]
- Mapping the Cerebral Organoid Landscape: A Systematic Review of Preclinical 3D Models in Neuroscience.Journal: Advanced healthcare materialsIn common: Numba, pandas, SciPy, 2 other tools, 13 references
- [2] doi:10.1016/j.xcrm.2026.102766 [code]
- A longitudinal single-cell and spatial multiomic atlas of pediatric high-grade glioma.Journal: Cell reports. MedicineIn common: rpy2, Numba, DESeq2, 10 other tools, cellular / molecular, 1 reference
- [3] 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: DESeq2, Seurat, reshape2, 2 other tools, cellular / molecular, 4 references, author Veronica Pravata
- [4] doi:10.1038/s41592-026-03194-8 [code]
- Beyond benchmarking: an expert-guided consensus approach to spatially aware clustering.Journal: Nature methodsIn common: rpy2, Scanpy, Seurat, 8 other tools, 3 references
- [5] doi:10.1038/s41467-026-71803-3 [code]
- Charting the transition from in vitro gliogenesis to the in vivo maturation of human glial progenitor cells transplanted into the hypomyelinated mouse brain.Journal: Nature communicationsIn common: Numba, DESeq2, Scanpy, 8 other tools, cellular / molecular, 3 references
- [6] doi:10.1016/j.celrep.2026.117073 [code]
- Single-cell epigenomics uncovers heterochromatin instability and transcription factor dysfunction during mouse brain aging.Journal: Cell reportsIn common: rpy2, DESeq2, Scanpy, 9 other tools, cellular / molecular, 1 reference
- [7] doi:10.1038/s41467-026-73796-5 [code]
- Cross-species transcriptomic analysis of rodent model fidelity to human mesial temporal lobe epilepsy.Journal: Nature communicationsIn common: DESeq2, Scanpy, Seurat, 8 other tools, epilepsy, cellular / molecular, 2 references
- [8] doi:10.1038/s41586-026-10629-x [code]
- Whole-genome duplication shaped cell-type evolution in the vertebrate brain.Journal: NatureIn common: Numba, DESeq2, Scanpy, 9 other tools, cellular / molecular, 1 reference
- [9] doi:10.1242/dmm.052681
- Transcriptomic and proteomic insights into progressive myoclonus epilepsy type 1.Journal: Disease models & mechanismsIn common: epilepsy, 8 references
- [10] doi:10.1126/sciadv.aeg3223 [code]
- The extreme diversity of retinal amacrine cells has deep evolutionary roots.Journal: Science advancesIn common: DESeq2, Scanpy, Seurat, 8 other tools, cellular / molecular, 2 references
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
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: 3 repositories of the authors' code, each at its verified commit and with its license, 111 scripts, and 7 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:1a10cdd761593da9…
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.
