# Script Checker for deepTools > Check a deepTools bash script against deepTools 3.5.6 before you run it. Free in the browser: the > deeptools agent skill's workflow generator, an emulation of deepTools 3.5.6's own argument parser > for all 20 commands, best-practice checks quoting the skill, effective genome sizes and a BED > check. Two metered lanes add judgement: a review with a corrected script, or a drafted pipeline > that the page checks again. URL: https://deeptools-desk.skillsafe.ai/ API: https://deeptools-desk.skillsafe.ai/api.html Tokens: https://deeptools-desk.skillsafe.ai/tokens.html Model: gpt-terra (the balanced GPT tier alias on SkillSafe) Source skill: @k-dense-ai/deeptools (k-dense-ai/scientific-agent-skills, MIT) - deepTools for ChIP-seq, ATAC-seq and RNA-seq coverage tracks, QC, heatmaps and profiles. Independent tool, not affiliated with or endorsed by the deepTools project or the Max Planck Institute of Immunobiology and Epigenetics. ## What runs free, in the browser - Generator: a JavaScript port of the skill's scripts/workflow_generator.py. It produces the four bash templates (chipseq_qc, chipseq_analysis, rnaseq_coverage, atacseq) byte for byte, with the same options, and shows the equivalent Python command line. - Script check: any pasted or dropped deepTools script is split into commands (bash quoting, continuations, variables and arrays it can resolve), and each deepTools command line is run through an emulation of deepTools 3.5.6's own argparse for all 20 commands: required options, choices, types, unambiguous prefixes, mutually exclusive groups, sub-commands. It adds each tool's argument-only exits from its main(), such as bamCoverage --normalizeUsing RPGC without --effectiveGenomeSize, bamCompare with RPGC, or --normalizeUsing without --scaleFactorsMethod None. Values the page cannot resolve (an unset variable, $(...), TO_FILL) are reported as unchecked, never guessed. - Best-practice checks, each quoting the skill's SKILL.md or the deepTools docs: extending reads in ChIP-seq but never in RNA-seq, a length for --extendReads on single-end reads, the ATAC-seq Tn5 shift (and an explicit --shift overriding --ATACshift), plotFingerprint before detailed analysis, one normalization method across compared samples, no --ignoreDuplicates after GC correction, indexed BAMs, and an effective genome size that matches the chosen assembly. - Effective genome sizes for the chosen assembly, from the deepTools 3.5.6 table and from the current deepTools docs (non-N and by read length 50 to 250). Several non-N values were recomputed after 3.5.6; GRCh38 is 2913022398 in the 3.5.6 table and 3130250755 in the current one. - BED check: the rules of the skill's scripts/validate_files.py (at least 3 tab-separated columns, integer start below end). ## A notable finding The skill's own chipseq_qc template, and several of its reference examples, call plotCorrelation without its required --whatToPlot/-p (and with --whatToShow, which is a plotHeatmap option). On deepTools 3.5.6 that stops with an argparse error ("the following arguments are required: --whatToPlot/-p"), so the generated QC script ends at its second step. The page flags it; the review lane's corrected script uses --whatToPlot heatmap. ## The paid lanes Input: {"task": "review"|"plan", "facts": "", "script" (review) | "experiment" (plan), "context"?, "question"? (review)}. facts carries the version (3.5.6), the assay, layout and assembly, the genome sizes, and for a review the numbered commands with their parse results and the numbered flags (source tool = what deepTools does, page = the page's check). - review -> status blocked | fix_first | ready, a stance on every flag (confirmed, context, disputed; a tool flag can only be confirmed), findings tied to command numbers, QC checkpoints, the full corrected script (or "" when nothing needs to change), and what to confirm. - plan -> status draft, assumptions, ordered steps (tool, purpose, why), the normalization method (RPGC, CPM, BPM, RPKM, None, log2 ratio (readCount) or mixed), the full bash script, QC checkpoints and what to confirm. Values not given become TO_FILL shell variables. Every script in a reply is parsed in the page with the same deepTools 3.5.6 checks, and every error is shown to the owner. The model never sees data and may not claim results. ## Limits The page never opens your BAM or bigWig files: no read counts, indexes, chromosome names or genome builds are verified against the data (only a BED file you paste is checked). The emulation models deepTools 3.5.6, the version the skill pins; other deepTools versions may accept different options. ## Citation 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: Ramirez et al., deepTools2, Nucleic Acids Research 2016.