Script Checker for deepTools - notice ===================================== Source ------ Script Checker for deepTools is derived from the agent skill @k-dense-ai/deeptools, part of k-dense-ai/scientific-agent-skills (https://github.com/k-dense-ai/scientific-agent-skills), skills/deeptools at commit 49c6e97775eaa18ba791bebe23162a70ae601c18. MIT License, Copyright (c) 2025 K-Dense Inc. - the full text is in LICENSE-scientific-agent-skills.txt. Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065. deepTools itself is not included and is not run. deepTools is by Ramirez et al. (deepTools2: a next generation web server for deep-sequencing data analysis, Nucleic Acids Research 2016). This page is not affiliated with the deepTools project. What is ported, and how it was checked -------------------------------------- 1. dtgen.js - a JavaScript port of the skill's scripts/workflow_generator.py. The four script bodies were extracted from the Python module itself (its generate_* functions called with marker values), so they are byte-identical by construction. The command-line handling (argparse type=int, the sanitizers in the script's order, shlex.split/shlex.quote, the stdout/stderr text and exit status, argparse usage wrapped at 80 columns) was compared with the Python run in-process on 3,000 randomly generated forms: all identical. Not reproduced: the file write itself (the page offers the script as a download; the Python raises FileNotFoundError when -o names a folder that does not exist), and the full --help text when no workflow is given (the page says so instead). 2. dtgen.js bedCheck() - the text part of scripts/validate_files.py check_bed_file(). Checking that a BAM, bigWig or BED file exists, is readable or has a .bai index needs your filesystem and is not reproduced. 3. dtargs.js - an emulation of Python 3.12 argparse (Lib/argparse.py as in CPython 3.12.11) over the argument declarations of all 20 deepTools 3.5.6 commands, which were read from the installed deeptools==3.5.6 package by introspecting each tool's own parser (dtspec.js is generated from that, not written by hand). It was compared with the real parsers (Python 3.12.11, deeptools 3.5.6, argparse.FileType and deepTools' writableFile type replaced by plain strings because they touch the filesystem) on 34,000 randomly generated command lines covering every tool and subcommand, abbreviations, "=" values, attached single-dash values, missing and extra values, bad types and choices, "--", negative numbers, help and version: exit status, error message and the program name the error is printed under were identical in every case. Error wording differs slightly between Python versions (older releases, for example, quote each choice in an "invalid choice" message); the page models 3.12.11. After parsing, the page applies the argument-only exits in each tool's main() or process_args() as they appear in the deepTools 3.5.6 source (file and line are quoted with each flag). These were read from the source, not differentially tested. 4. The page's own checks ("page" flags) quote the skill's SKILL.md, validate_files.py or the deepTools documentation. They are the page's reading of that guidance, not deepTools behaviour. Effective genome sizes ---------------------- Two tables are shipped, both fetched on 2026-09-27 and compared number by number: - deeptools.readthedocs.io/en/3.5.6/content/feature/effectiveGenomeSize.html (the version the skill pins; its values agree with the skill's own SKILL.md table), - deeptools.readthedocs.io/en/latest/content/feature/effectiveGenomeSize.html (the current docs, deepTools 4.0.0 on PyPI on that date), where several non-N values were recomputed - for example GRCh38 2913022398 -> 3130250755 and GRCm38 2652783500 -> 2677331709. The skill's own effective_genome_sizes.md also lists ce10 = 100258171, which appears in neither table; the page does not use it. Findings about the skill's own material --------------------------------------- Run through the checks above, these examples in the skill would stop with an argparse error on deepTools 3.5.6: - the generated chipseq_qc script, and examples in references/workflows.md, references/tools_reference.md, references/normalization_methods.md, references/core_workflows.md and assets/quick_reference.md: plotCorrelation without its required --whatToPlot/-p (they pass --whatToShow, which plotCorrelation does not accept); - references/effective_genome_sizes.md: bamCompare --scaleFactorsMethod RPGC (not a valid choice) and computeGCBias without its required --GCbiasFrequenciesFile/-freq; - references/workflows.md: computeGCBias without -freq, and plotProfile --xAxisLabel (not a plotProfile option). references/normalization_methods.md also lists RPGC as available in bamCompare; bamCompare 3.5.6 exits on it (bamCompare.py:254). Independent tool, not affiliated with or endorsed by the deepTools project or the Max Planck Institute of Immunobiology and Epigenetics. "deepTools" names the open-source software it checks (MIT licence, Max Planck Institute of Immunobiology and Epigenetics); it is used here only to say what the page checks.