Multiple system atrophy is associated with brain somatic mutations in clonal hematopoiesis genes
The 8 matches
- [1] § Materials and methods › Processing of sequencing data ↔ 2.BAM-DeDuplication/2a_agent_creak.py, lines 1 to 37 · score 0.91 · single strand consensus, CReaK, AGeNT, Hybrid MS1, consensus BAMs, Hybrid MS2 · Report a mismatch
- [2] § Materials and methods › Processing of sequencing data ↔ 1.fastq_trim_QC_Align/1c_alignment.py, lines 1 to 29 · score 0.81 · BWA MEM, reference genome, FASTQ, collapse, v0, flag · Report a mismatch
- [3] § Materials and methods › Somatic mutation calling and filtering pipeline ↔ 5.Indel-filtering/5d_indel_exclude_repeats.py, lines 1 to 31 · score 0.78 · repetitive regions, RepeatMasker, Duplex consensus, indel VCFs, overlapping, hg38 · Report a mismatch
- [4] § Materials and methods › Target gene panel and enrichment strategy ↔ 2.BAM-DeDuplication/2a_agent_creak.py, lines 1 to 37 · score 0.71 · generating consensus sequences, low frequency somatic, somatic variants, tag, molecular, strands · Report a mismatch
- [5] § Materials and methods › Somatic mutation calling and filtering pipeline ↔ 2.BAM-DeDuplication/2b_add_read_groups.py, lines 48 to 61 · score 0.63 · Hybrid MS2 BAMs, Duplex BAMs, Hybrid MS1 · Report a mismatch
- [6] § Materials and methods › Somatic mutation calling and filtering pipeline ↔ 5.Indel-filtering/5_filter_indels_wrapper.py, lines 62 to 196 · score 0.61 · RepeatMasker, filtering parameters, indel VCFs, quality, hg38, pipeline · Report a mismatch
- [7] § Materials and methods › Somatic mutation calling and filtering pipeline ↔ 4.SNV-filtering/4c_filter_read_quality.py, lines 1 to 25 · score 0.58 · mapping quality, strand bias, bp, events, filtered, variants · Report a mismatch
- [8] § Materials and methods › Somatic mutation calling and filtering pipeline ↔ 4.SNV-filtering/4_filter_snvs_wrapper.py, lines 61 to 178 · score 0.53 · strand bias, mapping quality, SOR, pipeline, events, filtered · 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 · 356 lines · 11 KB · no license · 2 matches
- #!/usr/bin/env python3
- """
- Step 2a: CReaK Molecular Consensus Calling
- Generates and submits SGE jobs to run AGeNT CReaK consensus calling at one or
- more stringency levels. Groups reads by MBC and generates consensus sequences
- for accurate low-frequency somatic variant detection.
- Stringency levels:
- MS1 — HYBRID mode, min single strand consensus 1 (maximum sensitivity)
- MS2 — HYBRID mode, min single strand consensus 2 (balanced)
- DUPLEX — DUPLEX mode (maximum specificity, both strands in agreement required)
- Input:
- - Directory containing sample subdirectories, each with a sorted BAM
- ending in *_sorted.bam (MBC tags must be present from steps 1a-1c)
- Output:
- - Consensus BAMs in per-stringency subdirectories:
- {output_bam_dir}/MS1/{sample}_hybrid_MS1.bam
- {output_bam_dir}/MS2/{sample}_hybrid_MS2.bam
- {output_bam_dir}/DUPLEX/{sample}_duplex.bam
- Requirements:
- - AGeNT (v3.1.2 or later)
- - Java 17+
- - SGE cluster with qsub
- - config_2a_agent_creak.yaml
- """
- import os
- import copy
- import subprocess
- import time
- import yaml
- import argparse
- from pathlib import Path
- def load_config(config_path):
- """Load configuration from YAML file."""
- with open(config_path, 'r') as f:
- return yaml.safe_load(f)
- def find_sorted_bam(sample_dir, bam_suffix):
- """
- Find sorted BAM file in a sample directory.
- Returns:
- Path to BAM file or None if not found.
- """
- bam_candidates = [f for f in os.listdir(sample_dir) if f.endswith(bam_suffix)]
- if len(bam_candidates) == 0:
- print(f"Warning: No BAM file found in {sample_dir}")
- return None
- elif len(bam_candidates) > 1:
- print(f"Warning: Multiple BAM files found in {sample_dir}")
- print(f" Candidates: {bam_candidates}")
- print(f" Using first match: {bam_candidates[0]}")
- return os.path.join(sample_dir, bam_candidates[0])
- def verify_dependencies(config):
- """
- Verify required tools exist.
- Raises:
- FileNotFoundError: If dependencies are missing.
- """
- agent_path = config['tools']['agent_path']
- java_home = config['tools']['java_home']
- if not os.path.exists(agent_path):
- raise FileNotFoundError(f"AGeNT tool not found: {agent_path}")
- if not os.path.exists(java_home):
- raise FileNotFoundError(f"Java installation not found: {java_home}")
- print(f"✓ AGeNT found: {agent_path}")
- print(f"✓ Java found: {java_home}")
- def get_output_suffix(consensus_mode, min_stringency):
- """Return output BAM suffix based on consensus parameters."""
- if consensus_mode.upper() == "DUPLEX":
- return "_duplex"
- elif consensus_mode.upper() == "HYBRID":
- return f"_hybrid_MS{min_stringency}"
- else:
- return "_consensus"
- def create_qsub_script(sample_name, config, input_bam, output_dir, script_dir, stringency_label):
- """
- Create SGE job script for AGeNT CReaK consensus calling.
- Returns:
- Path to created job script, or None if output already exists.
- """
- output_suffix = get_output_suffix(
- config['creak']['consensus_mode'],
- config['creak']['min_stringency']
- )
- output_bam = os.path.join(output_dir, f"{sample_name}{output_suffix}.bam")
- if os.path.exists(output_bam) and os.path.getsize(output_bam) > 0:
- print(f" ⚠ Output already exists: {os.path.basename(output_bam)} (skipping)")
- return None
- java_home = config['tools']['java_home']
- java_env = f"""export JAVA_HOME={java_home}
- export PATH={java_home}/bin:$PATH"""
- creak_params = config['creak']
- creak_cmd = f"""{config['tools']['agent_path']} creak \\
- -MD {creak_params['max_distance']} \\
- -MS {creak_params['min_stringency']} \\
- -c={creak_params['consensus_mode']} \\
- -s={creak_params['sample_size']} \\
- -mm={creak_params['max_mismatches']} \\
- -mr={creak_params['max_read_length']} \\
- -mq={creak_params['min_mapping_quality']}"""
- if creak_params.get('memory_efficient', True):
- creak_cmd += " \\\n --memory-efficient-mode"
- if creak_params.get('force_overwrite', True):
- creak_cmd += " \\\n -F"
- if creak_params.get('filter_mode', True):
- creak_cmd += " \\\n -f"
- if creak_params.get('retain_singletons', True):
- creak_cmd += " \\\n -r"
- creak_cmd += f" \\\n -o={output_bam} \\\n {input_bam}"
- job_script_template = """#!/bin/bash
- #$ -N creak_{sample}_{stringency}
- #$ -l h_vmem={memory}
- #$ -pe smp {cores}
- #$ -l h_rt={wall_time}
- #$ -cwd
- #$ -o {log_dir}/{sample}_creak_{stringency}.stdout
- #$ -e {log_dir}/{sample}_creak_{stringency}.stderr
- # Set Java environment (required for AGeNT)
- {java_env}
- # Verify Java version
- java -version
- INPUT_BAM={input_bam}
- OUTPUT_BAM={output_bam}
- echo "Starting AGeNT CReaK for {sample} ({stringency})..."
- echo " Input BAM: $(basename $INPUT_BAM)"
- echo " Output BAM: $(basename $OUTPUT_BAM)"
- echo " Consensus mode: {consensus_mode}"
- echo " Minimum stringency: MS{min_stringency}"
- # Run AGeNT CReaK
- {creak_cmd}
- # Verify output
- if [ -f "$OUTPUT_BAM" ]; then
- SIZE=$(stat -f%z "$OUTPUT_BAM" 2>/dev/null || stat -c%s "$OUTPUT_BAM" 2>/dev/null)
- echo "✓ CReaK completed successfully"
- echo " Output BAM: $(basename $OUTPUT_BAM)"
- echo " File size: $SIZE bytes"
- else
- echo "✗ ERROR: Output BAM not created"
- exit 1
- fi
- """
- job_script = job_script_template.format(
- sample=sample_name,
- stringency=stringency_label,
- memory=config['sge']['memory'],
- cores=config['sge']['cores'],
- wall_time=config['sge']['wall_time'],
- log_dir=output_dir,
- java_env=java_env,
- input_bam=input_bam,
- output_bam=output_bam,
- consensus_mode=creak_params['consensus_mode'],
- min_stringency=creak_params['min_stringency'],
- creak_cmd=creak_cmd
- )
- job_script_path = os.path.join(script_dir, f"{sample_name}_creak_{stringency_label}.sh")
- with open(job_script_path, "w") as f:
- f.write(job_script)
- return job_script_path
- def submit_jobs_in_batches(job_scripts, batch_size, pause_time):
- """Submit jobs to SGE in batches."""
- for i in range(0, len(job_scripts), batch_size):
- batch = job_scripts[i:i + batch_size]
- print(f"\n=== Submitting batch {i // batch_size + 1} ({len(batch)} jobs) ===")
- for job_script in batch:
- result = subprocess.run(
- ["qsub", job_script],
- capture_output=True,
- text=True
- )
- if result.returncode == 0:
- print(f" ✓ Submitted: {os.path.basename(job_script)}")
- print(f" {result.stdout.strip()}")
- else:
- print(f" ✗ Failed: {os.path.basename(job_script)}")
- print(f" Error: {result.stderr.strip()}")
- if i + batch_size < len(job_scripts):
- print(f" Pausing {pause_time}s before next batch...")
- time.sleep(pause_time)
- def run_stringency(stringency, config, dry_run):
- """
- Run CReaK pipeline for a single stringency level.
- Returns:
- List of job scripts generated.
- """
- cfg = copy.deepcopy(config)
- stringency_map = {
- 'MS1': {'mode': 'HYBRID', 'min_stringency': 1, 'suffix': 'MS1'},
- 'MS2': {'mode': 'HYBRID', 'min_stringency': 2, 'suffix': 'MS2'},
- 'DUPLEX': {'mode': 'DUPLEX', 'min_stringency': 2, 'suffix': 'DUPLEX'}
- }
- stringency_params = stringency_map[stringency]
- cfg['creak']['consensus_mode'] = stringency_params['mode']
- cfg['creak']['min_stringency'] = stringency_params['min_stringency']
- base_output_dir = cfg['paths']['output_bam_dir']
- output_dir = os.path.join(base_output_dir, stringency_params['suffix'])
- script_dir = cfg['paths']['job_scripts_dir']
- os.makedirs(output_dir, exist_ok=True)
- os.makedirs(script_dir, exist_ok=True)
- print(f"\n{'='*60}")
- print(f"Stringency: {stringency}")
- print(f"Consensus Mode: {cfg['creak']['consensus_mode']}")
- print(f"Min Stringency: MS{cfg['creak']['min_stringency']}")
- print(f"Output Directory: {output_dir}")
- print(f"{'='*60}\n")
- input_dir = cfg['paths']['input_bam_dir']
- job_scripts = []
- print(f"Scanning for samples in: {input_dir}\n")
- for sample in sorted(os.listdir(input_dir)):
- sample_dir = os.path.join(input_dir, sample)
- if not os.path.isdir(sample_dir):
- continue
- print(f"Processing sample: {sample}")
- input_bam = find_sorted_bam(sample_dir, cfg['bam']['input_suffix'])
- if input_bam is None:
- print(f" ⚠ Skipping {sample} - BAM file not found\n")
- continue
- print(f" Input BAM: {os.path.basename(input_bam)}")
- job_script_path = create_qsub_script(
- sample_name=sample,
- config=cfg,
- input_bam=input_bam,
- output_dir=output_dir,
- script_dir=script_dir,
- stringency_label=stringency
- )
- if job_script_path is not None:
- job_scripts.append(job_script_path)
- print(f" ✓ Job script created: {os.path.basename(job_script_path)}\n")
- else:
- print()
- return job_scripts
- def main():
- """Main execution function."""
- parser = argparse.ArgumentParser(
- description='Generate and submit AGeNT CReaK jobs for molecular consensus calling',
- epilog='Example: python 2a_agent_creak.py --config config_2a_agent_creak.yaml --stringency MS1 MS2 DUPLEX'
- )
- parser.add_argument(
- '--config',
- default='config/04_agent_creak_config.yaml',
- help='Path to configuration file (default: config/04_agent_creak_config.yaml)'
- )
- parser.add_argument(
- '--stringency',
- choices=['MS1', 'MS2', 'DUPLEX'],
- nargs='+',
- required=True,
- help='One or more stringency levels to run: MS1 MS2 DUPLEX'
- )
- parser.add_argument(
- '--dry-run',
- action='store_true',
- help='Generate job scripts but do not submit them'
- )
- args = parser.parse_args()
- config = load_config(args.config)
- print("Checking dependencies...")
- verify_dependencies(config)
- all_job_scripts = []
- for stringency in args.stringency:
- job_scripts = run_stringency(stringency, config, args.dry_run)
- all_job_scripts.extend(job_scripts)
- print(f"\n{'='*60}")
- print(f"Generated {len(all_job_scripts)} job scripts total")
- print(f"Stringencies processed: {', '.join(args.stringency)}")
- print(f"{'='*60}\n")
- if len(all_job_scripts) == 0:
- print("No jobs to submit. Exiting.")
- return
- if args.dry_run:
- print("DRY RUN: Jobs not submitted.")
- print("Job scripts saved to:", config['paths']['job_scripts_dir'])
- else:
- submit_jobs_in_batches(
- all_job_scripts,
- batch_size=config['submission']['batch_size'],
- pause_time=config['submission']['pause_between_batches']
- )
- print("\n✓ All batches submitted successfully")
- if __name__ == "__main__":
- main()
2a_agent_creak.py at commit e9779fd, no license · at the source
Overview
- Department of Clinical and Movement Neurosciences, UCL Queen Square Institute of Neurology, London, UK
- UK Dementia Research Institute, University of Cambridge, Cambridge, UK
- Department of Clinical Neurosciences, School of Clinical Medicine, University of Cambridge, Cambridge, UK
- Queen Square Brain Bank for Neurological disorders, UCL Queen Square Institute of Neurology, London, UK
Abstract
The abstract is not reproduced here: the paper's license (CC BY-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 8 matches between paragraphs and lines of code.
b-thompson-99/XT-HS2-Small-Somatic
e9779fd98ca1408b615e800c1aba940c70973ff5, 23 March 2026Availability: 1 check, the latest on 30 September 2026: the link answers
- 30 September 2026: the link answers
18 files
- 1.fastq_trim_QC_Align/
1a_agent_trim.py , Python, 252 lines - 1.fastq_trim_QC_Align/
1b_fastq_qc.py , Python, 227 lines - 1.fastq_trim_QC_Align/
1c_alignment.py , Python, 292 lines, 1 match - 2.BAM-DeDuplication/
2a_agent_creak.py , Python, 356 lines, 2 matches - 2.BAM-DeDuplication/
2b_add_read_groups.py , Python, 292 lines, 1 match - 3.Variant_Calling/
3a_mutect2_calling.py , Python, 406 lines - 3.Variant_Calling/
3b_separate_variants.py , Python, 272 lines - 4.SNV-filtering/
4_filter_snvs_wrapper.py , Python, 182 lines, 1 match - 4.SNV-filtering/
4a_filter_AF.py , Python, 227 lines - 4.SNV-filtering/
4b_filter_strand_bias.py , Python, 288 lines - 4.SNV-filtering/
4c_filter_read_quality.p , Python, 290 lines, 1 matchy - 4.SNV-filtering/
4d_recurrent_removal.py , Python, 554 lines - 5.Indel-filtering/
5_filter_indels_wrapper. , Python, 200 lines, 1 matchpy - 5.Indel-filtering/
5a_indel_filter_AF.py , Python, 227 lines - 5.Indel-filtering/
5b_indel_filter_SOR.py , Python, 262 lines - 5.Indel-filtering/
5c_indel_filter_read_qua , Python, 275 lineslity.py - 5.Indel-filtering/
5d_indel_exclude_repeats , Python, 233 lines, 1 match.py - README.md, Text, 195 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;
- 17 scripts, each with its path and the digest of its content;
- 8 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
No dataset and no data link were found in the paper.
Code and data availability statement
The paper has a code and data availability statement. Its license (CC BY-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:
- it points to the authors' code: b-thompson-99/
XT-HS2-Small-Somatic - it says that the data are available on request
- it says that the code is available on request
Read it in the paper: doi.org/10.64898/2026.03.17.26346081.
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, journal, dates, 6 authors, 4 keywords, 2 funders, 49 references.
Cite
This paper
Thompson, B., Horner, D., Morley, C., Gustavsson, E., Jaunmuktane, Z., & Proukakis, C. (2026). Multiple system atrophy is associated with brain somatic mutations in clonal hematopoiesis genes. medRxiv (preprint). https://
BibTeX
@article{thompson2026mul
author = {Thompson, Ben and Horner, Dominic and Morley, Caoimhe and Gustavsson, Emil and Jaunmuktane, Zane and Proukakis, Christos},
title = {{Multiple system atrophy is associated with brain somatic mutations in clonal hematopoiesis genes}},
journal = {medRxiv (preprint)},
year = {2026},
month = mar,
publisher = {medRxiv},
doi = {10.64898/
url = {https://
}
RIS
TY - JOUR
AU - Thompson, Ben
AU - Horner, Dominic
AU - Morley, Caoimhe
AU - Gustavsson, Emil
AU - Jaunmuktane, Zane
AU - Proukakis, Christos
TI - Multiple system atrophy is associated with brain somatic mutations in clonal hematopoiesis genes
T2 - medRxiv (preprint)
J2 - medRxiv
PY - 2026
DA - 2026/
PB - medRxiv
DO - 10.64898/
UR - https://
ER -
CSL-JSON
{
"id": "10.64898/
"type": "article",
"title": "Multiple system atrophy is associated with brain somatic mutations in clonal hematopoiesis genes",
"container-title": "medRxiv (preprint)",
"author": [
{
"family": "Thompson",
"given": "Ben"
},
{
"family": "Horner",
"given": "Dominic"
},
{
"family": "Morley",
"given": "Caoimhe"
},
{
"family": "Gustavsson",
"given": "Emil"
},
{
"family": "Jaunmuktane",
"given": "Zane"
},
{
"family": "Proukakis",
"given": "Christos"
}
],
"container-title-short":
"DOI": "10.64898/
"publisher": "medRxiv",
"URL": "https://
"issued": {
"date-parts": [
[
2026,
3,
23
]
]
}
}
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-024-06940-w [code]
- Single-cell somatic copy number variants in brain using different amplification methods and reference genomes.Journal: Communications biologyIn common: BEDTools, genetics / omics, cellular / molecular, 2 references, author Christos Proukakis
- [2] doi:10.1038/s42003-025-08805-2 [code]
- Single cell long read whole genome sequencing reveals somatic transposon activity in human brain.Journal: Communications biologyIn common: genetics / omics, cellular / molecular, 3 references, author Christos Proukakis
- [3] doi:10.1038/s41587-023-02024-y [code]
- Detection of mosaic and population-level structural variants with Sniffles2.Journal: Nature biotechnologyIn common: genetics / omics, 3 references, author Christos Proukakis
- [4] doi:10.1038/s41467-022-34732-5 [code]
- Genome-wide association study of REM sleep behavior disorder identifies polygenic risk and brain expression effects.Journal: Nature communicationsIn common: BEDTools, genetics / omics, 1 reference, author Emil Gustavsson
- [5] doi:10.1126/sciadv.adk1296 [code]
- The annotation of &
lt;i& gt;GBA1& lt;/ i& gt; has been concealed by its protein-coding pseudogene & lt;i& gt;GBAP1& lt;/ i& gt;. Journal: Science advancesIn common: genetics / omics, cellular / molecular, 1 reference, author Emil Gustavsson - [6] doi:10.1093/nar/gkaf1450 [code]
- Accurate detection of somatic single-nucleotide variants from bulk RNA-seq data using RNA-MosaicHunter.Journal: Nucleic acids researchIn common: genetics / omics, 4 references
- [7] doi:10.1126/sciadv.adp8504 [code]
- Astrocytic RNA editing regulates the host immune response to alpha-synuclein.Journal: Science advancesIn common: cellular / molecular, 1 reference, author Emil Gustavsson
- [8] doi:10.1038/s41591-023-02397-2 [code]
- Clonal hematopoiesis is associated with protection from Alzheimer's disease.Journal: Nature medicineIn common: cellular / molecular, 3 references
- [9] doi:10.1038/s41588-025-02217-y [code]
- Detecting and quantifying clonal selection in somatic stem cells.Journal: Nature geneticsIn common: genetics / omics, cellular / molecular, 3 references
- [10] doi:10.1126/science.adu1351 [code]
- Diverse somatic genomic alterations in single neurons in chronic traumatic encephalopathy.Journal: Science (New York, N.Y.)In common: genetics / omics, 3 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, 17 scripts, and 8 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:c664a7198d882335…
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.64898/2026.03.17.26346081)
<!-- oscr-badge:end -->reStructuredText
.. oscr-badge:start
.. image:: https://openscicode.org/badge/doi/10.64898/2026.03.17.26346081.svg
:target: https://openscicode.org/badge/doi/10.64898/2026.03.17.26346081
:alt: OSCR
.. oscr-badge:endHTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.64898/2026.03.17.26346081"><img src="https://openscicode.org/badge/doi/10.64898/2026.03.17.26346081.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.
