Optics-free spatial genomics for mapping mammalian brain aging by IRISeq.
The 9 matches
- [1] § Methods › EasySci sequencing data preprocessing ↔ EasySci_pipeline.sh, lines 1–47 · score 0.77 · shortdT, randomN, EasySci, barcode information, pipeline, exon
- [2] § Results › Overview of IRISeq ↔ Analysis_Scripts/2_Fig2_plotting.ipynb, lines 173–203 · score 0.74 · LGN, STN, Unk, Vip, interneurons, DG
- [3] § Results › A spatially resolved transcriptome atlas of the mouse brain ↔ Analysis_Scripts/3_Fig1_plotting.ipynb, lines 324–367 · score 0.67 · hippocampal dentate gyrus, caudate putamen, habenula, amygdala, hypothalamus, cortex
- [4] § Methods › cDNA data matrix processing ↔ Bead_interaction_pipeline/UMI_barcode_extraction.py, lines 9–78 · score 0.66 · r1 fastq, r2 fastq, bead barcode, Read1, Read2, filtered
- [5] § Methods › Single-cell clustering and annotation analysis ↔ Analysis_Scripts/2_Fig2_plotting.ipynb, lines 21–36 · score 0.64 · FindClusters, variable features, SelectIntegrationFeatures, vst, Seurat, clustering
- [6] § Methods › cDNA data matrix processing ↔ script_folder/barcoding_reads_paired.py, lines 18–137 · score 0.61 · r1 fastq, r2 fastq, UMIs, trimmed, Read2, barcode
- [7] § Methods › EasySci sequencing data preprocessing ↔ script_folder/post_processing_exons.py, lines 69–129 · score 0.59 · shortdT, randomN, doublet, exon, PCR, matrix
- [8] § Methods › Differential abundance analysis for IRISeq ↔ Analysis_Scripts/5_Beads_deconvolution_cell_abundance_analysis.ipynb, lines 27–95 · score 0.57 · differentialGeneTest, cell abundance, model, RTCD, gene expression, matrix
- [9] § Methods › Computational procedures for processing IRISeq libraries › Bead-connection processing ↔ Sample_reconstruction_code_GPUipynb.ipynb, lines 120–155 · score 0.55 · sender bead, receiver bead, density, row, matrix, filtered
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 · 588 lines · 19 KB · no license · 2 matches
- # %%
- library(Matrix)
- library(Seurat)
- library(Matrix)
- gene_count <- readMM("//genecount.mtx")
- df_cell <- read.csv("//df_cell.csv")
- df_gene <- read.csv("//df_gene.csv")
- colnames(gene_count) = df_cell$cell_name_temp #your cell name column
- rownames(gene_count) = df_gene$Gene_name
- #must do this
- rownames(df_cell) <- df_cell$cell_name_temp
- # Now, proceed with creating the Seurat object
- Iris_Seurat <- CreateSeuratObject(counts = gene_count, meta.data = df_cell, project = "Spatial", assay = "RNA")
- Iris_Seurat <- subset(Iris_Seurat, subset = nCount_RNA >= 400)
- # %%
- Iris_Seurat <- NormalizeData(Iris_Seurat)
- Iris_Seurat <- FindVariableFeatures(Iris_Seurat, selection.method = "vst", nfeatures = 10000)
- # plot variable features with and without labels
- plot1 <- VariableFeaturePlot(Iris_Seurat)
- plot2 <- LabelPoints(plot = plot1, points = top10, repel = TRUE)
- plot1 + plot2
- all.genes <- rownames(Iris_Seurat)
- Iris_Seurat <- ScaleData(Iris_Seurat, features = all.genes)
- Iris_Seurat <- RunPCA(Iris_Seurat, features = VariableFeatures(object = Iris_Seurat),npcs=25)
- Iris_Seurat <- FindNeighbors(Iris_Seurat, dims = 1:50)
- Iris_Seurat <- FindClusters(Iris_Seurat, resolution = 2)
- Iris_Seurat <- RunUMAP(Iris_Seurat, dims = 1:40)
- DimPlot(Iris_Seurat, reduction = "umap")
- # %%
- #used this for figure
- Iris_Seurat <- FindNeighbors(Iris_Seurat, dims = 1:20)
- Iris_Seurat <- FindClusters(Iris_Seurat, resolution = 2)
- Iris_Seurat <- RunUMAP(Iris_Seurat, dims = 1:20)
- DimPlot(Iris_Seurat, reduction = "umap")
- # %%
- #used this for figure
- Iris_Seurat <- RunUMAP(Iris_Seurat, dims = 1:20,min.dist = 0.1)
- # %%
- # %%
- # %%
- # %%
- DimPlot(Iris_Seurat, reduction = "umap")+NoLegend()
- # %%
- Iris_Seurat <- FindClusters(Iris_Seurat, resolution = 2.2)
- # %%
- Iris_Seurat <- FindClusters(Iris_Seurat, resolution = 1)
- # %%
- DimPlot(Iris_Seurat, reduction = "umap")
- # %%
- library(Matrix)
- library(Seurat)
- library(spacexr)
- library(Matrix)
- library(doParallel)
- # %%
- RTCD = readRDS("../10um_RDS.rds")
- # %%
- weights <- RTCD@results$weights
- norm_weights <- normalize_weights(weights)
- barcodes <- colnames(RTCD@spatialRNA@counts)
- weights <- RTCD@results$weights
- RTCD <- as.data.frame(norm_weights)
- # %%
- #adding umap coords
- # Extract UMAP coordinates
- umap_coords <- [email hidden][, c("UMAP1", "UMAP2")]
- # Set UMAP embeddings in the Seurat object
- Iris_Seurat[["umapSpatial"]] <- CreateDimReducObject(embeddings = as.matrix(umap_coords), key = "UMAP_")
- # %%
- # Assuming 'your_seurat_object' is your Seurat object
- # Extract the relevant columns into a matrix
- columns_of_interest <- c('Astro_AMY', 'Astro_AMY_CTX', 'Astro_CTX', 'Astro_HPC',
- 'Astro_HYPO', 'Astro_STR', 'Astro_THAL_hab', 'Astro_THAL_lat',
- 'Astro_THAL_med', 'Astro_WM', 'Endo', 'Ext_Amy_1', 'Ext_Amy_2',
- 'Ext_ClauPyr', 'Ext_Hpc_CA1', 'Ext_Hpc_CA2', 'Ext_Hpc_CA3',
- 'Ext_Hpc_DG1', 'Ext_Hpc_DG2', 'Ext_L23', 'Ext_L25', 'Ext_L5_1',
- 'Ext_L5_2', 'Ext_L5_3', 'Ext_L56', 'Ext_L6', 'Ext_L6B', 'Ext_Med',
- 'Ext_Pir', 'Ext_Thal_1', 'Ext_Thal_2', 'Ext_Unk_1', 'Ext_Unk_2',
- 'Ext_Unk_3', 'Inh_1', 'Inh_2', 'Inh_3', 'Inh_4', 'Inh_5', 'Inh_6',
- 'Inh_Lamp5', 'Inh_Meis2_1', 'Inh_Meis2_2', 'Inh_Meis2_3',
- 'Inh_Meis2_4', 'Inh_Pvalb', 'Inh_Sst', 'Inh_Vip', 'LowQ_1',
- 'LowQ_2', 'Micro', 'Nb_1', 'Nb_2', 'Oligo_1', 'Oligo_2',
- 'OPC_1', 'OPC_2', 'Unk_1', 'Unk_2')
- # %%
- # %%
- DimPlot(Iris_Seurat,reduction="umapSpatial", group.by = "Idents", cols = c("OPC_1"="red"))
- DimPlot(Iris_Seurat, group.by = "Idents", cols = c("OPC_1"="red"))
- DimPlot(Iris_Seurat,reduction="umapSpatial", group.by = "Idents", cols = c("OPC_2"="red"))
- DimPlot(Iris_Seurat, group.by = "Idents", cols = c("OPC_2"="red"))
- [email hidden]$Idents
- #Astro_AMY, Astro_AMY_CTX, Astro_CTX, , Astro_STR, Astro_THAL_hab,Astro_THAL_lat,Astro_THAL_med=Astrocytes
- #Astro_WM=Astrocytes_WM
- #Astro_HYPO=Astrocytes_Hypo
- #Endo=Endo
- #Ext_Amy_1=Ext_Amy_1
- #Ext_Amy_2=Ext_Amy_2
- #Inh_1=Inh_Amy
- #Ext_ClauPyr=Ext_ClauPyr
- #Ext_Hpc_CA1=Ext_Hpc_CA1
- #Ext_Hpc_CA2=Ext_Hpc_CA2
- #Ext_Hpc_CA3=Ext_Hpc_CA3
- #Ext_Hpc_DG1,Ext_Hpc_DG2=Ext_Hpc_DG
- #Ext_L23=Ext_L23
- #Ext_L25=Ext_L25
- #Ext_L5_1,Ext_L5_2,Ext_L5_3=Ext_L5
- #Ext_L56,Ext_L6B=Ext_L56
- #Ext_Med=Ext_Med
- #Ext_Pir,Ext_Unk_1=Ext_Pir
- #Ext_Thal_1', 'Ext_Thal_2,Ext_Unk_3=Thalamus
- #Ext_Unk_2=Ext_Unk_2
- #Inh_2,Inh_3,Inh=Hypothalamus
- #Inh_5=STN
- #Inh_6=Habenuela
- #Inh_Lamp5=Inh_Hippocampus
- ##Inh_Meis2_1,Inh_Meis2_2,Inh_Meis2_3=Striatal
- #Inh_Meis2_4=LGN
- #Inh_Sst=Inh_Sst
- #Inh_Pvalb=Inh_Pvalb
- #Inh_Vip=Inh_Vip
- #LowQ_1=Choroid_Plexus
- #Micro=Micro
- #Nb_1,Nb_2=Nb
- #Oligo_1', 'Oligo_2=Oligo
- #OPC_2,OPC_1=OPC
- #Unk_1', 'Unk_2-interneurons
- # %%
- # Define the mapping dictionary
- idents_mapping <- c(
- "Astro_AMY" = "Astrocytes", "Astro_AMY_CTX" = "Astrocytes", "Astro_CTX" = "Astrocytes",
- "Astro_STR" = "Astrocytes", "Astro_THAL_hab" = "Astrocytes", "Astro_THAL_lat" = "Astrocytes",
- "Astro_THAL_med" = "Astrocytes", "Astro_WM" = "Astrocytes_WM", "Astro_HYPO" = "Astrocytes_Hypo",
- "Endo" = "Endo", "Ext_Amy_1" = "Ext_Amy_1", "Ext_Amy_2" = "Ext_Amy_2",
- "Inh_1" = "Inh_Amy", "Ext_ClauPyr" = "Ext_ClauPyr", "Ext_Hpc_CA1" = "Ext_Hpc_CA1",
- "Ext_Hpc_CA2" = "Ext_Hpc_CA2", "Ext_Hpc_CA3" = "Ext_Hpc_CA3", "Ext_Hpc_DG1" = "Ext_Hpc_DG",
- "Ext_Hpc_DG2" = "Ext_Hpc_DG", "Ext_L23" = "Ext_L23", "Ext_L25" = "Ext_L25",
- "Ext_L5_1" = "Ext_L5", "Ext_L5_2" = "Ext_L5", "Ext_L5_3" = "Ext_L5",
- "Ext_L56" = "Ext_L56", "Ext_L6B" = "Ext_L56", "Ext_Med" = "Ext_Med",
- "Ext_Pir" = "Ext_Pir", "Ext_Unk_1" = "Ext_Pir", "Ext_Thal_1" = "Thalamus",
- "Ext_Thal_2" = "Thalamus", "Ext_Unk_3" = "Thalamus", "Ext_Unk_2" = "Ext_Unk_2",
- "Inh_2" = "Hypothalamus", "Inh_3" = "Hypothalamus", "Inh" = "Hypothalamus",
- "Inh_5" = "STN", "Inh_6" = "Habenuela", "Inh_Lamp5" = "Inh_Hippocampus",
- "Inh_Meis2_1" = "Striatal", "Inh_Meis2_2" = "Striatal", "Inh_Meis2_3" = "Striatal",
- "Inh_Meis2_4" = "LGN", "Inh_Sst" = "Inh_Sst", "Inh_Pvalb" = "Inh_Pvalb",
- "Inh_Vip" = "Inh_Vip", "LowQ_1" = "Choroid_Plexus", "Micro" = "Micro",
- "Nb_1" = "Nb", "Nb_2" = "Nb", "Oligo_1" = "Oligo", "Oligo_2" = "Oligo",
- "OPC_1" = "OPC", "OPC_2" = "OPC", "Unk_1" = "interneurons", "Unk_2" = "interneurons"
- )
- # Create a new column with mapped values
- [email hidden]$NewIdents <- idents_mapping[as.character([email hidden]$Idents)]
- # Ensure any NA values (unmapped identities) remain unchanged
- [email hidden]$NewIdents[is.na([email hidden]$NewIdents)] <- [email hidden]$Idents[is.na([email hidden]$NewIdents)]
- # Verify the changes
- table([email hidden]$NewIdents)
- # %%
- # %%
- DimPlot(Iris_Seurat,reduction="umapSpatial", group.by = "NewIdents")+NoLegend()
- DimPlot(Iris_Seurat, group.by = "NewIdents")+NoLegend()
- # %%
- # %%
- # %%
- # %%
- # %%
- # %%
- # %%
- # %%
- # %%
- # %%
- # %%
- # %%
- # %%
- # %%
- # %%
- FeaturePlot(Iris_Seurat, "Ttr")
- DimPlot(Iris_Seurat,reduction="umapSpatial", group.by = "Idents", cols = c("Inh_Meis2_1"="red"))
- DimPlot(Iris_Seurat, group.by = "Idents", cols = c("Inh_Meis2_1"="red"))
- # %%
- # %%
- [email hidden] = RTCD[,columns_of_interest]
- # %%
- # %%
- # Get the matrix of values for the specified columns
- data_matrix <- FetchData(Iris_Seurat, vars = columns_of_interest)
- # Identify the column with the highest value for each cell
- max_id <- apply(data_matrix, 1, function(x) columns_of_interest[which.max(x)])
- # Add this information as a new column in the Seurat metadata
- Iris_Seurat$Idents <- max_id
- # Optionally set the Seurat object identity to this new column
- Idents(Iris_Seurat) <- "Idents"
- # View the updated Seurat object metadata
- head([email hidden])
- # %%
- # %%
- # %%
- # %%
- # %%
- # Fetch cell names from Seurat object metadata
- metadata_cell_names <- rownames([email hidden])
- # Ensure data_matrix includes all metadata cells in the same order
- data_matrix <- FetchData(Iris_Seurat, vars = columns_of_interest, cells = metadata_cell_names)
- # Use max.col to quickly find the index of the max value for each row
- max_indices <- max.col(data_matrix, ties.method = "first")
- # Map the indices back to column names
- identities <- setNames(columns_of_interest[max_indices], rownames(data_matrix))
- # Add the new identities as a metadata column
- [email hidden]$Idents <- identities
- # %%
- # %%
- # %%
- library(Seurat)
- library(ggplot2)
- library(RColorBrewer)
- library(cowplot)
- # Extract unique identities
- unique_idents <- unique([email hidden]$NewIdents)
- # Generate visually distinct colors
- num_clusters <- length(unique_idents)
- palette_colors <- colorRampPalette(brewer.pal(12, "Paired"))(num_clusters)
- # Assign colors to each identity
- names(palette_colors) <- unique_idents
- # Plot UMAP with distinct colors
- DimPlot(Iris_Seurat, group.by = "NewIdents", cols = palette_colors) +
- theme_minimal() +
- ggtitle("UMAP with Distinct Clusters")
- # %%
- DimPlot(Iris_Seurat, group.by = "NewIdents", cols = palette_colors, reduction = "umapSpatial", pt.size = 0.5) +
- theme_void() + # Removes background, grid, and axis lines
- ggtitle("UMAP with Distinct Clusters") +
- theme(
- axis.text = element_blank(), # Remove axis text
- axis.ticks = element_blank(), # Remove axis ticks
- panel.border = element_blank(), # Remove panel border
- legend.text = element_text(family = "Helvetica", size = 14), # Set legend font to Helvetica
- legend.title = element_text(family = "Helvetica", size = 14)+NoLegend() # Ensure title is also Helvetica
- )+NoLegend()
- # %%
- DimPlot(Iris_Seurat, group.by = "NewIdents", cols = palette_colors, reduction = "umapSpatial", pt.size = 0.5) +
- theme_void() + # Removes background, grid, and axis lines
- ggtitle("UMAP with Distinct Clusters") +
- theme(
- axis.text = element_blank(), # Remove axis text
- axis.ticks = element_blank(), # Remove axis ticks
- panel.border = element_blank(), # Remove panel border
- legend.text = element_text(family = "Helvetica", size = 14), # Set legend font to Helvetica
- legend.title = element_text(family = "Helvetica", size = 14)+NoLegend() # Ensure title is also Helvetica
- )
- # %%
- # Automatically update colors for all clusters containing "Thal"
- palette_colors[grep("Thal", names(palette_colors))] <- "#FCE7C8"
- # Automatically update colors for all clusters containing "Thal"
- palette_colors[grep("Oligo", names(palette_colors))] <- "#FADA7A"
- # Automatically update colors for all clusters containing "Thal"
- palette_colors[grep("Striatal", names(palette_colors))] <- "#CBA35C"
- # %%
- DimPlot(Iris_Seurat, group.by = "NewIdents", cols = palette_colors, reduction = "umapSpatial", pt.size = .5) +
- theme_void() + # Removes background, grid, and axis lines
- ggtitle("UMAP with Distinct Clusters") +
- theme(
- axis.text = element_blank(), # Remove axis text
- axis.ticks = element_blank(), # Remove axis ticks
- panel.border = element_blank(), # Remove panel border
- legend.text = element_text(family = "Helvetica", size = 14), # Set legend font to Helvetica
- legend.title = element_text(family = "Helvetica", size = 14)+NoLegend() # Ensure title is also Helvetica
- )+NoLegend()
- # %%
- # %%
- DimPlot(Iris_Seurat, reduction = "umapSpatial",group.by = "NewIdents", cols = c("Hypothalamus" = "#A94A4A"))
- DimPlot(Iris_Seurat, reduction = "umapSpatial",group.by = "NewIdents", cols = c("Ext_Amy_2" = "red"))
- DimPlot(Iris_Seurat, reduction = "umapSpatial",group.by = "NewIdents", cols = c("interneurons" = "red"))
- DimPlot(Iris_Seurat, reduction = "umapSpatial",group.by = "NewIdents", cols = c("Ext_L56" = "red"))
- DimPlot(Iris_Seurat, reduction = "umapSpatial",group.by = "NewIdents", cols = c("Ext_Pir" = "red"))
- DimPlot(Iris_Seurat, reduction = "umapSpatial",group.by = "NewIdents", cols = c("Oligo" = "red"))
- DimPlot(Iris_Seurat, reduction = "umapSpatial",group.by = "NewIdents", cols = c("Choroid_Plexus" = "red"))
- DimPlot(Iris_Seurat, reduction = "umapSpatial",group.by = "NewIdents", cols = c("Thalamus" = "red"))
- DimPlot(Iris_Seurat, reduction = "umapSpatial",group.by = "NewIdents", cols = c("Ext_Med" = "red"))
- # %%
- DimPlot(Iris_Seurat, group.by = "NewIdents", cols = palette_colors, reduction = "umapSpatial", pt.size = .5) +
- theme_void() + # Removes background, grid, and axis lines
- ggtitle("UMAP with Distinct Clusters") +
- theme(
- axis.text = element_blank(), # Remove axis text
- axis.ticks = element_blank(), # Remove axis ticks
- panel.border = element_blank(), # Remove panel border
- legend.text = element_text(family = "Helvetica", size = 14), # Set legend font to Helvetica
- legend.title = element_text(family = "Helvetica", size = 14)+NoLegend() # Ensure title is also Helvetica
- )+NoLegend()
- # %%
- # %%
- # %%
- library(ggplot2)
- library(reshape2)
- # Convert metadata to a data frame for ggplot
- metadata_df <- [email hidden]
- # Rename columns for readability
- colnames(metadata_df)[colnames(metadata_df) %in% c("nCount_RNA", "nFeature_RNA")] <- c("UMI_Counts", "Gene_Counts")
- # Reshape data to long format for side-by-side boxplots
- melted_data <- melt(metadata_df, measure.vars = c("UMI_Counts", "Gene_Counts"))
- # Custom colors for each box plot
- box_colors <- c("UMI_Counts" = "#8B5A2B", "Gene_Counts" = "#1F497D") # Brown & Blue
- # Set max y-axis limit
- max_y <- 2000 # Adjust based on data range
- # Generate Box Plot
- pdf("Umi.pdf")
- ggplot(melted_data, aes(x = variable, y = value, fill = variable)) +
- geom_boxplot(color = "black", outlier.shape = 16, outlier.colour = "black", outlier.size = 1) +
- scale_fill_manual(values = box_colors) +
- theme_minimal() +
- theme(
- text = element_text(family = "Helvetica"),
- axis.title.x = element_blank(),
- axis.title.y = element_blank(),
- axis.text.x = element_text(size = 14, face = "bold"),
- axis.text.y = element_text(size = 12),
- legend.position = "none", # Remove legend for a cleaner look
- panel.grid = element_blank(), # Remove grid
- panel.border = element_blank(),
- axis.line = element_line(color = "black", size = 1), # Add x and y axis lines
- axis.ticks = element_line(color = "black", size = 1) # Add ticks to both axes
- ) +
- coord_cartesian(ylim = c(0, max_y)) # Set y-axis max limit
- dev.off()
- # %%
- pdf("Plotcells.pdf")
- DimPlot(Iris_Seurat, group.by = "Idents", cols = palette_colors, reduction ="umapSpatial", pt.size = 0.5) +
- theme_void() + # Removes background, grid, and axis lines
- ggtitle("UMAP with Distinct Clusters") +
- NoLegend() +
- theme(
- axis.text = element_blank(), # Remove axis text
- axis.ticks = element_blank(), # Remove axis ticks
- panel.border = element_blank() # Remove panel border
- )
- # Define custom colors as a named vector
- custom_colors <- c(
- "Ext_Hpc_CA1" = "#1f77b4",
- "Ext_Hpc_CA2" = "#ff7f0e",
- "Ext_Hpc_CA3" = "#2ca02c",
- "Ext_Hpc_DG1" = "orange",
- "Ext_Hpc_DG2" = "orange",
- "Ext_L23" = "#8c564b",
- "Ext_L25" = "#e377c2",
- "Ext_L5_1" = "#7f7f7f",
- "Astro_THAL_med" = "#bcbd22",
- "Ext_L56" = "#17becf","Astro_THAL_med" = "#D99D81","Astro_THAL_lat" ="#DF9755" , "Astro_THAL_hab"= "#C890A7",
- "Oligo_1"="#A31D1D","Oligo_2"="#A31D1D","OPC_1"="#809D3C","OPC_2"="#F4FFC3"
- )
- # Plot with custom colors
- DimPlot(
- Iris_Seurat,
- group.by = "Idents",
- reduction = "umapSpatial",
- cols = custom_colors, pt.size = .5
- ) + NoLegend()
- custom_colors <- c(
- "Ext_Hpc_CA1" = "#1f77b4",
- "Ext_Hpc_CA2" = "#ff7f0e",
- "Ext_Hpc_CA3" = "#2ca02c",
- "Ext_Hpc_DG1" = "orange",
- "Ext_Hpc_DG2" = "orange",
- "Ext_L23" = "#8c564b",
- "Ext_L25" = "#e377c2",
- "Ext_L5_1" = "#7f7f7f",
- "Astro_THAL_med" = "#bcbd22",
- "Ext_L56" = "#17becf","Astro_THAL_med" = "#D99D81","Astro_THAL_lat" ="#DF9755" , "Astro_THAL_hab"= "#C890A7",
- "Oligo_1"="#A31D1D","Oligo_2"="#A31D1D","OPC_1"="#809D3C","OPC_2"="#F4FFC3"
- )
- # Plot with custom colors
- DimPlot(
- Iris_Seurat,
- group.by = "Idents",
- reduction = "umapSpatial",
- cols = custom_colors, pt.size = .5
- )
- dev.off()
- # %%
- # %%
- FeaturePlot(Iris_Seurat,c("Ext_Hpc_CA1","Ext_Hpc_CA2","Ext_Hpc_CA3"), reduction = "umapSpatial",raster=FALSE)+NoLegend()
- # %%
- pdf("pdf_subtype.png")
- FeaturePlot(Iris_Seurat,"Ext_Hpc_CA1", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_Hpc_CA2", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_Hpc_CA3", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_ClauPyr", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Endo", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_Thal_1", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_Thal_2", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_Hpc_DG1", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_Hpc_DG2", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_L23", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_L25", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_L5_1", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_L5_2", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_L5_3", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_L56", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_L6", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_L6B", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_Med", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Ext_Pir", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Micro", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Oligo_1", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Oligo_2", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"OPC_1", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"OPC_2", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Astro_AMY", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Astro_AMY_CTX", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Astro_CTX", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Astro_HPC", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Astro_HYPO", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Astro_STR", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Astro_THAL_hab", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Astro_THAL_lat", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- FeaturePlot(Iris_Seurat,"Astro_THAL_med", reduction = "umapSpatial",raster=FALSE)+NoLegend()
- dev.off()
2_Fig2_plotting.ipynb at commit da8bf40, no license · at the source
Overview
- Laboratory of Single Cell Genomics and Population Dynamics, The Rockefeller University, New York, NY USA
- The Tri-Institutional M.D-Ph.D Program, New York, NY USA
- The David Rockefeller Graduate Program in Bioscience, The Rockefeller University, New York, NY USA
Abstract
The abstract is not reproduced here: the paper's license (CC BY-NC-ND) does not allow it. Read it in the paper, at the publisher or on Europe PMC.
Repositories
Its files are read in the Code ↔ Paper reader above, with 9 matches between paragraphs and lines of code.
JunyueCaoLab/EasySci
dc7ab035fc6a15a1cac02e60e208b5e965fa6471, 17 January 2024Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
13 files
- EasySci_pipeline.sh, Shell, 298 lines, 1 match
- script_folder/
barcoding_reads_paired.p , Python, 208 lines, 1 matchy - script_folder/
barcoding_reads_single.p , Python, 172 linesy - script_folder/
duplicate_removal_paired , Python, 89 lines.py - script_folder/
duplicate_removal_single , Python, 81 lines.py - script_folder/
exon_counting_paired.py , Python, 375 lines - script_folder/
exon_counting_single.py , Python, 205 lines - script_folder/
gene_counting_paired.py , Python, 448 lines - script_folder/
gene_counting_single.py , Python, 365 lines - script_folder/
post_processing_exons.py , Python, 141 lines, 1 match - script_folder/
post_processing_genes.py , Python, 138 lines - LICENSE, License, 21 lines
- README.md, Text, 83 lines
AbdulAbdulRU/IRISeq
da8bf4072343c4fc5c04460ce71cd5b90a02bd22, 8 November 2025Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
26 files
- Analysis_Scripts/
1_Sample_integration.ipy , Jupyter, 128 linesnb - Analysis_Scripts/
2_Fig2_plotting.ipynb , Jupyter, 588 lines, 2 matches - Analysis_Scripts/
3_Fig1_plotting.ipynb , Jupyter, 434 lines, 1 match - Analysis_Scripts/
4_Differential_Expressio , Jupyter, 126 linesn_analysis_code.ipynb - Analysis_Scripts/
5_Beads_deconvolution_ce , Jupyter, 96 lines, 1 matchll_abundance_analysis.ip ynb - Bead_interaction_pipelin
e/ , Python, 60 linesRemove_duplicate_barcode .py - Bead_interaction_pipelin
e/ , Python, 142 lines, 1 matchUMI_barcode_extraction.p y - Bead_interaction_pipelin
e/ , Python, 124 linesspatial_barcode_extracti on.py - EasySpatial/
Count_reads.py , Python, 78 lines - EasySpatial/
EasySciSpatial_main.py , Python, 140 lines - EasySpatial/
EasySci_UMI_barcode_atta , Python, 131 linesch.py - EasySpatial/
Fastq_trim_multi_files.p , Python, 39 linesy - EasySpatial/
File_functions.py , Python, 20 lines - EasySpatial/
GTF_generate_gene_refere , Python, 100 linesnce.py - EasySpatial/
Generate_adata.py , Python, 147 lines - EasySpatial/
STAR.py , Python, 13 lines - EasySpatial/
Sam_filter_multi_files.p , Python, 30 linesy - EasySpatial/
Sam_gene_counting_multi_ , Python, 277 linesfiles.py - EasySpatial/
Sam_rm_dup_barcode_UMI_m , Python, 114 linesulti_files.py - EasySpatial/
Samtools.py , Python, 7 lines - EasySpatial/
Spatial_UMI_barcode_extr , Python, 144 linesaction.py - EasySpatial/
Summary_gene_count_multi , Python, 73 lines_files.py - EasySpatial/
__init__.py , Python, 1 line - Sample_reconstruction_co
de_CPU.ipynb , Jupyter, 212 lines - Sample_reconstruction_co
de_GPUipynb.ipynb , Jupyter, 297 lines, 1 match - README.md, Text, 13 lines
Code availability statement
The paper has a code availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:
- it points to the authors' code: AbdulAbdulRU/
IRISeq
Read it in the paper: doi.org/10.1038/s41593-026-02293-1.
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;
- 36 scripts, each with its path and the digest of its content;
- 9 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:GSE270383, at NCBI GEO; found in “Data availability”
Data availability statement
The paper has a data availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:
- it points to a dataset: NCBI GEO GSE270383
Read it in the paper: doi.org/10.1038/s41593-026-02293-1.
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 2, 28 September 2026
- Publisher: n/a → Nature Portfolio
Version 1, 28 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 12 authors, 3 keywords, 11 MeSH terms, 3 funders, 56 references.
Cite
This paper
Abdulraouf, A., Jiang, W., Zhang, Z., Xu, Z., Lu, Z., Merlinsky, T., Liao, A., Doymaz, A., Isakov, S., Raihan, T., Zhou, W., & Cao, J. (2026). Optics-free spatial genomics for mapping mammalian brain aging by IRISeq. Nature neuroscience, 29(7), 1762-1773. https://
BibTeX
@article{abdulraouf2026o
author = {Abdulraouf, Abdulraouf and Jiang, Weirong and Zhang, Zehao and Xu, Zihan and Lu, Ziyu and Merlinsky, Tiffany and Liao, Andrew and Doymaz, Ahmet and Isakov, Samuel and Raihan, Tanvir and Zhou, Wei and Cao, Junyue},
title = {{Optics-free spatial genomics for mapping mammalian brain aging by IRISeq}},
journal = {Nature neuroscience},
year = {2026},
month = may,
volume = {29},
number = {7},
pages = {1762--1773},
publisher = {Nature Portfolio},
issn = {1097-6256},
doi = {10.1038/
url = {https://
pmid = {42120609},
pmcid = {PMC13337494}
}
RIS
TY - JOUR
AU - Abdulraouf, Abdulraouf
AU - Jiang, Weirong
AU - Zhang, Zehao
AU - Xu, Zihan
AU - Lu, Ziyu
AU - Merlinsky, Tiffany
AU - Liao, Andrew
AU - Doymaz, Ahmet
AU - Isakov, Samuel
AU - Raihan, Tanvir
AU - Zhou, Wei
AU - Cao, Junyue
TI - Optics-free spatial genomics for mapping mammalian brain aging by IRISeq
T2 - Nature neuroscience
J2 - Nat Neurosci
PY - 2026
DA - 2026/
VL - 29
IS - 7
SP - 1762
EP - 1773
SN - 1097-6256
PB - Nature Portfolio
DO - 10.1038/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1038/
"type": "article-journal",
"title": "Optics-free spatial genomics for mapping mammalian brain aging by IRISeq",
"container-title": "Nature neuroscience",
"author": [
{
"family": "Abdulraouf",
"given": "Abdulraouf"
},
{
"family": "Jiang",
"given": "Weirong"
},
{
"family": "Zhang",
"given": "Zehao"
},
{
"family": "Xu",
"given": "Zihan"
},
{
"family": "Lu",
"given": "Ziyu"
},
{
"family": "Merlinsky",
"given": "Tiffany"
},
{
"family": "Liao",
"given": "Andrew"
},
{
"family": "Doymaz",
"given": "Ahmet"
},
{
"family": "Isakov",
"given": "Samuel"
},
{
"family": "Raihan",
"given": "Tanvir"
},
{
"family": "Zhou",
"given": "Wei"
},
{
"family": "Cao",
"given": "Junyue"
}
],
"container-title-short":
"volume": "29",
"issue": "7",
"page": "1762-1773",
"DOI": "10.1038/
"PMID": "42120609",
"PMCID": "PMC13337494",
"ISSN": "1097-6256",
"publisher": "Nature Portfolio",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
12
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1038/s41592-026-03211-w [code]
- Spatial isoform sequencing at single-cell resolution reveals cell-type-specific spatial isoform variability in multiple brain cell types.Journal: Nature methodsIn common: Biopython, SAMtools, Numba, 12 other tools, genetics / omics, mouse, 6 references
- [2] doi:10.1038/s41467-026-76675-1 [code]
- Long-read proteogenomic atlas of human neuronal differentiation reveals isoform diversity informing neurodevelopmental risk mechanisms.Journal: Nature communicationsIn common: STAR, Monocle 3, Biopython, 13 other tools, genetics / omics, 1 reference
- [3] doi:10.1186/s13059-026-04177-w [code]
- Genomic sequence evolution underlying human neocortical interareal diversification.Journal: Genome biologyIn common: Monocle 3, SAMtools, UMAP, 11 other tools, genetics / omics, mouse, cellular / molecular, 4 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: Monocle 3, UMAP, Numba, 12 other tools, genetics / omics, cellular / molecular, 3 references
- [5] doi:10.1038/s44318-026-00818-9 [code]
- FAM134B-mediated ER-phagy degrades APP and suppresses Alzheimer's disease pathology.Journal: The EMBO journalIn common: Monocle 3, Biopython, UMAP, 13 other tools, mouse, cellular / molecular
- [6] doi:10.21203/rs.3.rs-9676637/v1 [code]
- A Comprehensive Benchmarking of Spatial Deconvolution and Domain Detection Methods across Diverse Tissues and Spatial Transcriptomic TechnologiesJournal: Research Square (preprint)In common: UMAP, Scanpy, Seurat, 9 other tools, genetics / omics, 5 references
- [7] doi:10.7554/elife.106347 [code]
- Esr1-dependent signaling and transcriptional maturation in the medial preoptic area of the hypothalamus shape the development of mating behavior during adolescence.Journal: eLifeIn common: Monocle 3, Scanpy, Seurat, 10 other tools, genetics / omics, mouse, 4 references
- [8] doi:10.1038/s42003-026-10957-8 [code]
- Brain defence by the extracellular matrix protein Cochlin.Journal: Communications biologyIn common: Monocle 3, Biopython, SAMtools, 12 other tools, mouse, cellular / molecular
- [9] doi:10.1038/s41592-026-03194-8 [code]
- Beyond benchmarking: an expert-guided consensus approach to spatially aware clustering.Journal: Nature methodsIn common: Scanpy, Seurat, cowplot, 9 other tools, genetics / omics, 6 references
- [10] doi:10.1038/s41586-026-10490-y [code]
- Lineage and organ signals sequentially build organ intrinsic nervous systems.Journal: NatureIn common: Monocle 3, UMAP, Scanpy, 11 other tools, mouse, 3 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: 2 repositories of the authors' code, each at its verified commit and with its license, 36 scripts, and 9 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:544865d4b1f7f578…
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.
