Single-cell multiomic approaches define a gradual, spatially regulated epigenetic and transcriptional transition from embryonic to adult neural stem cells.
The 2 matches
- [1] § STAR★Methods › Method details › Xenium data analysis ↔ vignettes/Seurat.Rmd, lines 227–236 · score 0.67 · FindNeighbors, FindClusters, dimensionality reduction, resolutions, Seurat, embeddings
- [2] § STAR★Methods › Method details › Batch correction of scRNA-seq data ↔ vignettes/Seurat.Rmd, lines 227–236 · score 0.54 · FindNeighbors, FindClusters, resolutions, Seurat, embeddings, Harmony
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
R Markdown · 275 lines · 13 KB · no license · 2 matches
- ---
- title: "Using harmony in Seurat"
- output:
- rmarkdown::html_vignette:
- code_folding: show
- vignette: >
- %\VignetteIndexEntry{Using harmony in Seurat}
- %\VignetteEngine{knitr::rmarkdown}
- %\VignetteEncoding{UTF-8}
- ---
- ```{r, include = FALSE}
- knitr::opts_chunk$set(
- collapse = TRUE,
- comment = "#>"
- )
- ```
- ```{r setup, message=FALSE, warning=FALSE}
- library(harmony)
- library(Seurat)
- library(dplyr)
- library(cowplot)
- ```
- # Introduction
- This tutorial describes how to use harmony in Seurat v5 single-cell analysis workflows. `RunHarmony()` is a generic function is designed to interact with Seurat objects. This vignette will walkthrough basic workflow of Harmony with Seurat objects. Also, it will provide some basic downstream analyses demonstrating the properties of harmonized cell embeddings and a brief explanation of the exposed algorithm parameters.
- Install Harmony from CRAN with standard commands.
- ```{r eval=FALSE}
- install.packages('harmony')
- ```
- # Generating the dataset
- For this demo, we will be aligning two groups of PBMCs [Kang et al., 2017](https://doi.org/10.1038/nbt.4042). In this experiment, PBMCs are in stimulated and control conditions. The stimulated PBMC group was treated with interferon beta.
- ## Create SeuratObject
- ```{r}
- ## Source required data
- data("pbmc_stim")
- pbmc <- CreateSeuratObject(counts = cbind(pbmc.stim, pbmc.ctrl), project = "PBMC", min.cells = 5)
- ## Separate conditions
- [email hidden]$stim <- c(rep("STIM", ncol(pbmc.stim)), rep("CTRL", ncol(pbmc.ctrl)))
- ```
- ## (Optional) Download original data
- The example above contains only two thousand cells. The full [Kang et al., 2017](https://doi.org/10.1038/nbt.4042) dataset is deposited in the [GEO](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE96583). This analysis uses GSM2560248 and GSM2560249 samples from [GSE96583_RAW.tar](https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE96583&format=file) file and the [GSE96583_batch2.genes.tsv.gz](https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE96583&format=file&file=GSE96583%5Fbatch2%2Egenes%2Etsv%2Egz) gene file.
- ```{r eval = FALSE, class.source='fold-hide'}
- library(Matrix)
- ## Download and extract files from GEO
- ##setwd("/path/to/downloaded/files")
- genes = read.table("GSE96583_batch2.genes.tsv.gz", header = FALSE, sep = "\t")
- pbmc.ctrl.full = readMM("GSM2560248_2.1.mtx.gz")
- colnames(pbmc.ctrl.full) = paste0(read.table("GSM2560248_barcodes.tsv.gz", header = FALSE, sep = "\t")[,1], "-1")
- rownames(pbmc.ctrl.full) = genes$V1
- pbmc.stim.full = readMM("GSM2560249_2.2.mtx.gz")
- colnames(pbmc.stim.full) = paste0(read.table("GSM2560249_barcodes.tsv.gz", header = FALSE, sep = "\t")[,1], "-2")
- rownames(pbmc.stim.full) = genes$V1
- library(Seurat)
- pbmc <- CreateSeuratObject(counts = cbind(pbmc.stim.full, pbmc.ctrl.full), project = "PBMC", min.cells = 5)
- [email hidden]$stim <- c(rep("STIM", ncol(pbmc.stim.full)), rep("CTRL", ncol(pbmc.ctrl.full)))
- ```
- # Running Harmony
- Harmony works on an existing matrix with cell embeddings and outputs its transformed version with the datasets aligned according to some user-defined experimental conditions. By default, harmony will look up the `pca` cell embeddings and use these to run harmony. Therefore, it assumes that the Seurat object has these embeddings already precomputed.
- ## Calculate PCA cell embeddings
- Here, using `Seurat::NormalizeData()`, we will be generating a union of highly variable genes using each condition (the control and stimulated cells). These features are going to be subsequently used to generate the 20 PCs with `Seurat::RunPCA()`.
- ```{r}
- pbmc <- pbmc %>%
- NormalizeData(verbose = FALSE)
- VariableFeatures(pbmc) <- split(row.names([email hidden]), [email hidden]$stim) %>% lapply(function(cells_use) {
- pbmc[,cells_use] %>%
- FindVariableFeatures(selection.method = "vst", nfeatures = 2000) %>%
- VariableFeatures()
- }) %>% unlist %>% unique
- pbmc <- pbmc %>%
- ScaleData(verbose = FALSE) %>%
- RunPCA(features = VariableFeatures(pbmc), npcs = 20, verbose = FALSE)
- ```
- ## Perform an integrated analysis using harmony
- To run harmony on Seurat object after it has been normalized, only one argument needs to be specified which contains the batch covariate located in the metadata. For this vignette, further parameters are specified to align the dataset but the minimum parameters are shown in the snippet below:
- ```{r, eval=FALSE}
- ## run harmony with default parameters
- pbmc <- pbmc %>% RunHarmony("stim")
- ## is equivalent to:
- pbmc <- RunHarmony(pbmc, "stim")
- ```
- Here, we will be running harmony with some indicative parameters and plotting the convergence plot to illustrate some of the under the hood functionality.
- ```{r, fig.width = 4, fig.height = 3, fig.align = "center", out.width="50%", fig.cap="By setting `plot_converge=TRUE`, harmony will generate a plot with its objective showing the flow of the integration. Each point represents the cost measured after a clustering round. Different colors represent different Harmony iterations which is controlled by `max_iter` (assuming that early_stop=FALSE). Here `max_iter=10` and up to 10 correction steps are expected. However, `early_stop=TRUE` so harmony will stop after the cost plateaus."}
- pbmc <- pbmc %>%
- RunHarmony("stim", plot_convergence = TRUE, nclust = 50, max_iter = 10, early_stop = T)
- ```
- # Harmony API parameters on Seurat objects
- `RunHarmony` has several parameters accessible to users which are outlined below.
- #### `object` (required)
- The Seurat object. This vignette assumes Seurat objects are version 5.
- #### `group.by.vars` (required)
- A character vector that specifies all the experimental covariates to be corrected/harmonized by the algorithm.
- When using `RunHarmony()` with Seurat, harmony will look up the `group.by.vars` metadata fields in the Seurat Object metadata.
- For example, given the `pbmc[["stim"]]` exists as the stim condition, setting `group.by.vars="stim"` will perform integration of these samples accordingly. If you want to integrate on another variable, it needs to be present in Seurat object's meta.data.
- To correct for several covariates, specify them in a vector: `group.by.vars = c("stim", "new_covariate")`.
- #### `reduction.use`
- The cell embeddings to be used for the batch alignment. This parameter assumes that a reduced dimension already exists in the reduction slot of the Seurat object. By default, the `pca` reduction is used.
- #### `dims.use`
- Optional parameter which can use a name vector to select specific dimensions to be harmonized.
- ### Algorithm parameters
- {width=100%}
- #### `nclust`
- is a positive integer. Under the hood, harmony applies k-means soft-clustering. For this task, `k` needs to be determined. `nclust` corresponds to `k`. The harmonization results and performance are not particularly sensitive for a reasonable range of this parameter value. If this parameter is not set, harmony will autodetermine this based on the dataset size with a maximum cap of 200. For dataset with a vast amount of different cell types and batches this pamameter may need to be determined manually.
- #### `sigma`
- a positive scalar that controls the soft clustering probability assignment of single-cells to different clusters. Larger values will assign a larger probability to distant clusters of cells resulting in a different correction profile. Single-cells are assigned to clusters by their euclidean distance $d$ to some cluster center $Y$ after cosine normalization which is defined in the range [0,4]. The clustering probability of each cell is calculated as $e^{-\frac{d}{\sigma}}$ where $\sigma$ is controlled by the `sigma` parameter. Default value of `sigma` is 0.1 and it generally works well since it defines probability assignment of a cell in the range $[e^{-40}, e^0]$. Larger values of `sigma` restrict the dynamic range of probabilities that can be assigned to cells. For example, `sigma=1` will yield a probabilities in the range of $[e^{-4}, e^0]$.
- #### `theta`
- `theta` is a positive scalar vector that determines the coefficient of harmony's diversity penalty for each corrected experimental covariate. In challenging experimental conditions, increasing theta may result in better integration results. Theta is an expontential parameter of the diversity penalty, thus setting `theta=0` disables this penalty while increasing it to greater values than 1 will perform more aggressive corrections in an expontential manner. By default, it will set `theta=2` for each experimental covariate.
- #### `max_iter`
- The number of correction steps harmony will perform before completing the data set integration. In general, more iterations than necessary increases computational runtime especially which becomes evident in bigger datasets. Setting `early_stop=TRUE` may reduce the actual number of correction steps which will be smaller than `max_iter`.
- #### `early_stop`
- Under the hood, harmony minimizes its objective function through a series of clustering and integration tests. By setting `early_stop=TRUE`, when the objective function is less than `1e-4` after a correction step harmony exits before reaching the `max_iter` correction steps. This parameter can drastically reduce run-time in bigger datasets.
- #### `.options`
- A set of internal algorithm parameters that can be overriden. For advanced users only.
- ### Seurat specific parameters
- These parameters are Seurat-specific and do not affect the flow of the algorithm.
- #### `project.dim`
- Toggle-like parameter, by default `project.dim=TRUE`. When enabled, `RunHarmony()` calculates genomic feature loadings using Seurat's `ProjectDim()` that correspond to the harmonized cell embeddings.
- #### `reduction.save`
- The new Reduced Dimension slot identifier. By default, `reduction.save="harmony"`. This option allows several independent runs of harmony to be retained in the appropriate slots in the SeuratObjects. It is useful if you want to try Harmony with multiple parameters and save them as e.g. 'harmony_theta0', 'harmony_theta1', 'harmony_theta2'.
- ### Miscellaneous parameters
- These parameters help users troubleshoot harmony.
- #### `plot_convergence`
- Option that plots the convergence plot after the execution of the algorithm. By default `FALSE`. Setting it to `TRUE` will collect harmony's objective value and plot it allowing the user to troubleshoot the flow of the algorithm and fine-tune the parameters of the dataset integration procedure.
- ### Accessing the data
- `RunHarmony()` returns the Seurat object which contains the harmonized cell embeddings in a slot named **harmony**. This entry can be accessed via `pbmc@reductions$harmony`. To access the values of the cell embeddings we can also use:
- ```{r}
- harmony.embeddings <- Embeddings(pbmc, reduction = "harmony")
- ```
- #Visualize harmony results
- After Harmony integration, we should inspect the quality of the harmonization and contrast it with the unharmonized algorithm input. Ideally, cells from different conditions will align along the Harmonized PCs. If they are not, you could increase the *theta* value above to force a more aggressive fit of the dataset and rerun the workflow.
- ```{r, fig.width=7, fig.height=3, out.width="100%", fig.align="center", fig.cap="Evaluate harmonization of stim parameter in the harmony generated cell embeddings"}
- p1 <- DimPlot(object = pbmc, reduction = "harmony", pt.size = .1, group.by = "stim")
- p2 <- VlnPlot(object = pbmc, features = "harmony_1", group.by = "stim", pt.size = .1)
- plot_grid(p1,p2)
- ```
- Plot Genes correlated with the Harmonized PCs
- ```{r, fig.width = 6, fig.height=3, out.width="100%"}
- DimHeatmap(object = pbmc, reduction = "harmony", cells = 500, dims = 1:3)
- ```
- # Using harmony embeddings for dimensionality reduction in Seurat
- The harmonized cell embeddings generated by harmony can be used for further integrated analyses. In this workflow, the Seurat object contains the harmony `reduction` modality name in the method that requires it.
- ## Perform clustering using the harmonized vectors of cells
- ```{r}
- pbmc <- pbmc %>%
- FindNeighbors(reduction = "harmony") %>%
- FindClusters(resolution = 0.5)
- ```
- ## TSNE dimensionality reduction
- ```{r, fig.width=5, fig.height=2.5, fig.align="center", fig.cap="t-SNE Visualization of harmony embeddings"}
- pbmc <- pbmc %>%
- RunTSNE(reduction = "harmony")
- p1 <- DimPlot(pbmc, reduction = "tsne", group.by = "stim", pt.size = .1)
- p2 <- DimPlot(pbmc, reduction = "tsne", label = TRUE, pt.size = .1)
- plot_grid(p1, p2)
- ```
- One important observation is to assess that the harmonized data contain biological states of the cells. Therefore by checking the following genes we can see that biological cell states are preserved after harmonization.
- ```{r, fig.width = 7, fig.height = 7, out.width="100%", fig.cap="Expression of gene panel heatmap in the harmonized PBMC dataset"}
- FeaturePlot(object = pbmc, features= c("CD3D", "SELL", "CREM", "CD8A", "GNLY", "CD79A", "FCGR3A", "CCL2", "PPBP"),
- min.cutoff = "q9", cols = c("lightgrey", "blue"), pt.size = 0.5)
- ```
- ## UMAP
- Very similarly with TSNE we can run UMAP by passing the harmony reduction in the function.
- ```{r, fig.width=5, fig.height=2.5, fig.align="center", fig.cap="UMAP Visualization of harmony embeddings"}
- pbmc <- pbmc %>%
- RunUMAP(reduction = "harmony", dims = 1:20)
- p1 <- DimPlot(pbmc, reduction = "umap", group.by = "stim", pt.size = .1)
- p2 <- DimPlot(pbmc, reduction = "umap", label = TRUE, pt.size = .1)
- plot_grid(p1, p2)
- ```
- ```{r}
- sessionInfo()
- ```
Seurat.Rmd at commit df19af2, no license · at the source
Overview
- Michael Smith Laboratories, University of British Columbia, Vancouver, BC V6T 1Z4, Canada
- Program in Neurosciences and Mental Health, Hospital for Sick Children, Toronto, ON M5G 0A4, Canada
- Institute of Medical Science, University of Toronto, Toronto, ON M5S 1A8, Canada
- Department of Molecular Genetics, University of Toronto, Toronto, ON M5S 1A8, Canada
- Department of Medical Genetics, University of British Columbia, Vancouver, BC V6T 1Z3, Canada
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.
Repository
Its files are read in the Code ↔ Paper reader above, with 2 matches between paragraphs and lines of code.
immunogenomics/harmony
df19af23ae0639bd6ea2da63898f973f08c85862, 5 June 2026Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
32 files
- R/
RcppExports.R , R, 15 lines - R/
RunHarmony.R , R, 194 lines - R/
data.R , R, 31 lines - R/
harmony-package.R , R, 41 lines - R/
harmony_option.R , R, 132 lines - R/
ui.R , R, 310 lines - R/
utils.R , R, 141 lines - R/
zzz.R , R, 23 lines - doc/
Seurat.R , R, 126 lines - doc/
Seurat.Rmd , R, 279 lines - doc/
detailedWalkthrough.R , R, 504 lines - doc/
detailedWalkthrough.Rmd , R, 915 lines - doc/
parameters.R , R, 36 lines - doc/
parameters.Rmd , R, 84 lines - doc/
quickstart.R , R, 66 lines - doc/
quickstart.Rmd , R, 143 lines - src/
RcppExports.cpp , C++, 70 lines - src/
harmony.cpp , C++, 709 lines - src/
harmony.h , C/C++, 72 lines - src/
harmony_types.h , C/C++, 2 lines - src/
timer.cpp , C++, 30 lines - src/
timer.h , C/C++, 32 lines - src/
types.h , C/C++, 19 lines - src/
utils.cpp , C++, 186 lines - src/
utils.h , C/C++, 21 lines - tests/
testthat.R , R, 4 lines - tests/
testthat/ , R, 56 linestest_integration.R - tests/
testthat/ , R, 55 linestest_two_variable.R - vignettes/
Seurat.Rmd , R, 275 lines, 2 matches - vignettes/
detailedWalkthrough.Rmd , R, 934 lines - vignettes/
quickstart.Rmd , R, 141 lines - README.md, Text, 95 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:
- 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 31 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
Datasets cited
- geo:GSE317356, at NCBI GEO; found in “Data and code availability”
Code and data availability statement
The paper has a code and 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 GSE317356
Read it in the paper: doi.org/10.1016/j.stemcr.2026.102967.
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, 6 authors, 9 keywords, 15 MeSH terms, 1 funder, 59 references, 15 RRIDs.
Cite
This paper
Wang, B. S., Karamboulas, K., Tahmasian, N., Dennis, D. J., Kaplan, D. R., & Miller, F. D. (2026). Single-cell multiomic approaches define a gradual, spatially regulated epigenetic and transcriptional transition from embryonic to adult neural stem cells. Stem cell reports, 21(7), 102967. https://
BibTeX
@article{wang2026single,
author = {Wang, Beatrix S and Karamboulas, Konstantina and Tahmasian, Nareh and Dennis, Daniel J and Kaplan, David R and Miller, Freda D},
title = {{Single-cell multiomic approaches define a gradual, spatially regulated epigenetic and transcriptional transition from embryonic to adult neural stem cells}},
journal = {Stem cell reports},
year = {2026},
month = jun,
volume = {21},
number = {7},
pages = {102967},
publisher = {Elsevier},
issn = {2213-6711},
doi = {10.1016/
url = {https://
pmid = {42314674},
pmcid = {PMC13385433}
}
RIS
TY - JOUR
AU - Wang, Beatrix S
AU - Karamboulas, Konstantina
AU - Tahmasian, Nareh
AU - Dennis, Daniel J
AU - Kaplan, David R
AU - Miller, Freda D
TI - Single-cell multiomic approaches define a gradual, spatially regulated epigenetic and transcriptional transition from embryonic to adult neural stem cells
T2 - Stem cell reports
J2 - Stem Cell Reports
PY - 2026
DA - 2026/
VL - 21
IS - 7
SP - 102967
SN - 2213-6711
PB - Elsevier
DO - 10.1016/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1016/
"type": "article-journal",
"title": "Single-cell multiomic approaches define a gradual, spatially regulated epigenetic and transcriptional transition from embryonic to adult neural stem cells",
"container-title": "Stem cell reports",
"author": [
{
"family": "Wang",
"given": "Beatrix S"
},
{
"family": "Karamboulas",
"given": "Konstantina"
},
{
"family": "Tahmasian",
"given": "Nareh"
},
{
"family": "Dennis",
"given": "Daniel J"
},
{
"family": "Kaplan",
"given": "David R"
},
{
"family": "Miller",
"given": "Freda D"
}
],
"container-title-short":
"volume": "21",
"issue": "7",
"page": "102967",
"DOI": "10.1016/
"PMID": "42314674",
"PMCID": "PMC13385433",
"ISSN": "2213-6711",
"publisher": "Elsevier",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
6,
18
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1016/j.xcrm.2026.102766 [code]
- A longitudinal single-cell and spatial multiomic atlas of pediatric high-grade glioma.Journal: Cell reports. MedicineIn common: Harmony, SingleCellExperiment, Seurat, 5 other tools, genetics / omics, 5 references
- [2] doi:10.1038/s41597-026-07185-4 [code]
- A multi-center cross-platform single-cell multimodal atlas of the mouse cerebral cortex.Journal: Scientific dataIn common: Harmony, Seurat, cowplot, 4 other tools, genetics / omics, mouse, 5 references
- [3] doi:10.1101/gr.280436.125 [code]
- Cell type-specific gene regulatory atlas prioritizes drug targets and repurposable medicines in Alzheimer's disease.Journal: Genome researchIn common: SingleCellExperiment, Seurat, cowplot, 3 other tools, genetics / omics, 5 references
- [4] doi:10.1371/journal.pcbi.1014424 [code]
- Combinatorial multiomic analysis from a pedigree of Sox10Dom Hirschsprung mice identifies multiple high confidence candidate modifiers of Enteric Nervous System development.Journal: PLoS computational biologyIn common: Harmony, Seurat, cowplot, 4 other tools, genetics / omics, mouse, 4 references
- [5] doi:10.1093/brain/awaf426 [code]
- Single-nucleus multiome shows motor neuron glutamate overactivation in amyotrophic lateral sclerosis.Journal: Brain : a journal of neurologyIn common: Harmony, SingleCellExperiment, Seurat, 4 other tools, genetics / omics, 3 references
- [6] doi:10.1038/s41467-026-70232-6 [code]
- Gene expression dynamics of human and mouse craniofacial development at the single-cell level.Journal: Nature communicationsIn common: Harmony, SingleCellExperiment, Seurat, 5 other tools, genetics / omics, mouse, 2 references
- [7] doi:10.1038/s41586-026-10612-6 [code]
- Acquired genetic and cell-state changes in IDH-mutant glioma progression.Journal: NatureIn common: Harmony, SingleCellExperiment, Seurat, 5 other tools, 2 references
- [8] doi:10.1002/imt2.70163 [code]
- Spatial multi-omics unveils sphingolipid metabolic reprogramming within the retinal pathological niche.Journal: iMetaIn common: Harmony, SingleCellExperiment, Seurat, 5 other tools, genetics / omics, mouse, 1 reference
- [9] doi:10.1016/j.cell.2026.05.026 [code]
- The critical role of the endogenous immune compartment after CAR T cell therapy in recurrent GBM.Journal: CellIn common: Harmony, SingleCellExperiment, Seurat, 5 other tools, genetics / omics, 2 references
- [10] doi:10.1038/s41593-026-02367-0 [code]
- A reproducible three-dimensional model of human brain tissue to investigate physiological and disease-associated microglia phenotypes.Journal: Nature neuroscienceIn common: Harmony, SingleCellExperiment, Seurat, 5 other tools, 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: 1 repository of the authors' code, each at its verified commit and with its license, 31 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:83cab1b7810e31e5…
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.
