OSCR

Astrocyte-enriched and cilia-related genetic signatures in dementia: A whole-exome sequencing study.

Code ↔ Paper

4 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 4 matches
  1. [1] § MATERIALS AND METHODS › Variant annotation and deleteriousness prediction ↔ bcbio/variation/prioritize.py, lines 66 to 89 · score 0.73 · AA, AFR, AMR, EA, EUR, NFE · Report a mismatch
  2. [2] § MATERIALS AND METHODS › Variant filtering ↔ bcbio/variation/freebayes.py, lines 102 to 144 · score 0.60 · bcftools filter, bcftools view, heterozygosity, genotype, indel, quality · Report a mismatch
  3. [3] § MATERIALS AND METHODS › Whole‐exome sequencing and variant calling ↔ bcbio/variation/vfilter.py, lines 185 to 217 · score 0.58 · HaplotypeCaller, GATK Best Practices, Mapped, quality, score, variants · Report a mismatch
  4. [4] § MATERIALS AND METHODS › Variant filtering ↔ bcbio/variation/gatkfilter.py, lines 187 to 230 · score 0.53 · Variant quality score, VQSR, recalibration, sensitivity, filtering · 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

Python · 205 lines · 8.9 KB · MIT · 1 match

  1. """Prioritization scheme for identifying follow up variants in tumor-only samples.
  2. Generalizes the filtering scheme used in VarDict post-processing:
  3. https://github.com/AstraZeneca-NGS/VarDict/blob/9ffec9168e91534fac5fb74b3ec7bdd2badd3464/vcf2txt.pl#L190
  4. The goal is to build up a standard set of prioritization filters based on known
  5. data. Uses GEMINI to load a database of variants with associated third party
  6. query information. Makes use of ExAC, dbSNP, 1000 genomes, clinvar, cosmic and
  7. effects annotations. The general idea is to prioritize deleterious variants
  8. missing or present at a low frequency in the population, or secondarily identified
  9. in external databases like COSMIC and ClinVar.
  10. """
  11. import collections
  12. import csv
  13. import re
  14. from bcbio import utils
  15. from bcbio.distributed.transaction import file_transaction
  16. from bcbio.pipeline import datadict as dd
  17. from bcbio.provenance import do
  18. from bcbio.variation import population, vcfutils
  19. geneimpacts = utils.LazyImport("geneimpacts")
  20. cyvcf2 = utils.LazyImport("cyvcf2")
  21. def handle_vcf_calls(vcf_file, data, orig_items):
  22. """Prioritize VCF calls based on external annotations supplied through GEMINI.
  23. """
  24. if not _do_prioritize(orig_items):
  25. return vcf_file
  26. else:
  27. ann_vcf = population.run_vcfanno(vcf_file, data)
  28. if ann_vcf:
  29. priority_file = _prep_priority_filter_vcfanno(ann_vcf, data)
  30. return _apply_priority_filter(ann_vcf, priority_file, data)
  31. # No data available for filtering, return original file
  32. else:
  33. return vcf_file
  34. def _apply_priority_filter(in_file, priority_file, data):
  35. """Annotate variants with priority information and use to apply filters.
  36. """
  37. out_file = "%s-priority%s" % utils.splitext_plus(in_file)
  38. if not utils.file_exists(out_file):
  39. with file_transaction(data, out_file) as tx_out_file:
  40. header = ('##INFO=<ID=EPR,Number=.,Type=String,'
  41. 'Description="Somatic prioritization based on external annotations, '
  42. 'identify as likely germline">')
  43. header_file = "%s-repeatheader.txt" % utils.splitext_plus(tx_out_file)[0]
  44. with open(header_file, "w") as out_handle:
  45. out_handle.write(header)
  46. if "tumoronly_germline_filter" in dd.get_tools_on(data):
  47. filter_cmd = ("bcftools filter -m '+' -s 'LowPriority' "
  48. """-e "EPR[0] != 'pass'" |""")
  49. else:
  50. filter_cmd = ""
  51. # bcftools 1.13+ requires to skip TO
  52. cmd = ("bcftools annotate -a {priority_file} -h {header_file} "
  53. "-c CHROM,FROM,-,REF,ALT,INFO/EPR {in_file} | "
  54. "{filter_cmd} bgzip -c > {tx_out_file}")
  55. do.run(cmd.format(**locals()), "Run external annotation based prioritization filtering")
  56. vcfutils.bgzip_and_index(out_file, data["config"])
  57. return out_file
  58. def _prep_priority_filter_vcfanno(in_vcf, data):
  59. """Prepare tabix file with priority filters based on vcfanno annotations.
  60. """
  61. pops = ['af_adj_exac_afr', 'af_adj_exac_amr', 'af_adj_exac_eas',
  62. 'af_adj_exac_fin', 'af_adj_exac_nfe', 'af_adj_exac_oth', 'af_adj_exac_sas',
  63. 'af_exac_all', 'max_aaf_all',
  64. "af_esp_ea", "af_esp_aa", "af_esp_all", "af_1kg_amr", "af_1kg_eas",
  65. "af_1kg_sas", "af_1kg_afr", "af_1kg_eur", "af_1kg_all"]
  66. known = ["cosmic_ids", "cosmic_id", "clinvar_sig"]
  67. out_file = "%s-priority.tsv" % utils.splitext_plus(in_vcf)[0]
  68. if not utils.file_exists(out_file) and not utils.file_exists(out_file + ".gz"):
  69. with file_transaction(data, out_file) as tx_out_file:
  70. with open(tx_out_file, "w") as out_handle:
  71. writer = csv.writer(out_handle, dialect="excel-tab")
  72. header = ["#chrom", "start", "end", "ref", "alt", "filter"]
  73. writer.writerow(header)
  74. vcf_reader = cyvcf2.VCF(in_vcf)
  75. impact_info = _get_impact_info(vcf_reader)
  76. for rec in vcf_reader:
  77. row = _prepare_vcf_rec(rec, pops, known, impact_info)
  78. cur_filter = _calc_priority_filter(row, pops)
  79. writer.writerow([rec.CHROM, rec.start, rec.end, rec.REF, ",".join(rec.ALT), cur_filter])
  80. return vcfutils.bgzip_and_index(out_file, data["config"],
  81. tabix_args="-0 -c '#' -s 1 -b 2 -e 3")
  82. def _get_impact_info(vcf_reader):
  83. """Retrieve impact parsing information from INFO header.
  84. """
  85. ImpactInfo = collections.namedtuple("ImpactInfo", "header, gclass, id")
  86. KEY_2_CLASS = {
  87. 'CSQ': geneimpacts.VEP,
  88. 'ANN': geneimpacts.SnpEff,
  89. 'BCSQ': geneimpacts.BCFT}
  90. for l in (x.strip() for x in _from_bytes(vcf_reader.raw_header).split("\n")):
  91. if l.startswith("##INFO"):
  92. patt = re.compile(r"(\w+)=(\"[^\"]+\"|[^,]+)")
  93. stub = l.split("=<")[1].rstrip(">")
  94. d = dict(patt.findall(_from_bytes(stub)))
  95. if d["ID"] in KEY_2_CLASS:
  96. return ImpactInfo(_parse_impact_header(d), KEY_2_CLASS[d["ID"]], d["ID"])
  97. def _from_bytes(s):
  98. if isinstance(s, bytes):
  99. import locale
  100. ENC = locale.getpreferredencoding()
  101. try:
  102. return s.decode(ENC)
  103. except UnicodeDecodeError:
  104. return s.decode('utf8')
  105. return s
  106. def _parse_impact_header(hdr_dict):
  107. """Parse fields for impact, taken from vcf2db
  108. """
  109. desc = hdr_dict["Description"]
  110. if hdr_dict["ID"] == "ANN":
  111. parts = [x.strip("\"'") for x in re.split("\s*\|\s*", desc.split(":", 1)[1].strip('" '))]
  112. elif hdr_dict["ID"] == "EFF":
  113. parts = [x.strip(" [])'(\"") for x in re.split("\||\(", desc.split(":", 1)[1].strip())]
  114. elif hdr_dict["ID"] == "CSQ":
  115. parts = [x.strip(" [])'(\"") for x in re.split("\||\(", desc.split(":", 1)[1].strip())]
  116. elif hdr_dict["ID"] == "BCSQ":
  117. parts = desc.split(']', 1)[1].split(']')[0].replace('[','').split("|")
  118. else:
  119. raise Exception("don't know how to use %s as annotation" % hdr_dict["ID"])
  120. return parts
  121. def _prepare_vcf_rec(rec, pops, known, impact_info):
  122. """Parse a vcfanno output into a dictionary of useful attributes.
  123. """
  124. out = {}
  125. for k in pops + known:
  126. out[k] = rec.INFO.get(k)
  127. if impact_info:
  128. cur_info = rec.INFO.get(impact_info.id)
  129. if cur_info:
  130. cur_impacts = [impact_info.gclass(e, impact_info.header) for e in _from_bytes(cur_info).split(",")]
  131. top = geneimpacts.Effect.top_severity(cur_impacts)
  132. if isinstance(top, list):
  133. top = top[0]
  134. out["impact_severity"] = top.effect_severity
  135. return out
  136. def _calc_priority_filter(row, pops):
  137. """Calculate the priority filter based on external associated data.
  138. - Pass high/medium impact variants not found in population databases
  139. - Pass variants found in COSMIC or Clinvar provided they don't have two
  140. additional reasons to filter (found in multiple external populations)
  141. """
  142. filters = []
  143. passes = []
  144. passes.extend(_find_known(row))
  145. filters.extend(_known_populations(row, pops))
  146. if len(filters) == 0 or (len(passes) > 0 and len(filters) < 2):
  147. passes.insert(0, "pass")
  148. return ",".join(passes + filters)
  149. def _known_populations(row, pops):
  150. """Find variants present in substantial frequency in population databases.
  151. """
  152. cutoff = 0.01
  153. out = set([])
  154. for pop, base in [("esp", "af_esp_all"), ("1000g", "af_1kg_all"),
  155. ("exac", "af_exac_all"), ("anypop", "max_aaf_all")]:
  156. for key in [x for x in pops if x.startswith(base)]:
  157. val = row[key]
  158. if val and val > cutoff:
  159. out.add(pop)
  160. return sorted(list(out))
  161. def _find_known(row):
  162. """Find variant present in known pathogenic databases.
  163. """
  164. out = []
  165. clinvar_no = set(["unknown", "untested", "non-pathogenic", "probable-non-pathogenic",
  166. "uncertain_significance", "uncertain_significance", "not_provided",
  167. "benign", "likely_benign"])
  168. if row["cosmic_ids"] or row["cosmic_id"]:
  169. out.append("cosmic")
  170. if row["clinvar_sig"] and not row["clinvar_sig"].lower() in clinvar_no:
  171. out.append("clinvar")
  172. return out
  173. def _do_prioritize(items):
  174. """Determine if we should perform prioritization.
  175. Currently done on tumor-only input samples and feeding into PureCN
  176. which needs the germline annotations.
  177. """
  178. if not any("tumoronly-prioritization" in dd.get_tools_off(d) for d in items):
  179. if vcfutils.get_paired_phenotype(items[0]):
  180. has_tumor = False
  181. has_normal = False
  182. for sub_data in items:
  183. if vcfutils.get_paired_phenotype(sub_data) == "tumor":
  184. has_tumor = True
  185. elif vcfutils.get_paired_phenotype(sub_data) == "normal":
  186. has_normal = True
  187. return has_tumor and not has_normal

