CtrlK
BlogDocsLog inGet started
Tessl Logo

pydeseq2

Performs bulk RNA-seq differential expression analysis with PyDESeq2, including count validation, formula designs, explicit contrasts, Wald tests, FDR correction, coefficient-matched LFC shrinkage, and result visualization. Use for PyDESeq2 or Python DESeq2 workflows with biological replicates.

75

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

86%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-engineered body: fully executable quick-start commands with precise flag and output semantics, a clearly sequenced six-step analysis contract with named validation checks, and a verified one-level-deep reference structure. The only slack is minor: a few misconception-correction sentences Claude could be trusted to know, light repetition between the analysis contract and pitfall sections, and a long citation procedure.

Suggestions

Trim or relocate sentences that correct general statistical misconceptions Claude already holds (e.g., the padj < alpha interpretation sentence and the ORA/preranking caveats paragraph) into workflow_guide.md, keeping only the PyDESeq2-specific behavior in the body.

Deduplicate the analysis contract against the later sections — count provenance and prefilter guidance appear in both "Analysis contract" and "Normalization and shrinkage pitfalls"; state each rule once and cross-reference.

Condense the 16-line citation-fetching procedure to its essential rule (cite current version, DOI resolves to latest) and move the network-fetch steps into a reference file.

DimensionReasoningScore

Conciseness

The body is dense with genuinely non-inferable, version-specific guidance ("lfc_shrink() changes both the LFC and the lfcSE. It leaves existing Wald statistics and p-values unchanged"; "Integer checks alone cannot establish raw-count provenance") that earns its tokens, and it assumes Claude's competence throughout. However, a few sentences correct misconceptions Claude likely already holds ("A padj < alpha rule ... is not the probability that an individual result is false"), some analysis-contract points are restated in later pitfall sections, and the 16-line citation-fetching procedure pads the tail — matching anchor 4 (minor over-explanation that could be trimmed) rather than anchor 5 (every token earns its place).

4 / 5

Actionability

The Quick start is copy-paste ready: an exact isolated-environment install ("uv venv --python 3.13 .venv-pydeseq2; uv pip install ... 'pydeseq2==0.5.4' 'anndata==0.13.4'") and a fully specified driver invocation with all flags ("--counts counts.csv --metadata metadata.csv --design '~batch + condition' --contrast condition treated control --min-counts 10 --alpha 0.05 --n-cpus 1 --plots --output results/"). Behavior of every flag (--no-transpose, --no-shrink, --shrink-coeff) and every output file is concretely described, and edge cases route to verified Python patterns in the references — covering the common cases exactly as anchor 5 requires.

5 / 5

Workflow Clarity

The "Analysis contract" gives a clear, correctly ordered six-step sequence (establish design → validate/align → prefilter → full-rank formula → fit with diagnostics → explicit contrast test/export) with checkpoints ("Inspect warnings, convergence and normalization assumptions before interpreting results") and a documented validation surface (the driver "rejects duplicate source CSV headers, unequal sample sets, invalid count values, zero-count samples, missing contrast annotations, and unidentifiable designs") plus resolution guidance. It falls short of anchor 5 only in lacking an explicit validate→fix→retry feedback loop for driver-rejected inputs; resolution is directed ("Resolve unmatched IDs and missing design annotations explicitly; never silently take an intersection") but not loop-structured.

4 / 5

Progressive Disclosure

Verified against the actual bundle: all four referenced files (core_workflow_steps.md, analysis_patterns.md, workflow_guide.md, api_reference.md) and the driver script exist, and references are one level deep — the only links beyond SKILL.md are sibling cross-links and external upstream URLs, with no nested chains. The "Detailed workflows" section signals each reference with a one-line scope description, and the split is appropriate: overview, contract, quick start, and pitfalls in the body; fit code, analysis patterns, and deep API detail in the references. This matches anchor 5 (clear overview, well-signaled one-level-deep references, easy navigation).

5 / 5

Total

18

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is a model example: third-person, comprehensive, and concrete, listing seven specific capabilities followed by an explicit "Use for..." trigger clause with natural synonyms (PyDESeq2 / Python DESeq2) and the biological-replicates qualifier that correctly scopes the skill. It clearly distinguishes itself from generic analysis or single-cell skills.

DimensionReasoningScore

Specificity

The description lists seven concrete, verifiable actions — "count validation, formula designs, explicit contrasts, Wald tests, FDR correction, coefficient-matched LFC shrinkage, and result visualization" — giving comprehensive coverage of the skill's capabilities in third-person voice ("Performs..."). This matches the anchor-5 example (multiple specific concrete actions, comprehensive coverage) and exceeds anchor 4, which expects minor coverage gaps; here every major pipeline stage is named.

5 / 5

Completeness

It explicitly answers both questions: the "what" is "Performs bulk RNA-seq differential expression analysis with PyDESeq2, including..." and the "when" is the explicit trigger clause "Use for PyDESeq2 or Python DESeq2 workflows with biological replicates". This mirrors the anchor-5 example structure (capability list + concrete "Use for/when" triggers), so neither anchor 4 ("when could be more explicit") nor below applies.

5 / 5

Trigger Term Quality

Natural user phrasings are covered: "bulk RNA-seq", "differential expression", "PyDESeq2", and the synonym "Python DESeq2 workflows", plus "biological replicates" which is the qualifier users actually invoke. A user saying "run DESeq2 on my RNA-seq counts in Python" or "differential expression analysis" would hit this description; the only conceivable gap is shorthand like "DGE", which is too minor to drop it to anchor 4.

5 / 5

Distinctiveness Conflict Risk

The niche is clear and narrowly claimed: bulk RNA-seq negative-binomial DE with PyDESeq2 specifically, and it even scopes to "biological replicates", distinguishing itself from single-cell workflows. Triggers (PyDESeq2, Python DESeq2) are tool names that no adjacent skill would own, so conflict risk is minimal, matching anchor 5.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
K-Dense-AI/scientific-agent-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.