The association between the error-related negativity and self-control is moderated by impulsivity and compulsivity.
The 7 matches
- [1] § Results › The association between the ERN and self-control is diminished in high compulsivity and impulsivity ↔ Data and Code/SCF_analysis_GLM.R, lines 54 to 141 · score 0.73 · ERN loss, ERN gain, way interaction, motivational contexts, Simple slopes, predicted · Report a mismatch
- [2] § Methods › Data analysis › Profile regression to explore potential subgroups differing in self-control ↔ Data and Code/SCF_analysis_profileRegression.R, lines 43 to 82 · score 0.73 · fviz_nbclust, profile regression, PReMiuM, pam, medoids, covariates · Report a mismatch
- [3] § Methods › Data analysis ↔ Data and Code/Enactment_analysis_MLM.R, lines 167 to 232 · score 0.61 · Confidence Intervals, lme4, residual, BOBYQA, glmer, binomial · Report a mismatch
- [4] § Results › Cluster analysis reveals a compulsive/worry profile associated with increased self-control failures ↔ Data and Code/SCF_analysis_profileRegression.R, lines 43 to 82 · score 0.58 · profile regression, medoids, somatic, optimal, routine, premeditation · Report a mismatch
- [5] § Methods › Data analysis › Profile regression to explore potential subgroups differing in self-control ↔ Data and Code/SCF_analysis_profileRegression.R, lines 270 to 309 · score 0.56 · credible intervals, posterior distribution, regression, Profile, cluster · Report a mismatch
- [6] § Methods ↔ Data and Code/SCF_analysis_profileRegression.R, lines 1 to 41 · score 0.54 · COHS, STICSA, UPPS, somatic, routine, premeditation · Report a mismatch
- [7] § Results › Cluster analysis reveals a compulsive/worry profile associated with increased self-control failures ↔ Data and Code/SCF_analysis_profileRegression.R, lines 270 to 309 · score 0.50 · credible intervals, Posterior distribution, Empirical, Risk, plausible, cluster · Report a mismatch
Paper
Loaded from Europe PMC by your browser; OSCR does not store it: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
R · 312 lines · 12 KB · no license · 5 matches
- # set directory
- setwd(" ")
- # load data
- library(readxl)
- library(tidyverse)
- EMAdata <- read.csv("EMAdata.csv")
- QUESTdata <- readxl::read_excel("QUESTdata.xlsx")
- # check data
- table((EMAdata$filename) == (QUESTdata$name))
- # make SCF variable
- EMAdata$SCF <- EMAdata$ConEnact/(EMAdata$All - EMAdata$Miss)
- # make new data
- RegressionData <- data.frame(SCF=rep(0, 221))
- RegressionData$SCF <- EMAdata$SCF
- RegressionData$Imp <- QUESTdata$BIS_SumScore
- RegressionData$Comp <- QUESTdata$OCI_SumScore
- RegressionData$UPPS_urgency <- QUESTdata$UPPS_Urge
- RegressionData$UPPS_premeditation <- QUESTdata$UPPS_Prem
- RegressionData$UPPS_perseverance <- QUESTdata$UPPS_Pers
- RegressionData$UPPS_sensation <- QUESTdata$UPPS_Sens
- RegressionData$DASS_Depression <- QUESTdata$DASS_Depression_Score
- RegressionData$DASS_Anxiety <- QUESTdata$DASS_Anxiety_Score
- RegressionData$STICSA_cognitive <- QUESTdata$STICSA_Cog
- RegressionData$STICSA_somatic <- QUESTdata$STICSA_Som
- RegressionData$PSWQ <- QUESTdata$PSWQ
- RegressionData$COHS_automaticity <- QUESTdata$COHS_Auto
- RegressionData$COHS_routine <- QUESTdata$COHS_Rout
- RegressionData$BISBAS_BIS <- QUESTdata$BIS_BISBAS
- RegressionData$BISBAS_BAS <- QUESTdata$BAS_BISBAS
- # Load the remotes package and install PReMiuM from GitHub
- #install.packages("remotes") # Install remotes if not already installed
- #remotes::install_github("silvialiverani/PReMiuM-R-package")
- # Load the PReMiuM package
- # https://premium-r-package.readthedocs.io/en/latest/manual/
- library(PReMiuM)
- set.seed(2024)
- # Define profiles and covariates
- # PReMiuM requires specific data structures for profile regression, including defining profiles and covariates.
- response <- "SCF" # response variable
- covariates <- c("Imp", "Comp",
- "UPPS_urgency", "UPPS_premeditation", "UPPS_perseverance", "UPPS_sensation",
- "DASS_Depression", "DASS_Anxiety", #"DASS_Stress",
- "STICSA_cognitive", "STICSA_somatic",
- "PSWQ", "COHS_automaticity", "COHS_routine",
- "BISBAS_BIS", "BISBAS_BAS") # covariates
- # Specify the variable types (e.g., "Bernoulli" for binary response, "Normal" for continuous)
- var_types <- c("Normal") # Adjust based on your response variable type
- # Create covariate matrix
- covariate_matrix <- as.matrix(RegressionData[covariates])
- ###############################################################################################
- ###############################################################################################
- # step 0: run pam() from cluster package to determine optimal number of cluster
- library(cluster)
- library(factoextra)
- cluster_dataframe <- scale(RegressionData)#[,c(1,3:17)])
- fviz_nbclust(cluster_dataframe, pam, method ="silhouette")+theme_minimal()
- fviz_nbclust(cluster_dataframe, pam, method ="gap_stat")+theme_minimal()
- opt_pam <- pam(cluster_dataframe, k=2, metric = "euclidean")
- ClusteredRegData <- cbind(RegressionData[,c(1,3:17)], opt_pam$clustering)
- head(ClusteredRegData)
- opt_pam$medoids
- fviz_cluster(opt_pam,
- palette =c("#007892","#D9455F"),
- ellipse.type ="euclid",
- repel =TRUE,
- ggtheme =theme_minimal())
- # optimal clustering: k = 2
- ###############################################################################################
- ###############################################################################################
- # step 1.1 - max 7 clusters
- # Perform profile regression
- # Use the profileReg function from the PReMiuM package to perform profile regression.
- # Run the MCMC algorithm
- runInfoObj <- profRegr(
- yModel = "Normal",
- xModel = "Normal",
- nSweeps = 100000,
- nBurn = 50000,
- data = RegressionData,
- output = "output",
- covNames = covariates,
- outcome = response,
- nFilter = 10,
- nClusInit = 20,
- varSelectType = "Continuous", #"BinaryCluster", #
- seed = 2024
- )
- # Calculate dissimilarity matrix
- dissimObj <- calcDissimilarityMatrix(runInfoObj)
- # calculate optimal clustering
- clusObj <- calcOptimalClustering(dissimObj, maxNClusters = 7, useLS=F)
- # Extract cluster assignments
- cluster_assignments <- clusObj$clustering
- # Calculate cluster sizes
- cluster_sizes <- table(cluster_assignments)
- print(cluster_sizes)
- # Calculate average risk and profiles
- riskProfileObj <- calcAvgRiskAndProfile(clusObj) #, includeFixedEffects = TRUE)
- # visualize
- clusterOrderObj <- plotRiskProfile(riskProfileObj,"1 - summary-1.png")
- # variable slecetion plots
- rho <- summariseVarSelectRho(runInfoObj)
- # Figure 3 (simple version)
- pdf("1 - varSelect-240710.pdf")
- par(mfrow = c(5, 2))
- for (k in 1:runInfoObj$nCovariates) {
- hist(rho$rho[, k], xlim = c(0, 1), main = "", xlab="")
- }
- dev.off()
- par(mfrow = c(1, 1))
- # step 1.2 - k = 2 clusters
- # Perform profile regression
- # Use the profileReg function from the PReMiuM package to perform profile regression.
- # calculate optimal clustering
- clusObj1.2 <- calcOptimalClustering(dissimObj, maxNClusters = 2, useLS=F)
- # Extract cluster assignments
- cluster_assignments1.2 <- clusObj1.2$clustering
- # Calculate cluster sizes
- cluster_sizes1.2 <- table(cluster_assignments1.2)
- print(cluster_sizes1.2)
- # Calculate average risk and profiles
- riskProfileObj1.2 <- calcAvgRiskAndProfile(clusObj1.2)
- # visualize
- clusterOrderObj1.2 <- plotRiskProfile(riskProfileObj1.2,"1 - summary-2clusters.png")
- ###############################################################################################
- ###############################################################################################
- # step 2 - remove covariates without explanatory properties: Imp, UPPs, DASS_D, STICSA, COHS, BISBAS
- covariates <- c("Comp",
- "DASS_Anxiety", #"DASS_Stress",
- "PSWQ") # covariates
- # step 2.1 - max 7 clusters
- # Perform profile regression
- # Use the profileReg function from the PReMiuM package to perform profile regression.
- # Run the MCMC algorithm
- runInfoObj2 <- profRegr(
- yModel = "Normal",
- xModel = "Normal",
- nSweeps = 100000,
- nBurn = 50000,
- data = RegressionData,
- output = "output",
- covNames = covariates,
- outcome = response,
- nFilter = 10,
- nClusInit = 20,
- varSelectType = "Continuous", #"BinaryCluster", #
- seed = 2024
- )
- # Calculate dissimilarity matrix
- dissimObj2 <- calcDissimilarityMatrix(runInfoObj2)
- # calculate optimal clustering
- clusObj2 <- calcOptimalClustering(dissimObj2, maxNClusters = 7, useLS=F)
- # Extract cluster assignments
- cluster_assignments2 <- clusObj2$clustering
- # Calculate cluster sizes
- cluster_sizes2 <- table(cluster_assignments2)
- print(cluster_sizes2)
- # Calculate average risk and profiles
- riskProfileObj2 <- calcAvgRiskAndProfile(clusObj2) #, includeFixedEffects = TRUE)
- # visualize
- clusterOrderObj2 <- plotRiskProfile(riskProfileObj2,"2 - summary-1.png")
- # variable slecetion plots
- rho <- summariseVarSelectRho(runInfoObj2)
- # Figure 3 (simple version)
- pdf("2 - varSelect-240710.pdf")
- par(mfrow = c(5, 2))
- for (k in 1:runInfoObj2$nCovariates) {
- hist(rho$rho[, k], xlim = c(0, 1), main = "", xlab="")
- }
- dev.off()
- par(mfrow = c(1, 1))
- # step 2.2 - k = 2 clusters
- # Perform profile regression
- # Use the profileReg function from the PReMiuM package to perform profile regression.
- # calculate optimal clustering
- clusObj2.2 <- calcOptimalClustering(dissimObj2, maxNClusters = 2, useLS=F)
- # Extract cluster assignments
- cluster_assignments2.2 <- clusObj2.2$clustering
- # Calculate cluster sizes
- cluster_sizes2.2 <- table(cluster_assignments2.2)
- print(cluster_sizes2.2)
- # Calculate average risk and profiles
- riskProfileObj2.2 <- calcAvgRiskAndProfile(clusObj2.2) #, includeFixedEffects = TRUE)
- # visualize
- clusterOrderObj2.2 <- plotRiskProfile(riskProfileObj2.2,"2 - summary-2clusters.png")
- # FOR VISUALIZATION
- # Get the posterior means for each cluster
- posteriorMeans <- calcAvgRiskAndProfile(clusObj2.2)
- # Extract mean outcome change for each cluster
- clusterMeans <- posteriorMeans[["risk"]]
- # Organize the posterior samples for each cluster into a data frame
- nClusters <- (posteriorMeans$riskProfClus$nClusters)
- nSamples <- length(posteriorMeans$risk) # Number of posterior samples
- # Create a data frame for plotting
- posteriorSamplesDF <- data.frame(unlist(posteriorMeans$risk))
- # Check the structure of the data frame
- head(posteriorSamplesDF)
- posteriorSamplesDF <- posteriorSamplesDF %>%
- rename(
- Cluster1 = X1,
- Cluster2 = X2
- )
- library(tidyr)
- posteriorSamplesLongDF <- pivot_longer(posteriorSamplesDF,
- cols = c(Cluster1, Cluster2),
- names_to = "Cluster",
- values_to = "MeanOutcome")
- # Check the reshaped data
- head(posteriorSamplesLongDF)
- # Calculate mean outcomes for each cluster
- meanCluster1 <- mean(posteriorSamplesDF$Cluster1)
- meanCluster2 <- mean(posteriorSamplesDF$Cluster2)
- # Colors for the clusters
- cluster_colors <- c("Cluster 1" = "#CC7722", "Cluster 2" = "#0047AB") # Ochre and cobalt blue
- # Plot the posterior distribution for both clusters
- ggplot(posteriorSamplesLongDF, aes(x = MeanOutcome, fill = Cluster, color = Cluster)) +
- # Density plot with transparency
- geom_density(alpha = 0.5) +
- # Custom colors for the clusters
- scale_fill_manual(values = cluster_colors) +
- scale_color_manual(values = cluster_colors) +
- # Dashed vertical lines for the means of each cluster
- geom_vline(xintercept = meanCluster1, color = "#CC7722", linetype = "dashed", size = 1) +
- geom_vline(xintercept = meanCluster2, color = "#0047AB", linetype = "dashed", size = 1) +
- # Labels and theme
- labs(title = "Posterior Distribution of Plausible Outcome Values for Cluster 1 and Cluster 2",
- x = "Mean Outcome",
- y = "Density") +
- theme_minimal()
- # Add the means for vertical lines into the original data frame
- posteriorSamplesLongDF$MeanLine <- NA
- posteriorSamplesLongDF$MeanLine[posteriorSamplesLongDF$Cluster == "Cluster1"] <- meanCluster1
- posteriorSamplesLongDF$MeanLine[posteriorSamplesLongDF$Cluster == "Cluster2"] <- meanCluster2
- # Plot the posterior distribution with separate plots for each cluster
- ggplot(posteriorSamplesLongDF, aes(x = MeanOutcome, fill = Cluster)) +
- # Density plot with different colors for each cluster
- geom_density(alpha = 0.5) +
- # Add dashed vertical lines for the means of each cluster
- geom_vline(aes(xintercept = MeanLine, color = Cluster), linetype = "dashed", size = 1) +
- # Custom colors for the fill and lines
- scale_fill_manual(values = cluster_colors) +
- scale_color_manual(values = cluster_colors) +
- # Facet by Cluster to create separate plots
- #facet_wrap(~ Cluster) +
- #scale_x_continuous(limits = c(0.09, 0.26)) +
- scale_y_continuous(breaks = c(10, 20)) +
- # Labels and theme
- labs(title = "Posterior Distribution of Plausible Outcome Values for Cluster 1 and Cluster 2",
- x = "Mean Outcome",
- y = "Density")
- # Calculate 95% credible intervals for Cluster 1
- ciCluster1 <- quantile(posteriorSamplesDF$Cluster1, probs = c(0.05, 0.95))
- # Calculate 95% credible intervals for Cluster 2
- ciCluster2 <- quantile(posteriorSamplesDF$Cluster2, probs = c(0.05, 0.95))
- # Display the credible intervals
- ciCluster1
- ciCluster2
- # empirical mean
- riskProfileObj2.2[["empiricals"]]
- # empirical CI
- # make new data
- EmpiricalData <- data.frame(SCF=rep(0, 221), Cluster=rep(0, 221))
- EmpiricalData$SCF <- clusObj2.2[["clusObjRunInfoObj"]][["yMat"]][,1]
- EmpiricalData$Cluster <- clusObj2.2[["clustering"]]
- lm1 <- lm(SCF ~ Cluster, data = EmpiricalData)
- summary(lm1)
SCF_analysis_profileRegression.R, no license · at the source
Overview
- Faculty of Psychology, Dresden University of Technology,Dresden, Germany
- Department of Psychiatry and Psychotherapy, Dresden University of Technology,Dresden, Germany
- Neuroimaging Centre, Dresden University of Technology,Dresden, Germany
Abstract
Impaired self-control has been linked to deficits in performance monitoring and is associated with impulsive and compulsive behaviors. Although altered error-related negativity (ERN) amplitudes have been observed in disorders characterized by these traits, it remains unclear how such alterations relate to the translation of monitoring signals into behavior. In a sample of 221 participants, we combined electroencephalography with ecological momentary assessment to examine how self-reported impulsivity and compulsivity relate to daily self-control and moderate the association between ERN amplitude and daily self-control. High compulsivity was associated with increased desire enactment and more frequent self-control failures. Critically, ERN amplitude was associated with better self-control only at low levels of both impulsivity and compulsivity. These findings indicate that the relationship between performance monitoring and daily self-control varies as a function of trait-level impulsivity and compulsivity. While the present findings are correlational in nature, they suggest that considering trait interactions may inform cognitive and neural models of self-control and our understanding of how performance monitoring translates into adaptive behavior.
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 7 matches between paragraphs and lines of code.
OSF 4gpnd
Availability: 1 check, the latest on 30 September 2026: the link answers (HTTP 200)
- 30 September 2026: the link answers (HTTP 200)
5 files
- Data and Code/
Enactment_analysis_MLM.R , R, 452 lines, 1 match - Data and Code/
SCF_analysis_GLM.R , R, 145 lines, 1 match - Data and Code/
SCF_analysis_GLM_CRN_Beh , R, 112 linesav.R - Data and Code/
SCF_analysis_GLM_DesireC , R, 168 linesonflict.R - Data and Code/
SCF_analysis_profileRegr , R, 312 lines, 5 matchesession.R
Code availability
The code that supports the findings of this study is available in the Open Science Framework with the identifier 10.17605/
Reproduced under the paper's license (CC BY), from the paper cited above.
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;
- 5 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
Data availability
The data that support the findings of this study are available in the Open Science Framework with the identifier 10.17605/
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, 30 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 4 authors, 3 keywords, 1 funder, 92 references.
Cite
This paper
Overmeyer, R., Kräplin, A., Goschke, T., & Endrass, T. (2026). The association between the error-related negativity and self-control is moderated by impulsivity and compulsivity. Communications psychology, 4(1), 62. https://
BibTeX
@article{overmeyer2026as
author = {Overmeyer, Rebecca and Kräplin, Anja and Goschke, Thomas and Endrass, Tanja},
title = {{The association between the error-related negativity and self-control is moderated by impulsivity and compulsivity}},
journal = {Communications psychology},
year = {2026},
month = mar,
volume = {4},
number = {1},
pages = {62},
publisher = {Springer Science+Business Media},
issn = {2731-9121},
doi = {10.1038/
url = {https://
pmid = {41896335},
pmcid = {PMC13046855}
}
RIS
TY - JOUR
AU - Overmeyer, Rebecca
AU - Kräplin, Anja
AU - Goschke, Thomas
AU - Endrass, Tanja
TI - The association between the error-related negativity and self-control is moderated by impulsivity and compulsivity
T2 - Communications psychology
J2 - Commun Psychol
PY - 2026
DA - 2026/
VL - 4
IS - 1
SP - 62
SN - 2731-9121
PB - Springer Science+Business Media
DO - 10.1038/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1038/
"type": "article-journal",
"title": "The association between the error-related negativity and self-control is moderated by impulsivity and compulsivity",
"container-title": "Communications psychology",
"author": [
{
"family": "Overmeyer",
"given": "Rebecca"
},
{
"family": "Kräplin",
"given": "Anja"
},
{
"family": "Goschke",
"given": "Thomas"
},
{
"family": "Endrass",
"given": "Tanja"
}
],
"container-title-short":
"volume": "4",
"issue": "1",
"page": "62",
"DOI": "10.1038/
"PMID": "41896335",
"PMCID": "PMC13046855",
"ISSN": "2731-9121",
"publisher": "Springer Science+Business Media",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
27
]
]
}
}
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.3758/s13415-025-01281-5 [code]
- The impact of impulsivity and compulsivity on error processing in different motivational contexts.Journal: Cognitive, affective & behavioral neuroscienceIn common: EEG, 31 references, 2 authors
- [2] doi:10.1038/s41598-023-45526-0
- Unraveling the influence of trial-based motivational changes on performance monitoring stages in a flanker task.Journal: Scientific reportsIn common: EEG, cognitive, 11 references, 2 authors
- [3] doi:10.1038/s41598-026-58046-4 [code]
- Dissecting the interplay of model-based control, impulsivity and compulsivity on self-control in daily life.Journal: Scientific reportsIn common: easystats, emmeans, car, 3 other tools, EEG, cognitive, 10 references
- [4] doi:10.1038/s41598-024-71692-w [code]
- On the effects of impulsivity and compulsivity on neural correlates of model-based performance.Journal: Scientific reportsIn common: lme4, ggplot2, tidyverse, EEG, cognitive, 6 references, 2 authors
- [5] doi:10.1038/s41398-026-04098-z [code]
- Neural imbalance between feedback sensitivity and motor inhibition in compulsivity and negative urgency.Journal: Translational psychiatryIn common: EEG, 7 references, 2 authors
- [6] doi:10.1111/psyp.70142 [code]
- Altered Reward Processing in Obsessive-Compulsive Disorder: Insights From Active and Observational Learning.Journal: PsychophysiologyIn common: easystats, emmeans, car, 4 other tools, EEG, cognitive, 6 references
- [7] doi:10.1016/j.nicl.2022.103113 [code]
- Non-invasive brain stimulation modulates neural correlates of performance monitoring in patients with obsessive-compulsive disorder.Journal: NeuroImage. ClinicalIn common: lmerTest, lme4, ggplot2, 1 other tool, EEG, 9 references
- [8] doi:10.1038/s41398-025-03660-5 [code]
- Goal-directed behavior and hippocampal activity predict real-life impact of drinking intentions in alcohol use disorder.Journal: Translational psychiatryIn common: easystats, emmeans, lmerTest, 4 other tools, cognitive, 1 reference, author Tanja Endrass
- [9] doi:10.1007/s00213-024-06541-9 [code]
- L-DOPA and oxytocin influence the neural correlates of performance monitoring for self and others.Journal: PsychopharmacologyIn common: emmeans, lmerTest, lme4, 3 other tools, 4 references
- [10] doi:10.1016/j.neuroimage.2026.122115 [code]
- Midfrontal theta power relates to response speeding following frustrative nonreward.Journal: NeuroImageIn common: easystats, emmeans, car, 5 other tools, EEG, cognitive, 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, 5 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:fbb72957508e0834…
Add the badge to the code's README
If you are an author or a maintainer of this paper's code, you can add this badge. It says what OSCR knows of the paper (its code, its validated tracing map) and links the code to this page. Paste one of these snippets under the README's title. Keep the two marks around it, so that the badge can be replaced in place and is never added twice. OSCR changes nothing in your repository.
Markdown
<!-- oscr-badge:start -->
[](https://openscicode.org/badge/doi/10.1038/s44271-026-00446-3)
<!-- oscr-badge:end -->reStructuredText
.. oscr-badge:start
.. image:: https://openscicode.org/badge/doi/10.1038/s44271-026-00446-3.svg
:target: https://openscicode.org/badge/doi/10.1038/s44271-026-00446-3
:alt: OSCR
.. oscr-badge:endHTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1038/s44271-026-00446-3"><img src="https://openscicode.org/badge/doi/10.1038/s44271-026-00446-3.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->If you choose to, you can have the badge kept up to date for you, with oscr badge --write from the command line or with the GitHub Action in your repository's workflows. Every other form and option (a card, AsciiDoc, LaTeX, shields.io) is on the badge page.
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: code errors and mismatches between the code and the paper about this paper and its code, from readers and its authors, beside the paper and its tracing map.
Report a mismatch between the code and the paper · Report a code error (signed in)
Reproductions: reports from readers who ran the authors' code and did not get the paper's result, what they ran, with which environment, commit and data.
Report a reproduction failure (signed in)
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