prioritize.py at commit 594339f, under MIT · at the source

Overview

Authors: Miaohan Deng1, Yucan Chen1,2, Lu Zhao1, Weichen Song1, Qi Qiu1, Lin Sun1, Xiang Lin1, Weidi Wang1,3, Guan Ning Lin1,3, Xia Li1
  1. Shanghai Mental Health Center, Shanghai Jiao Tong University School of Medicine, School of Biomedical Engineering, Shanghai Jiao Tong University, Shanghai, China
  2. School of Biomedical Sciences, Li Ka Shing Faculty of Medicine, The University of Hong Kong, Hong Kong, China
  3. Shanghai Key Laboratory of Mental Disorders Translational Research, Shanghai, China
Institutions: Shanghai Jiao Tong University (China); Shanghai Mental Health Center (China); University of Hong Kong (Hong Kong SAR China)
Journal: General psychiatry, volume 39, issue 5, article e70062
Dates: received 8 January 2026; accepted 19 August 2026; published online 21 October 2026; in print October 2026
Type: Research article · Language: English
License: CC BY-NC
Identifiers: DOI 10.1002/gps3.70062 · PMID 42910247 · PMCID PMC13685676 · OpenAlex W7223091450
Open access: diamond, a free copy (OpenAlex)
Status: code verified (how the code is found and verified)
Categories: genetics / omics (modality), human (organism), Alzheimer's / dementia (population), cellular / molecular (subfield)
Methods: Statistics, Smoothing, state filtering, decompositions, Machine learning, Connectivity, Spectral & time-frequency
Keywords: Alzheimer's disease, cilia‐related pathways, rare variants, whole‐exome sequencing
Topic: Alzheimer's disease research and treatments (Cellular and Molecular Neuroscience, Neuroscience), according to OpenAlex
Citations: not cited yet (Europe PMC); 115 references in the paper

