Peptides Targeting GDNF Family Receptor Alpha 1 (GFRα1) Mimic Glial Cell Line-Derived Neurotrophic Factor (GDNF) Bioactivity.
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
Python · 355 lines · 12 KB · no license
- import re
- import numpy as np
- import random
- from matplotlib import pyplot as plt
- import json
- INCLUDE_N = True # Set to True to include 'N' in the DNA sequences, False to exclude
- CULL_MINLENGTH = 10 # Minimum length of DNA sequences to be extracted
- CULL_MAXLENGTH = 1000 # Maximum length of DNA sequences to be extracted
- FILE_SEPARATOR = "+" # Separator used in the input file, can be space, tab, etc.
- K = {"G","T"}
- K_REV = {"C","A"}
- N = {"A","T","G","C"}
- def extract_sequences(file_path):
- with open(file_path, "r") as file:
- #Example Entry after regex as a tuple
- #('NB501061:163:HVYLLAFX3:1:11101:1980:1063' - Run ID,
- # '1:N:0:GTATTATCT+CATATCGTT' - Additional Run Information,
- # 'TGTAGACTATTCTCACTCTTCTTGTCTGGTTCCTCCGCGTCCGACGTGTGGTGGAGGTTCGGTCGACG', - DNA Sequence
- # 'AAAAAEE<EE<EEEEEEEEEEAEEEE/EEAEEEEA//AA/EAAEEEEEEEEAEEEEEE/EA<EEEEE6' - DNA Quality Score)
- regexExpression = r"@([A-Z0-9.:\-\s]+)(?:\s)([A-Z0-9:+\/-]+)(?:\s*)([CODONS]{cull_minlength,cull_maxlength})(?:\s+SPLIT\s*)([!-I]{cull_minlength,cull_maxlength})".replace("cull_minlength", str(CULL_MINLENGTH)).replace("cull_maxlength", str(CULL_MAXLENGTH))
- regexExpression = regexExpression.replace("CODONS", "ATGCN" if INCLUDE_N else "ATGC")
- cleanedFileSeparator = FILE_SEPARATOR.replace("\\\\", "\\")
- regexExpression = regexExpression.replace("SPLIT", f"[{cleanedFileSeparator}]?")
- entries = re.findall(regexExpression, file.read())
- return [x[2] for x in entries] # Return only the DNA sequences
- def load_from_json(file_path):
- seqs = []
- with open(file_path, "r") as file:
- data = json.load(file)
- for key, entry in data.items() :
- seqs.append(entry["sequences"])
- return seqs
- def _validate_umi(umi):
- validate_lambda = lambda u, T_K: u[1] in T_K and u[2] in T_K and all(base in "ATGC" for base in u)
- if len(umi) == 8:
- return validate_lambda(umi[:4], K) and validate_lambda(umi[4:], K_REV)
- if len(umi) == 4:
- return validate_lambda(umi, K)
- raise ValueError(f"UMI length must be either 4 or 8, got {len(umi)}")
- def _validate_region(region, target_length=68):
- return len(region) == target_length - 47 and all(base in "ATGC" for base in region)
- def umi_analysis(sequences, only_front_umi : bool =True, target_length : int = 68):
- umi_fixed = {}
- region_fixed = {}
- umi_lambda = lambda seq: seq[:4] if only_front_umi else seq[:4] + seq[-4:]
- region_lambda = lambda seq: seq[25:-22]
- for seq in sequences:
- umi = umi_lambda(seq)
- region = region_lambda(seq)
- t = _validate_umi(umi)
- t2 = _validate_region(region)
- if not _validate_umi(umi) or not _validate_region(region):
- continue
- umi_fixed.setdefault(umi, {})
- umi_fixed[umi][region] = umi_fixed[umi].get(region, 0) + 1
- region_fixed.setdefault(region, {})
- region_fixed[region][umi] = region_fixed[region].get(umi, 0) + 1
- '''
- #Calculate the mean and std of the number of UMIs per region
- umi_unique_region_counts = [len(regions) for regions in umi_fixed.values()]
- mean_umis_per_region = sum(umi_unique_region_counts) / len(umi_unique_region_counts)
- std_umis_per_region = (sum((x - mean_umis_per_region) ** 2 for x in umi_unique_region_counts) / len(umi_unique_region_counts)) ** 0.5
- print(f"Mean UMIs per region: {mean_umis_per_region}")
- print(f"Standard Deviation of UMIs per region: {std_umis_per_region}")
- region_unique_umi_counts = [len(umis) for umis in region_fixed.values()]
- mean_regions_per_umi = sum(region_unique_umi_counts) / len(region_unique_umi_counts)
- std_regions_per_umi = (sum((x - mean_regions_per_umi) ** 2 for x in region_unique_umi_counts) / len(region_unique_umi_counts)) ** 0.5
- print(f"Mean regions per UMI: {mean_regions_per_umi}")
- print(f"Standard Deviation of regions per UMI: {std_regions_per_umi}")
- '''
- t = set(sequences)
- umi_unique_region_counts = np.array([len(regions) for regions in umi_fixed.values()])
- mean_umis_per_region = np.mean(umi_unique_region_counts)
- std_umis_per_region = np.std(umi_unique_region_counts)
- region_unique_umi_counts = np.array([len(umis) for umis in region_fixed.values()])
- mean_regions_per_umi = np.mean(region_unique_umi_counts)
- std_regions_per_umi = np.std(region_unique_umi_counts)
- print(f"Mean UMIs per region: {mean_umis_per_region}")
- print(f"Standard Deviation of UMIs per region: {std_umis_per_region}")
- print(f"Mean regions per UMI: {mean_regions_per_umi}")
- print(f"Standard Deviation of regions per UMI: {std_regions_per_umi}")
- return umi_fixed, region_fixed
- def _umi_gt_analysis(sequences, only_front_umi : bool =True, target_length : int = 68):
- def _generate_random_umi(only_front_umi):
- temp_N = list(N)
- temp_K = list(K)
- temp_K_REV = list(K_REV)
- if only_front_umi:
- b1 = random.choice(temp_N)
- b2 = random.choice(temp_K)
- b3 = random.choice(temp_K)
- b4 = random.choice(temp_N)
- return b1 + b2 + b3 + b4
- else:
- b5 = random.choice(temp_N)
- b6 = random.choice(temp_K_REV)
- b7 = random.choice(temp_K_REV)
- b8 = random.choice(temp_N)
- return _generate_random_umi(True) + b5 + b6 + b7 + b8
- region_counts = {}
- for seq in sequences:
- umi = seq[:4] if only_front_umi else seq[:4] + seq[-4:]
- region = seq[25:-22]
- if not _validate_region(region, target_length):
- continue
- region_counts[region] = region_counts.get(region, 0) + 1
- synth_data = [(_generate_random_umi(only_front_umi), seq) for seq in region_counts.keys()]
- umi_fixed = {}
- region_fixed = {}
- for umi, region in synth_data:
- umi_fixed.setdefault(umi, {})
- umi_fixed[umi][region] = umi_fixed[umi].get(region, 0) + 1
- region_fixed.setdefault(region, {})
- region_fixed[region][umi] = region_fixed[region].get(umi, 0) + 1
- umi_unique_region_counts = np.array([len(regions) for regions in umi_fixed.values()])
- mean_umis_per_region = np.mean(umi_unique_region_counts)
- std_umis_per_region = np.std(umi_unique_region_counts)
- region_unique_umi_counts = np.array([len(umis) for umis in region_fixed.values()])
- mean_regions_per_umi = np.mean(region_unique_umi_counts)
- std_regions_per_umi = np.std(region_unique_umi_counts)
- print(f"Mean UMIs per region: {mean_umis_per_region}")
- print(f"Standard Deviation of UMIs per region: {std_umis_per_region}")
- print(f"Mean regions per UMI: {mean_regions_per_umi}")
- print(f"Standard Deviation of regions per UMI: {std_regions_per_umi}")
- return umi_fixed, region_fixed
- pass
- def plot_region_distribution(region_fixed):
- counts_per_top_umi = []
- for region, umis in region_fixed.items():
- sorted_umis = sorted(umis.items(), key=lambda x: x[1], reverse=True)
- total_umis = sum(umis.values())
- if total_umis <= 100:
- continue
- for i, (umi, count) in enumerate(sorted_umis):
- if i > 100:
- break
- if len(counts_per_top_umi) <= i:
- counts_per_top_umi.append([])
- counts_per_top_umi[i].append(count/total_umis)
- plt.figure(figsize=(10, 6))
- plt.boxplot(counts_per_top_umi)
- plt.ylabel('Count of Regions Associated with UMI')
- plt.title('Distribution of Region Counts for Top UMIs')
- plt.show()
- def NKKN_analysis(sequences):
- nkkn_counts = {}
- dropped_N_count = 0
- dropped_K_count = 0
- total_count = 0
- count_of_bases_in_position = [{"A": 0, "T": 0, "G": 0, "C": 0, "N": 0} for _ in range(4)]
- for seq in sequences:
- first_four = seq[:4]
- total_count += 1
- if("N" in first_four):
- dropped_N_count += 1
- continue
- #Check K
- if first_four[1] not in K or first_four[2] not in K:
- dropped_K_count += 1
- continue
- nkkn_counts[first_four] = nkkn_counts.get(first_four, 0) + 1
- for i, base in enumerate(first_four):
- if base in count_of_bases_in_position[i]:
- count_of_bases_in_position[i][base] += 1
- for nkkn, count in nkkn_counts.items():
- print(f"{nkkn}: {count}")
- max_nkkn = max(nkkn_counts, key=nkkn_counts.get)
- min_nkkn = min(nkkn_counts, key=nkkn_counts.get)
- print(f"Most common NKKN: {max_nkkn} with count {nkkn_counts[max_nkkn]}")
- print(f"Least common NKKN: {min_nkkn} with count {nkkn_counts[min_nkkn]}")
- #Output the count of bases in each position as a csv
- print("Position, A, T, G, C, N")
- for i, counts in enumerate(count_of_bases_in_position):
- print(f"{i+1}, {counts['A']}, {counts['T']}, {counts['G']}, {counts['C']}, {counts['N']}")
- pass
- def plot_nkkn_composition(raw, merged):
- def _t(data):
- counts_per_top_umi = []
- for region, umis in data.items():
- sorted_umis = sorted(umis.items(), key=lambda x: x[1], reverse=True)
- total_umis = sum(umis.values())
- if total_umis <= 100:
- continue
- for i, (umi, count) in enumerate(sorted_umis):
- if i > 100:
- break
- if len(counts_per_top_umi) <= i:
- counts_per_top_umi.append([])
- counts_per_top_umi[i].append(count/total_umis)
- return counts_per_top_umi
- raw_distribution = _t(raw)
- merged_distribution = _t(merged)
- raw_means = [np.mean(counts) for counts in raw_distribution]
- merged_means = [np.mean(counts) for counts in merged_distribution]
- differences = [m - r for m, r in zip(merged_means, raw_means)]
- plt.figure(figsize=(10, 6))
- plt.plot(differences, marker='o', label='Difference in Mean Proportion (Merged - Raw)')
- plt.plot(raw_means, marker='o', label='Raw Mean Proportion')
- plt.plot(merged_means, marker='o', label='Merged Mean Proportion')
- plt.xlabel('UMI Rank')
- plt.ylabel('Difference in Mean Proportion of Regions (Merged - Raw)')
- plt.title('Difference in Mean Proportion of Regions for Top UMIs (Merged vs Raw)')
- plt.legend()
- plt.axhline(0, color='gray', linestyle='--')
- plt.show()
- def plot_nkkn_composition_bins(raw, merged, threshold=0.1):
- def _parse(data):
- counts = []
- total_lengths = 0
- for region, umis in data.items():
- if sum(umis.values()) <= 100:
- continue
- total_umis = sum(umis.values())
- for i, (umi, count) in enumerate(umis.items()):
- counts.append(count)
- return [c for c in counts]
- raw_bins = _parse(raw)
- merged_bins = _parse(merged)
- mean_raw = np.mean(raw_bins)
- mean_merged = np.mean(merged_bins)
- max_raw = max(raw_bins)
- max_merged = max(merged_bins)
- print(f"Mean Raw Count: {mean_raw}")
- print(f"Mean Merged Count: {mean_merged}")
- plt.figure(figsize=(10, 6))
- plt.hist(raw_bins, bins=200, alpha=0.5, label='Raw', color='blue')
- plt.hist(merged_bins, bins=200, alpha=0.5, label='Merged', color='orange')
- plt.legend()
- plt.show()
- def main():
- file_path = "data/MON_BSA/PID-1309-M7-MON-BSA-1_S87_R1_001.fastq" # Replace with your actual file path
- sequences = extract_sequences(file_path)
- umi_fixed, region_fixed = umi_analysis(sequences, only_front_umi=True, target_length=68)
- merged_path = "data/MON_BSA/merged.json"
- sequences = load_from_json(merged_path)
- umi_merged, region_merged = umi_analysis(sequences, only_front_umi=True, target_length=68)
- # plot_region_distribution(region_fixed)
- plot_nkkn_composition_bins(region_fixed, region_merged)
- #umi_counts = _umi_gt_analysis(sequences, only_front_umi=False, target_length=68)
- if __name__ == "__main__":
- main()
NKKN_analysis.py at commit 018bcb4, no license · at the source
Overview
- School of Pharmacy, UCL, 29-39 Brunswick Square, London WC1N 1AX, U.K
- Centre for Nerve Engineering, UCL, 29-39 Brunswick Square, London WC1N 1AX, U.K
- Department of Chemistry, UCL, 20 Gordon Street, London WC1H 0AJ, U.K
Abstract
Glial cell line-derived neurotrophic factor (GDNF) is a neuroprotective protein with widespread applications in regenerative medicine, though its clinical translation has been limited. Peptide mimetics have the potential to overcome the limitations associated with the translation of GDNF. Herein, peptides targeting the GDNF receptor GFRα1 were identified by screening a 12-mer linear peptide phage display library against GFRα1. Peptide hits were rationalized by computational alanine scanning mutagenesis studies to identify residues contributing to GDNF and GFRα1 binding. Four hit peptides were synthesized and tested for GFRα1 binding affinity. All peptides activated the downstream phosphatidylinositol 3 kinase signaling pathway in SH-SY5Y cells and increased cellular proliferation. The biological activity of two peptides matched that of recombinant GDNF, as measured by neurite outgrowth of primary dorsal root ganglion neurons. For the first time, we report monomeric GFRα1-targeting peptides that mimic the biological effects of GDNF, with potential applications in regenerative medicine.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above.
taoyangwu/P3ANUT
018bcb46573b94060105e55f58239b61c30f8a4d, 17 July 2026Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
34 files
- dev_Tools/
NKKN_analysis.py , Python, 355 lines - dev_Tools/
comparision_visualizatio , Python, 957 linesns.py - dev_Tools/
dataset_split.py , Python, 635 lines - dev_Tools/
distance_analysis.py , Python, 222 lines - dev_Tools/
evaluation_log_unificati , Python, 253 lineson.py - dev_Tools/
rebollo_filtered.py , Python, 399 lines - dev_Tools/
rebollo_post_processing. , Python, 156 linespy - dev_Tools/
sequence_trim.py , Python, 61 lines - dev_Tools/
upset_A_ratios.py , Python, 118 lines - dev_Tools/
visualizationGraphs.py , Python, 224 lines - src/
CLI_UpsetPlot.py , Python, 307 lines - src/
CLI_VolcanoPlot.py , Python, 74 lines - src/
CLI_pairedAssembler.py , Python, 134 lines - src/
CLI_rankingPlot.py , Python, 319 lines - src/
CLI_runUnifier.py , Python, 89 lines - src/
CLI_sequenceCount.py , Python, 150 lines - src/
CLI_upsetplot.py , Python, 307 lines - src/
GUI_pairedAssembler.py , Python, 314 lines - src/
GUI_sequenceCount.py , Python, 442 lines - src/
configPopupV2.py , Python, 614 lines - src/
multiprocessedPairAssemb , Python, 951 linesler.py - src/
rankingPlot.py , Python, 930 lines - src/
runUnifier.py , Python, 332 lines - src/
runningPopUP.py , Python, 55 lines - src/
sequenceCounter.py , Python, 858 lines - src/
unifiedGUI.py , Python, 85 lines - src/
upsetPlot.py , Python, 540 lines - src/
volcanoPlot.py , Python, 722 lines - utils/
FASTA_fileConversion.py , Python, 345 lines - utils/
evaluation_comparision.p , Python, 446 linesy - utils/
flash_caspar_analysis.py , Python, 234 lines - utils/
scriptComparisionGraph.i , Jupyter, 157 linespynb - utils/
visualizationGraphs.py , Python, 224 lines - README.md, Text, 140 lines
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;
- 33 scripts, each with its path and the digest of its content;
- no match between paragraphs and code yet;
- 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
- uniprot.org/
blast , at UniProt; found in the text, “Extraction of Single-Stranded Phage DNA and…”
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 → American Chemical Society
Version 1, 28 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 8 authors, 11 MeSH terms, 4 funders, 58 references, 1 RRID.
Cite
This paper
Atkinson, E. A., Liu, T., Fowler, M., Smith, P. O., Tabor, A. B., Morris, C. J., Phillips, J. B., & Dickman, R. (2026). Peptides Targeting GDNF Family Receptor Alpha 1 (GFRα1) Mimic Glial Cell Line-Derived Neurotrophic Factor (GDNF) Bioactivity. Journal of medicinal chemistry, 69(10), 11914-11925. https://
BibTeX
@article{atkinson2026pep
author = {Atkinson, Emily A. and Liu, Tianyang and Fowler, Maria and Smith, Poppy O. and Tabor, Alethea B. and Morris, Christopher J. and Phillips, James B. and Dickman, Rachael},
title = {{Peptides Targeting GDNF Family Receptor Alpha 1 (GFRα1) Mimic Glial Cell Line-Derived Neurotrophic Factor (GDNF) Bioactivity}},
journal = {Journal of medicinal chemistry},
year = {2026},
month = may,
volume = {69},
number = {10},
pages = {11914--11925},
publisher = {American Chemical Society},
issn = {0022-2623},
doi = {10.1021/
url = {https://
pmid = {42100797},
pmcid = {PMC13224089}
}
RIS
TY - JOUR
AU - Atkinson, Emily A.
AU - Liu, Tianyang
AU - Fowler, Maria
AU - Smith, Poppy O.
AU - Tabor, Alethea B.
AU - Morris, Christopher J.
AU - Phillips, James B.
AU - Dickman, Rachael
TI - Peptides Targeting GDNF Family Receptor Alpha 1 (GFRα1) Mimic Glial Cell Line-Derived Neurotrophic Factor (GDNF) Bioactivity
T2 - Journal of medicinal chemistry
J2 - J Med Chem
PY - 2026
DA - 2026/
VL - 69
IS - 10
SP - 11914
EP - 11925
SN - 0022-2623
PB - American Chemical Society
DO - 10.1021/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1021/
"type": "article-journal",
"title": "Peptides Targeting GDNF Family Receptor Alpha 1 (GFRα1) Mimic Glial Cell Line-Derived Neurotrophic Factor (GDNF) Bioactivity",
"container-title": "Journal of medicinal chemistry",
"author": [
{
"family": "Atkinson",
"given": "Emily A."
},
{
"family": "Liu",
"given": "Tianyang"
},
{
"family": "Fowler",
"given": "Maria"
},
{
"family": "Smith",
"given": "Poppy O."
},
{
"family": "Tabor",
"given": "Alethea B."
},
{
"family": "Morris",
"given": "Christopher J."
},
{
"family": "Phillips",
"given": "James B."
},
{
"family": "Dickman",
"given": "Rachael"
}
],
"container-title-short":
"volume": "69",
"issue": "10",
"page": "11914-11925",
"DOI": "10.1021/
"PMID": "42100797",
"PMCID": "PMC13224089",
"ISSN": "0022-2623",
"publisher": "American Chemical Society",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
8
]
]
}
}
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/s42003-026-10252-6 [code]
- RET signaling as a mediator of estrogen receptor positive breast cancer brain metastasis.Journal: Communications biologyIn common: pandas, Matplotlib, NumPy, other condition, cellular / molecular, 2 references
- [2] doi:10.1038/s41467-026-75806-y [code]
- Cryo-EM insights into isoform-specific properties of the IP&
lt;sub& gt;3& lt;/ sub& gt;R2 channel. Journal: Nature communicationsIn common: pandas, SciPy, Matplotlib, 1 other tool, cellular / molecular, 2 references - [3] doi:10.1016/j.molcel.2026.07.006 [code]
- DeorphaNN: Virtual screening of GPCR peptide agonists using AlphaFold-predicted active-state complexes and deep learning embeddings.Journal: Molecular cellIn common: scikit-learn, pandas, SciPy, 2 other tools, cellular / molecular, 1 reference
- [4] doi:10.1038/s41586-026-10391-0 [code]
- Cell-type-targeted mitochondrial transplantation rescues cell degeneration.Journal: NatureIn common: scikit-learn, pandas, SciPy, 2 other tools, cellular / molecular, 1 reference
- [5] doi:10.1038/s41586-026-10670-w [code]
- Zero-shot design of drug-binding proteins via neural iterative selection-expansion.Journal: NatureIn common: scikit-learn, pandas, SciPy, 2 other tools, cellular / molecular, 1 reference
- [6] doi:10.3390/biom16071049 [code]
- AUKAT: Conditional VAE-Driven Augmentation and Neural Modeling of Enzyme Turnover Numbers.Journal: BiomoleculesIn common: scikit-learn, pandas, SciPy, 1 other tool, 1 reference
- [7] doi:10.1038/s41467-026-75444-4 [code]
- Structural insights enable drug discovery for the neuronal NBCn2 carbonate transporter.Journal: Nature communicationsIn common: pandas, SciPy, Matplotlib, 1 other tool, cellular / molecular, 1 reference
- [8] doi:10.1038/s41592-026-03065-2 [code]
- PinkyCaMP: an mScarlet-based calcium sensor with enhanced brightness, photostability and multiplexing capabilities.Journal: Nature methodsIn common: pandas, SciPy, Matplotlib, 1 other tool, cellular / molecular, 1 reference
- [9] doi:10.1016/j.isci.2026.116355 [code]
- Tera-MIND: Tera-scale mouse brain simulation via spatial mRNA-guided diffusion.Journal: iScienceIn common: pandas, SciPy, Matplotlib, 1 other tool, cellular / molecular, 1 reference
- [10] doi:10.1038/s41467-026-72568-5 [code]
- Endosome maturation is orchestrated by inside-out proton signaling through a Na&
lt;sup& gt;+& lt;/ sup& gt;/ H& lt;sup& gt;+& lt;/ sup& gt; exchanger and pH-dependent Rab GTPase cycling. Journal: Nature communicationsIn common: SciPy, Matplotlib, NumPy, cellular / molecular, 1 reference
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, 33 scripts, and 0 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:214b984a37350585…
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.
