Astrocyte-Derived PTPRZ1 Regulates Excitatory Synapse Density in the Mouse Cortex.
The 2 matches
- [1] § Materials and Methods › Immunohistochemistry › Astrocyte 3D morphology analysis ↔ Territory_Analysis_v3.1.R, lines 199–237 · score 0.72 · Shapiro Wilk, way ANOVA, cHet, Levene, homogeneity, variance
- [2] § Materials and Methods › Immunohistochemistry › Astrocyte 2D morphology analysis ↔ Territory_Analysis_v3.1.R, lines 239–277 · score 0.59 · Kruskal Wallis, way ANOVA, Dunn, Tukey, post, territory
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 · 356 lines · 13 KB · no license · 2 matches
- ## This script is designed to clean and organize csv files exported from Imaris software for surface measures and convex hull measures. Run twice, once for surfaces and once for convex hulls.
- ## It can be customized as needed to add or exclude measures in the Imaris generated csv files following prompts throughout the script.
- ## Outputs: cleaned data files in csv format for easy statistical analysis in Prism, statistics results of selected measures, and quick plots for each measure in PNG and PDF formats.
- ## Version 3.1 written for three groups/genotypes to perform appropriate statistical tests.
- ## By Hayli Spence-Osorio (Eaker and Spence-Osorio et al., 2025)
- options(stringsAsFactors=FALSE);
- # Import libraries
- library(tidyverse)
- library(dplyr)
- library(tibble)
- library(ggplot2)
- library(ggpubr)
- library(rstatix)
- library(car)
- library(dunn.test)
- # Define the prefix for the experiment; this will be added to extracted subject IDs as a prefix
- experiment_prefix = "PTPRZ1"
- # Set working directory; a Data folder will be created in the selected directory for outputs; comment out to run on current directory
- directory <- "/Users/hspence/Desktop/PTPRZ1/P14 Data/Convex/"
- setwd(directory)
- print(getwd())
- # Create data frames for each cell for each subject, named after each subject and cell
- # List files recursively in the specified directory
- file_list <- list.files(recursive = TRUE, full.names = TRUE)
- # Create an empty list to store data frames
- subject_dfs <- list()
- # Read the key file: a key file is required; this is a CSV NOT in the working directory which contains the subject IDs and groups/genotypes; see example files in repository
- key_data <- read.csv("/Users/hspence/Desktop/PTPRZ1/P14 Data/key_file.csv")
- # Loop through each file path from the file_list, create a data frame and pass it to the data frame list
- for (file_path in file_list) {
- # Extract the subject name from the file name - relies on naming conventions used in example data files, with an Imaris prefix_experiment prefix_subject_ID; adjust indexing for parts as needed
- file_name <- basename(file_path)
- file_parts <- strsplit(file_name, "_")[[1]] #Defines how the file name string is split, in this case by a _
- subject_name_part1 <- file_parts[3] #Third chunk split by a _, change as needed
- subject_name_part2 <- file_parts[4] #Fourth chunk split by a _, change as needed
- #cell_number <- file_parts[7] #Indexing for P21 dataset
- #subject_name <- paste(experiment_prefix, subject_name_part1, subject_name_part2, cell_number, sep = "_")
- cell_prefix <- file_parts[7] #Indexing for P14 dataset
- cell_ID <- file_parts[8] #Eighth chunk split by a _, change as needed, added the 7 after last run
- subject_name <- paste(experiment_prefix, subject_name_part1, subject_name_part2, cell_prefix, cell_ID, sep = "_")
- # Read the CSV file into a data frame - skips the first three rows, empty if Imaris exports, remove skip if needed
- df <- read.csv(file_path, header=TRUE, skip=3)
- # Add the data frame to the list with subject number as the name
- subject_dfs[[subject_name]] <- df
- }
- # Now you have a list of cleaned data frames, with each data frame corresponding to a file
- # Set output directory for generated CSV files per subject - will create Data folder to hold outputs
- output_dir <- "Data"
- if (!dir.exists(output_dir)) {
- dir.create(output_dir)
- }
- # Check consistency of Sum and Mean in each file to make sure surfaces were unified before files pulled in Imaris
- mean_sum_check <- map_dfr(names(subject_dfs), function(name) {
- df <- subject_dfs[[name]]
- if (all(c("Mean", "Sum") %in% names(df))) {
- # Compare Mean * Count vs Sum (allow small tolerance for floating point)
- df <- df %>% mutate(check = abs(Mean * Count - Sum) < 1e-6)
- flag <- ifelse(all(df$check, na.rm = TRUE), "OK", "Mismatch")
- tibble(File = name, Status = flag)
- } else {
- tibble(File = name, Status = "Missing Mean/Sum column")
- }
- })
- # Save report - check before proceeding with statistical analyses
- write.csv(mean_sum_check, file.path(output_dir, "mean_sum_check.csv"), row.names = FALSE)
- # Define functions to extract cell number, ID, and filter data for relevant measures
- # Function to extract cell number from data frame name, change indexing to fit data
- get_cell_num <- function(df_name) {
- cell_parts <- strsplit(df_name, "_")[[1]]
- #cell_num <- cell_parts[4] #Indexing for P21 dataset
- cell_num <- cell_parts[5] #Indexing for P14 dataset
- return(cell_num)
- }
- # Function to extract subject ID from data frame
- get_ID <- function(df_name) {
- ID_parts <- strsplit(df_name, "_")[[1]]
- ID_prefix <- ID_parts[2]
- ID_suffix <- ID_parts[3]
- ID_name <- paste(experiment_prefix, ID_prefix, ID_suffix, sep = "_")
- return(ID_name)
- }
- # Function to manipulate data and generate clean cell data - CHANGE VARIABLES OF INTEREST HERE, but will also have to change when variables are defined later (lines 161, 163)
- filter_cell_data <- function(df_name) {
- filtered_df <- df_name %>%
- filter(Variable %in% c("Area", "Volume","Ellipticity (oblate)", "Ellipticity (prolate)", "Sphericity")) %>%
- select(Variable, Mean)
- pivoted_df <- filtered_df %>%
- pivot_wider(names_from = Variable, values_from = Mean)
- return(pivoted_df)
- }
- # Loop through each subject data frame to generate compiled data frames for all cell data per subject, save as separate CSV outputs for cleaned cell data per subject
- for (subject_df_name in names(subject_dfs)) {
- # Get ID from data frame name
- ID <- get_ID(subject_df_name)
- print(ID)
- # Check if a data frame with the subject ID already exists
- if (!exists(ID)) {
- # If it doesn't exist, create a new data frame with the subject ID as its name
- assign(ID, data.frame())
- }
- # Get the filtered and pivoted cell data for the current subject data frame
- filtered_cell_data <- filter_cell_data(subject_dfs[[subject_df_name]])
- # Add the subject ID and cell number
- filtered_cell_data$Subject <- ID
- filtered_cell_data$Cell <- get_cell_num(subject_df_name)
- # Look up the group/genotype in the key data frame, add to the data frame
- group <- key_data$Group[key_data$Subject == ID]
- filtered_cell_data$Group <- group
- # Add the filtered cell data to the subject data frame
- assign(ID, rbind(get(ID), filtered_cell_data))
- # Generate file path for CSV file
- csv_file_path <- file.path(output_dir, paste0(ID, ".csv"))
- # Write the compiled data frame to a CSV file
- write.csv(get(ID), file = csv_file_path, row.names = TRUE)
- }
- # Get the names of all subject data frames in the environment
- df_names <- ls(pattern = "^PTPRZ1_")
- # Retrieve all subject data frames and combine them into one big data frame
- combined_df <- do.call(rbind, mget(df_names))
- # Write combined dataset to CSV
- write.csv(combined_df,
- file.path(output_dir, "combined_data.csv"),
- row.names = FALSE)
- # Measures
- measures <- c("Area", "Volume", "Ellipticity (oblate)", "Ellipticity (prolate)", "Sphericity")
- # Define a vector of measure names - change as needed
- measure_names <- c("Area_Mean", "Volume_Mean", "Ellipticity (oblate)_Mean", "Ellipticity (prolate)_Mean", "Sphericity_Mean")
- # Now calculate subject-level means and SEM on cleaned data
- subject_stats <- combined_df %>%
- group_by(Group, Subject) %>%
- summarize_at(
- vars(all_of(measures)),
- list(
- Mean = ~mean(., na.rm = TRUE),
- SEM = ~sd(., na.rm = TRUE) / sqrt(sum(!is.na(.)))
- ),
- .groups = "drop"
- )
- # Save subject means
- write.csv(subject_stats,
- file.path(output_dir, "subject_means.csv"),
- row.names = FALSE)
- # Perform Shapiro-Wilk normality tests, variance tests, and appropriate t-tests on measures between groups
- # Create an empty data frame to store test results
- results_df <- data.frame(
- Measure = character(),
- Normality_p_WT = numeric(),
- Normality_p_cHet = numeric(),
- Normality_p_cKO = numeric(),
- Residuals_p = numeric(),
- Var_test_p = numeric(),
- Test_Type = character(),
- p_value = numeric(),
- stringsAsFactors = FALSE
- )
- # Create empty post-hoc test storage
- posthoc_df <- data.frame(
- Measure = character(),
- Comparison = character(),
- Test_Type = character(),
- p_value = numeric(),
- adj_p_value = numeric(),
- stringsAsFactors = FALSE
- )
- # Loop over each measure and perform statistical tests
- for (measure in measure_names) {
- # Build dataset for this measure
- temp_df <- subject_stats %>%
- dplyr::select(Group, Subject, all_of(measure)) %>%
- dplyr::rename(Value = !!sym(measure))
- # Ensure Group is a factor
- temp_df$Group <- factor(temp_df$Group, levels = c("WT", "cHet", "cKO"))
- # Extract per-group values for Shapiro-Wilk
- data_WT <- temp_df$Value[temp_df$Group == "WT"]
- data_cHet <- temp_df$Value[temp_df$Group == "cHet"]
- data_cKO <- temp_df$Value[temp_df$Group == "cKO"]
- # Shapiro-Wilk per group
- shapiro_WT <- shapiro.test(data_WT)
- shapiro_cHet <- shapiro.test(data_cHet)
- shapiro_cKO <- shapiro.test(data_cKO)
- # One-way ANOVA
- anova_res <- aov(Value ~ Group, data = temp_df)
- # Shapiro-Wilk on ANOVA residuals
- res_shapiro <- shapiro.test(residuals(anova_res))
- # Levene's test (homogeneity of variance)
- lev_res <- leveneTest(Value ~ Group, data = temp_df)
- lev_p <- lev_res$`Pr(>F)`[1]
- # Decide test
- if (res_shapiro$p.value > 0.05 & lev_p > 0.05) {
- test_type <- "One-way ANOVA"
- p_val <- summary(anova_res)[[1]][["Pr(>F)"]][1]
- # Post-hoc: Tukey HSD
- tukey_res <- TukeyHSD(anova_res)
- tukey_df <- as.data.frame(tukey_res$Group)
- tukey_df$Comparison <- rownames(tukey_df)
- tukey_df <- tukey_df %>%
- dplyr::select(Comparison, `p adj`) %>%
- dplyr::rename(adj_p_value = `p adj`) %>%
- mutate(
- Measure = measure,
- Test_Type = "TukeyHSD",
- p_value = NA # Tukey reports only adjusted p
- )
- posthoc_df <- bind_rows(posthoc_df, tukey_df)
- } else {
- test_type <- "Kruskal-Wallis"
- p_val <- kruskal.test(Value ~ Group, data = temp_df)$p.value
- # Post-hoc: Dunn test with BH correction
- dunn_res <- dunn.test::dunn.test(temp_df$Value, temp_df$Group,
- method = "bh", kw = FALSE, list = TRUE)
- dunn_df <- data.frame(
- Measure = measure,
- Comparison = dunn_res$comparisons,
- Test_Type = "Dunn",
- p_value = dunn_res$P,
- adj_p_value = dunn_res$P.adjusted,
- stringsAsFactors = FALSE
- )
- posthoc_df <- bind_rows(posthoc_df, dunn_df)
- }
- # Save overall test results
- results_df <- rbind(results_df, data.frame(
- Measure = measure,
- Normality_p_WT = shapiro_WT$p.value,
- Normality_p_cHet = shapiro_cHet$p.value,
- Normality_p_cKO = shapiro_cKO$p.value,
- Residuals_p = res_shapiro$p.value,
- Var_test_p = lev_p,
- Test_Type = test_type,
- p_value = p_val
- ))
- }
- # Write results to CSV
- write.csv(results_df, file.path(output_dir, "results_df.csv"), row.names = FALSE)
- write.csv(posthoc_df, file.path(output_dir, "posthoc_results.csv"), row.names = FALSE)
- # Group by Group, then calculate Mean and SEM for all measures to use in plots - change variables as needed
- sub_means <- subject_stats %>%
- group_by(Group) %>%
- summarize_at(vars(Area_Mean, Volume_Mean, `Ellipticity (oblate)_Mean`, `Ellipticity (prolate)_Mean`, Sphericity_Mean),
- list(Mean = ~mean(.), SEM = ~sd(.) / sqrt(n())))
- ## The following will generate plots: adjust graph settings for optimal display as needed
- # Ensure Group is factor
- sub_means$Group <- factor(sub_means$Group, levels = c("WT", "cHet", "cKO"))
- subject_stats$Group <- factor(subject_stats$Group, levels = c("WT", "cHet", "cKO"))
- # Define pairwise comparisons (just for ordering, not calculating)
- my_comparisons <- list(c("WT","cHet"), c("WT","cKO"), c("cHet","cKO"))
- plot_list <- list()
- for (m in measures) {
- mean_col <- paste0(m, "_Mean_Mean")
- sem_col <- paste0(m, "_Mean_SEM")
- subj_col <- paste0(m, "_Mean")
- # Get precomputed pairwise p-values from posthoc_df
- annotations <- posthoc_df %>%
- filter(Measure == paste0(m, "_Mean"), Test_Type %in% c("TukeyHSD","Dunn")) %>%
- # Ensure group order matches your bar plot
- tidyr::separate(Comparison, into = c("group1", "group2"), sep = "-", remove = FALSE) %>%
- mutate(
- y.position = max(sub_means[[mean_col]] + sub_means[[sem_col]], na.rm = TRUE) * c(1.05, 1.10, 1.15),
- p.value = adj_p_value
- ) %>%
- select(group1, group2, y.position, p.value)
- # Build plot
- p <- ggplot(sub_means, aes(x = Group, y = !!sym(mean_col), fill = Group)) +
- geom_bar(stat = "identity", color = "black") +
- geom_errorbar(aes(ymin = !!sym(mean_col) - !!sym(sem_col),
- ymax = !!sym(mean_col) + !!sym(sem_col)),
- width = 0.2, position = position_dodge(width = 0.9)) +
- geom_jitter(data = subject_stats, aes(x = Group, y = !!sym(subj_col)),
- width = 0.15, color = "black", size = 2) +
- stat_pvalue_manual(annotations, label = "p.value", tip.length = 0.03) +
- labs(title = paste("Average", m, "by Group"), x = "Genotype", y = m) +
- theme_minimal() +
- theme(legend.position = "none")
- # Save PNG
- ggsave(file.path(output_dir, paste0(m, "_plot.png")), plot = p, width = 8, height = 6, dpi = 300)
- # Store for PDF
- plot_list[[m]] <- p
- }
- # Save all plots to one PDF
- pdf(file.path(output_dir, "All_measures_plots.pdf"), width = 10, height = 6)
- for (p in plot_list) { print(p) }
- dev.off()
Territory_Analysis_v3.1.R at commit 38c8299, no license · at the source
Overview
- Neuroscience Center, University of North Carolina at Chapel Hill, Chapel Hill, North Carolina 27599
- Departments of Psychology and Neuroscience, University of North Carolina at Chapel Hill, Chapel Hill, North Carolina 27599
- Cell Biology and Physiology, University of North Carolina at Chapel Hill, Chapel Hill, North Carolina 27599
Abstract
Protein tyrosine phosphatase receptor type Z1 (Ptprz1) is one of the most abundantly expressed and enriched genes in astrocytes during development, yet its function in astrocytes is unknown. Using an astrocyte–neuron coculture system, we found that knockdown of Ptprz1 in astrocytes significantly impaired astrocyte branching morphogenesis. To investigate the function of Ptprz1 in astrocytes during brain development, we generated a Ptprz1 conditional knock-out mouse and deleted Ptprz1 from astrocytes postnatally, after the bulk of astrogenesis is complete. At postnatal day 21, we found subtle changes in astrocyte morphology and a reduction in the density of colocalized pre- and postsynaptic excitatory synapse markers across multiple layers of the visual cortex in both male and female mice, suggesting important functions for astrocytic Ptprz1 in both astrocyte morphogenesis and synaptogenesis. Ptprz1 is expressed in several neural cell types, including radial glial stem cells and oligodendrocyte progenitor cells, and regulates critical aspects of neurodevelopment, including neurite outgrowth, neuronal differentiation, myelination, and extracellular matrix development. Moreover, altered Ptprz1 expression is associated with schizophrenia and glioblastoma. Therefore, this mouse model is a valuable resource for investigating cell-type-specific Ptprz1 function in numerous neurodevelopmental and neuropathological mechanisms.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above, with 2 matches between paragraphs and lines of code.
BaldwinLabUNC/Astrocyte_morphology
38c8299ad0eb7a6ea890b3919b1526c4ef8950a9, 2 September 2026Availability: 1 check, the latest on 29 September 2026: the link answers
- 29 September 2026: the link answers
4 files
- Coble PCA.R, R, 330 lines
- Territory_Analysis_v2.R, R, 313 lines
- Territory_Analysis_v3.1.
R , R, 356 lines, 2 matches - README.md, Text, 1 line
The paper's code and data availability statement is in the Data section.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 3 scripts, each with its path and the digest of its content;
- 2 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
No dataset and no data link were found in the paper.
Data and code availability
All custom code available at https://
Reproduced under the paper's license (CC BY), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 29 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 5 authors, 4 keywords, 16 MeSH terms, 6 funders, 67 references, 34 RRIDs.
Cite
This paper
Eaker, A. R., Spence-Osorio, H. E., Coble, M. G., Dogan, B. C., & Baldwin, K. T. (2026). Astrocyte-Derived PTPRZ1 Regulates Excitatory Synapse Density in the Mouse Cortex. eNeuro, 13(4), ENEURO.0386-25.2026. https://
BibTeX
@article{eaker2026astroc
author = {Eaker, Alex R and Spence-Osorio, Hayli E and Coble, Madelyn G and Dogan, Breana C and Baldwin, Katherine T},
title = {{Astrocyte-Derived PTPRZ1 Regulates Excitatory Synapse Density in the Mouse Cortex}},
journal = {eNeuro},
year = {2026},
month = apr,
volume = {13},
number = {4},
pages = {ENEURO.0386--25.2026},
publisher = {Society for Neuroscience},
issn = {2373-2822},
doi = {10.1523/
url = {https://
pmid = {41942273},
pmcid = {PMC13102477}
}
RIS
TY - JOUR
AU - Eaker, Alex R
AU - Spence-Osorio, Hayli E
AU - Coble, Madelyn G
AU - Dogan, Breana C
AU - Baldwin, Katherine T
TI - Astrocyte-Derived PTPRZ1 Regulates Excitatory Synapse Density in the Mouse Cortex
T2 - eNeuro
J2 - eNeuro
PY - 2026
DA - 2026/
VL - 13
IS - 4
SP - ENEURO.0386
EP - 25.2026
SN - 2373-2822
PB - Society for Neuroscience
DO - 10.1523/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1523/
"type": "article-journal",
"title": "Astrocyte-Derived PTPRZ1 Regulates Excitatory Synapse Density in the Mouse Cortex",
"container-title": "eNeuro",
"author": [
{
"family": "Eaker",
"given": "Alex R"
},
{
"family": "Spence-Osorio",
"given": "Hayli E"
},
{
"family": "Coble",
"given": "Madelyn G"
},
{
"family": "Dogan",
"given": "Breana C"
},
{
"family": "Baldwin",
"given": "Katherine T"
}
],
"container-title-short":
"volume": "13",
"issue": "4",
"page": "ENEURO.0386-25.2026",
"DOI": "10.1523/
"PMID": "41942273",
"PMCID": "PMC13102477",
"ISSN": "2373-2822",
"publisher": "Society for Neuroscience",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
22
]
]
}
}
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/s41467-026-76132-z [code]
- ATP13A4 gates extracellular polyamine levels to control excitatory synaptogenesis.Journal: Nature communicationsIn common: car, ggplot2, tidyverse, mouse, 10 references
- [2] doi:10.1523/jneurosci.2002-24.2026
- Astrocyte TrkB.T1 Deficiency Disrupts Glutamatergic Synaptogenesis and Astrocyte-Synapse Interactions.Journal: The Journal of neuroscience : the official journal of the Society for NeuroscienceIn common: mouse, cellular / molecular, 7 references
- [3] doi:10.1038/s41593-026-02354-5 [code]
- Focal astrocyte loss reveals nuclear translocation during lesion repopulation.Journal: Nature neuroscienceIn common: ggpubr, patchwork, ggplot2, 1 other tool, mouse, cellular / molecular, 3 references
- [4] doi:10.1007/s12035-026-05859-z [code]
- Uncovering Spatiotemporal and Functional Dynamics of Long Non-coding RNAs During Alzheimer's Progression in the Human Brain at Single-Cell Resolution.Journal: Molecular neurobiologyIn common: rstatix, ggpubr, patchwork, 2 other tools, cellular / molecular, 2 references
- [5] doi:10.1186/s12951-026-04599-5 [code]
- Long-term exposure to polystyrene microplastics exacerbates seizure symptoms via lipid metabolic disruption and ferroptosis: insights from multi-omics analyses.Journal: Journal of nanobiotechnologyIn common: rstatix, car, ggpubr, 3 other tools, mouse, cellular / molecular
- [6] doi:10.3390/ijms27135713 [code]
- Chronic Administration of Marinobufagenin in Mice Causes Hyperlocomotion and Decrease in Anxiety by Altering Monoamine Turnover Unaccompanied by Motor Deficits or Oxidative Stress.Journal: International journal of molecular sciencesIn common: rstatix, car, ggpubr, 3 other tools, mouse, cellular / molecular
- [7] doi:10.1038/s41467-026-75697-z
- Delayed astrocyte development impairs Sema6a-Plxna2/
4-mediated astrocyte-neuron crosstalk and causes depressive-like behavior. Journal: Nature communicationsIn common: mouse, 5 references - [8] doi:10.1038/s41467-026-71919-6 [code]
- Suppression of astrocyte BMP signaling improves molecular signatures and functional deficits in a fragile X syndrome mouse model.Journal: Nature communicationsIn common: ggplot2, tidyverse, mouse, cellular / molecular, 4 references
- [9] doi:10.1038/s41586-026-10512-9 [code]
- Astrocyte glucocorticoid receptor signalling restricts neuronal plasticity.Journal: NatureIn common: ggpubr, ggplot2, tidyverse, mouse, cellular / molecular, 3 references
- [10] doi:10.1126/sciadv.aec9291 [code]
- Computational mechanisms of perception in autism revealed using games inspired by rodent operant tasks.Journal: Science advancesIn common: rstatix, car, ggpubr, 3 other tools
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 1 repository of the authors' code, each at its verified commit and with its license, 3 scripts, and 2 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:05ef7553660687f5…
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.