Abstract

Background: Alzheimer's disease (AD), the most prevalent form of dementia, is highly heritable, yet much of its genetic basis remains unexplained. Most genetic studies have focused on European populations, with limited data from under‐represented groups. Whole‐exome sequencing (WES) in the Han Chinese population may help identify novel rare variants and population‐specific genetic risk factors.

Aims: This study aims to use WES to identify potential candidate genes associated with dementia and AD in the Han Chinese population.

Methods: In this exploratory pilot study, we performed WES in 63 Han Chinese patients with dementia, including 43 with AD and 20 with non‐AD dementia (including one with dementia with Lewy bodies, one with Parkinson's dementia, four with frontotemporal dementia and 14 with mixed dementia), to identify rare coding variants. Gene‐based case–control burden analyses using public gnomAD controls were conducted in the overall dementia cohort and the AD subgroup. Protein–protein interaction, functional enrichment, weighted gene coexpression network analysis (WGCNA) and gene set variation analysis (GSVA) using single‐nucleus RNA sequencing (snRNA‐seq) datasets were performed to evaluate biological relevance and cell‐type‐specific activity. Cell‐type marker enrichment analysis was used to identify relevant neuronal subtypes. Multilevel evidence was integrated to prioritise candidate risk genes.

Results: We identified suggestive rare variant signals in genes involved in cilia‐related pathways, with stronger signals in the AD subgroup. These candidate genes were enriched in WGCNA modules associated with ageing, microtubule organisation and dementia pathology. GSVA showed increased activity of candidate genes in astrocytes using the snRNA‐seq dataset. Cell‐type marker analysis revealed strong enrichment in Ex6 excitatory neurons. Finally, integration of multilevel evidence prioritised 10 candidate genes.

Conclusions: This pilot study provides preliminary evidence that cilia‐related pathways may be involved in dementia, especially AD susceptibility in the Han Chinese population. Further validation in larger independent cohorts with ancestry‐matched controls and in functional experiments is required. Larger sample sizes for each dementia subtype will improve the detection of both dementia‐shared and subtype‐specific signals.

Reproduced under the paper's license (CC BY-NC), from the paper cited above.

Repository

Its files are read in the Code ↔ Paper reader above, with 4 matches between paragraphs and lines of code.

bcbio/bcbio-nextgen

License: MIT
State: the link answers, verified on 2 November 2026
Evidence: files inventoried
Commit: 594339fd1a9694c8f8ed61084e2bd5740cfd59b0, 24 August 2024
Languages: Python (297), Shell (17), R (2)
Size: 581 files, 316 scripts
Software Heritage: archived
Found in: the text, “Variant filtering”
Holds: README, license file, environment (requirements-conda.txt, requirements-dev.txt, requirements.txt, setup.cfg, setup.py, docs/requirements-local.txt, docs/requirements.txt), tests, continuous integration, documentation, 1 notebook
Not found: CITATION.cff
Tools: pysam (31 files), BEDTools (27 files), pandas (27 files), NumPy (19 files), Biopython (5 files), SciPy (3 files), DESeq2 (2 files), SAMtools (2 files), statsmodels (2 files), tidyverse (2 files), BCFtools (1 file), ggplot2 (1 file), h5py (1 file), Matplotlib (1 file)
Availability: 2 checks, the latest on 2 November 2026: the link answers
  • 2 November 2026: the link answers
  • 3 October 2026: the link answers
318 files

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;
  • 316 scripts, each with its path and the digest of its content;
  • 4 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

Other data links

Data availability statement

All data needed to evaluate the conclusions in the paper are present in the paper and/or the Supplementary Materials.

Reproduced under the paper's license (CC BY-NC), 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, 25 October 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 10 authors, 4 keywords, 112 references.

Cite

This paper

Deng, M., Chen, Y., Zhao, L., Song, W., Qiu, Q., Sun, L., Lin, X., Wang, W., Lin, G. N., & Li, X. (2026). Astrocyte-enriched and cilia-related genetic signatures in dementia: A whole-exome sequencing study. General psychiatry, 39(5), e70062. https://doi.org/10.1002/gps3.70062

BibTeX

@article{deng2026astrocyte,
author = {Deng, Miaohan and Chen, Yucan and Zhao, Lu and Song, Weichen and Qiu, Qi and Sun, Lin and Lin, Xiang and Wang, Weidi and Lin, Guan Ning and Li, Xia},
title = {{Astrocyte-enriched and cilia-related genetic signatures in dementia: A whole-exome sequencing study}},
journal = {General psychiatry},
year = {2026},
month = oct,
volume = {39},
number = {5},
pages = {e70062},
publisher = {Shanghai Mental Health Center},
issn = {2517-729X},
doi = {10.1002/gps3.70062},
url = {https://doi.org/10.1002/gps3.70062},
pmid = {42910247},
pmcid = {PMC13685676}
}

RIS

TY - JOUR
AU - Deng, Miaohan
AU - Chen, Yucan
AU - Zhao, Lu
AU - Song, Weichen
AU - Qiu, Qi
AU - Sun, Lin
AU - Lin, Xiang
AU - Wang, Weidi
AU - Lin, Guan Ning
AU - Li, Xia
TI - Astrocyte-enriched and cilia-related genetic signatures in dementia: A whole-exome sequencing study
T2 - General psychiatry
J2 - Gen Psychiatr
PY - 2026
DA - 2026/10/21
VL - 39
IS - 5
SP - e70062
SN - 2517-729X
PB - Shanghai Mental Health Center
DO - 10.1002/gps3.70062
UR - https://doi.org/10.1002/gps3.70062
LA - en
ER -

CSL-JSON

{
"id": "10.1002/gps3.70062",
"type": "article-journal",
"title": "Astrocyte-enriched and cilia-related genetic signatures in dementia: A whole-exome sequencing study",
"container-title": "General psychiatry",
"author": [
{
"family": "Deng",
"given": "Miaohan"
},
{
"family": "Chen",
"given": "Yucan"
},
{
"family": "Zhao",
"given": "Lu"
},
{
"family": "Song",
"given": "Weichen"
},
{
"family": "Qiu",
"given": "Qi"
},
{
"family": "Sun",
"given": "Lin"
},
{
"family": "Lin",
"given": "Xiang"
},
{
"family": "Wang",
"given": "Weidi"
},
{
"family": "Lin",
"given": "Guan Ning"
},
{
"family": "Li",
"given": "Xia"
}
],
"container-title-short": "Gen Psychiatr",
"volume": "39",
"issue": "5",
"page": "e70062",
"DOI": "10.1002/gps3.70062",
"PMID": "42910247",
"PMCID": "PMC13685676",
"ISSN": "2517-729X",
"publisher": "Shanghai Mental Health Center",
"URL": "https://doi.org/10.1002/gps3.70062",
"language": "en",
"issued": {
"date-parts": [
[
2026,
10,
21
]
]
}
}

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-025-59949-y [code]
Whole-genome sequencing analyses suggest novel genetic factors associated with Alzheimer's disease and a cumulative effects model for risk liability.
Journal: Nature communications
In common: BCFtools, pysam, BEDTools, 8 other tools, Alzheimer's / dementia, genetics / omics, 7 references
[2] doi:10.1016/j.isci.2025.111835 [code]
Pangenome reconstruction in rats enhances genotype-phenotype mapping and variant discovery.
Journal: iScience
In common: BCFtools, pysam, Biopython, 10 other tools, genetics / omics, 3 references
[3] doi:10.1002/dad2.70103 [code]
Association of RDoC dimensions with &lt;i&gt;post mortem&lt;/i&gt; brain transcriptional profiles in Alzheimer's disease.
Journal: Alzheimer's & dementia (Amsterdam, Netherlands)
In common: BCFtools, pysam, Biopython, 11 other tools, Alzheimer's / dementia, cellular / molecular, 2 references
[4] doi:10.1002/alz.71271 [code]
Intracellular protein GBF1 displays significant associations with amyloid pathology in Alzheimer's disease.
Journal: Alzheimer's & dementia : the journal of the Alzheimer's Association
In common: BCFtools, pysam, Biopython, 11 other tools, Alzheimer's / dementia, cellular / molecular, 1 reference
[5] doi:10.1038/s41467-025-57751-4 [code]
Cross-ancestry genome-wide association study identifies implications of SORL1 in cerebral beta-amyloid deposition.
Journal: Nature communications
In common: BCFtools, BEDTools, SAMtools, 8 other tools, Alzheimer's / dementia, genetics / omics, cellular / molecular, 5 references
[6] doi:10.1038/s41467-026-76675-1 [code]
Long-read proteogenomic atlas of human neuronal differentiation reveals isoform diversity informing neurodevelopmental risk mechanisms.
Journal: Nature communications
In common: pysam, Biopython, BEDTools, 9 other tools, genetics / omics, 4 references
[7] doi:10.1038/s41467-024-52463-7 [code]
A cell type-aware framework for nominating non-coding variants in Mendelian regulatory disorders.
Journal: Nature communications
In common: BCFtools, pysam, BEDTools, 8 other tools, genetics / omics, cellular / molecular, 4 references
[8] doi:10.1038/s41467-023-43062-z [code]
Mutation of key signaling regulators of cerebrovascular development in vein of Galen malformations.
Journal: Nature communications
In common: BCFtools, pysam, Biopython, 7 other tools, genetics / omics, cellular / molecular, 4 references
[9] doi:10.3389/fnins.2025.1633386 [code]
Differential susceptibility to prenatal stress exposure in serotonin transporter-deficient female mice-an epigenetic exploration.
Journal: Frontiers in neuroscience
In common: BCFtools, pysam, Biopython, 11 other tools, genetics / omics
[10] doi:10.1038/s41467-023-41715-7 [code]
Mapping the spatial transcriptomic signature of the hippocampus during memory consolidation.
Journal: Nature communications
In common: BCFtools, pysam, Biopython, 11 other tools, genetics / omics

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.

Add the badge to the code's README

OSCR: the badge of this paper

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 -->
[![OSCR](https://openscicode.org/badge/doi/10.1002/gps3.70062.svg)](https://openscicode.org/badge/doi/10.1002/gps3.70062)
<!-- oscr-badge:end -->
reStructuredText
.. oscr-badge:start

.. image:: https://openscicode.org/badge/doi/10.1002/gps3.70062.svg
   :target: https://openscicode.org/badge/doi/10.1002/gps3.70062
   :alt: OSCR

.. oscr-badge:end
HTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1002/gps3.70062"><img src="https://openscicode.org/badge/doi/10.1002/gps3.70062.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->

On GitHub, open the README, choose Edit (the pencil), paste the snippet under the title, then "Commit changes".

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)

Versions of its code: the releases of its code tied to a version of this paper (the preprint, the accepted manuscript, the version of record…), each with the tracing map versioned with it.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.