001tmf/blatant-why/by-screening
Claude Code and agent skill by 001tmf/blatant-why
- community
Checking that the SKILL.md file is still in the repository.
Install
npx vskill@latest install 001tmf/blatant-why/by-screeningSKILL.md
BY Screening Skill
Comprehensive screening battery for evaluating protein binder and antibody designs produced by PXDesign and BoltzGen. This skill encodes all quality filters, scoring thresholds, liability checks, and developability assessments used to triage designs before experimental validation.
Always run the full screening pipeline before presenting final candidates to the user. Never present unscreened designs as ready for validation.
When to Use This Skill
Use by-screening when you have:
- ✅ Raw design outputs from BoltzGen or PXDesign with refolding predictions (Protenix NPZ + scores)
- ✅ A set of candidate sequences that need PASS/FAIL classification before lab submission
- ✅ A campaign nearing the
/by:approve-labgate — screening MUST run first - ✅ Designs that need PTM liability and developability triage prior to ranking
- ✅ A need to diagnose batch-level failures (all FAIL ipTM, all FAIL RMSD, etc.)
- ✅ The need to apply diversity clustering before presenting top-N candidates
Don't use this skill for:
- ❌ Computing raw scoring metrics → use by-scoring (ipSAE NPZ math, composite formula derivation, multi-seed aggregation)
- ❌ Diagnosing root cause of a failed campaign at the strategy level → use by-failure-diagnosis (modality choice, scaffold selection, target druggability)
- ❌ Generating designs → use boltzgen or pxdesign
- ❌ Selecting which designs to advance to lab AFTER screening — that is the by-design-workflow orchestration step
- ❌ Looking up reference epitopes or target biology → use by-research
Cross-skill hand-off:
| Situation | Skill to call | |
|---|---|---|
| Need raw ipSAE/ipTM numbers from NPZ | by-scoring first, then this skill | |
| Need to apply PASS/FAIL filters to a batch | by-screening (this skill) | |
| Whole batch fails screening (>80% FAIL) | by-failure-diagnosis for strategy correction | |
| Designs pass screening, need rank/select | by-screening Stage 2 + 3, then by-design-workflow |
Quick Start
Run the full composite screen on a single design:
Generate a campaign-ready markdown report:
Parse raw MCP tool output into a tidy table:
Expected runtime: ~2 seconds for 100 designs (pure CPU; no GPU compute).
Inputs
Required:
- Design sequences: CSV or JSON with columns
name,sequence(single-letter AAs) - Scoring metrics: per-design
iptm,plddt(mean over design chain),rmsd_ca(refolding CA-RMSD),ipsae_min(frommcp__by-screening__score_ipsae) - Modality: one of
antibody,nanobody,binder(controls threshold table — see filter-thresholds.md)
Optional:
- CDR regions: list of
[start, end]tuples (0-indexed, end-exclusive) — required for CDR-localized liability triage and CDR length checks - Interface residue indices: list of positions for per-residue pLDDT analysis
- Dual-predictor scores: BoltzGen + Protenix ipTM/ipSAE pairs for
screen_cross_validate - CDR pLDDT: mean pLDDT computed over CDR residues only
Input format example (CSV):
See filter-thresholds.md for the master table of all metrics, defaults, and modality overrides.
Outputs
Primary results:
- Screened CSV (per-design row):
name,verdict(PASS/FAIL/MARGINAL),reason_codes(semicolon-separated), all input scores, plus computed columnsliability_count,weighted_liability_count,net_charge,hydrophobic_fraction,total_cdr_length,composite_score - Reason codes: machine-readable failure tags, e.g.
LOW_IPTM,FAIL_RMSD,CDR_NG,ODD_CYS,EXTREME_CHARGE,LONG_CDR3 - PASS rate: aggregate fraction of designs that cleared all hard filters
Reports:
- Markdown screening report (
generate_screening_report.pyoutput): - PASS rate summary (overall + per-modality)
- Distribution histograms (ipTM, pLDDT, RMSD, ipSAE)
- Top failed criteria (which reason codes are most common)
- Liability breakdown by location (CDR / interface / framework)
- Top-N PASS candidates ranked by composite score
- Tidy scores CSV (
parse_scores.pyoutput): one row per design, one column per metric — suitable for downstream notebooks or Pareto-front analysis
Verdict semantics:
PASS— clears all Stage 1 hard filtersMARGINAL— clears hard filters but flagged on at least one soft criterion (e.g., interface pLDDT 70–75)FAIL— one or more hard filters tripped;reason_codeslists which
Clarification Questions
⚠️ CRITICAL: ASK THIS FIRST. Before running any screening, always confirm you have the required inputs.
- Input data location (ASK THIS FIRST):
- Where are the design sequences and refolding scores? (campaign dir, CSV path, NPZ files?)
- Have you already run
mcp__by-screening__score_ipsaeon the Protenix outputs? If not, run by-scoring first.
- Modality of the designs:
- Antibody (Fv / scFv), nanobody (VHH), or de novo protein binder? Each has different default thresholds (see filter-thresholds.md).
- CDR annotations:
- For antibodies/nanobodies, do you have IMGT or Kabat CDR boundaries? Without them, liability location (CDR vs framework) cannot be assessed.
- Screening stringency:
- Default thresholds (production-grade), relaxed (exploratory tier, accept marginal), or strict (lab-ready only)?
- Output format:
- Tidy CSV for downstream analysis, markdown report for the campaign summary, or both?
- Cross-validation needed?:
- Are these designs heading to
/by:approve-lab? If yes, dual-predictor cross-validation is REQUIRED.
- Failure recovery:
- If all designs fail, do you want automatic diagnosis (calls by-failure-diagnosis) or a raw failure report?
Standard Workflow
🚨 MANDATORY: USE SCRIPTS EXACTLY AS SHOWN — DO NOT WRITE INLINE CODE 🚨
The screening pipeline has three sequential stages plus optional cross-validation. Run them in order.
Step 1: Parse raw scoring outputs
✅ VERIFICATION: ✓ parsed scores: 247 designs / scores_tidy.csv
Step 2: Apply screening battery (hard filters + soft ranking)
✅ VERIFICATION: ✓ screening completed: 247 designs / 38 PASS (15.4%) / 12 MARGINAL / 197 FAIL
Step 3: Generate the campaign-ready report
✅ VERIFICATION: ✓ report written: screening_report.md (PASS rate 15.4%, top reason: LOW_IPTM)
Step 4 (optional): Cross-validate with second predictor
Only required when designs are heading to lab. Use mcp__by-screening__screen_cross_validate:
Anti-patterns
⚠️ CRITICAL — DO NOT:
- ❌ Re-implement the composite formula inline → it lives in
screen_batch.pyand is also a tested MCP tool - ❌ Hard-code absolute paths in scripts → pass via CLI flags
- ❌ Skip Step 1 and parse MCP output ad-hoc → reason codes will be inconsistent
- ❌ Lower the hard-filter thresholds without documenting why → audit trail required
- ❌ Present FAIL designs as candidates "because they look interesting" → MARGINAL is the only escape valve
When Scripts Fail
Follow the script failure hierarchy:
- Fix and Retry (90%) — Missing package? Install. Schema drift in input CSV? Run
parse_scores.pyfirst. - Modify Script (5%) — Threshold needs adjusting for a specific campaign? Edit the script's
THRESHOLDSdict and re-run. - Use as Reference (4%) — Custom screening flow? Read scripts, adapt the approach.
- Write from Scratch (1%) — Only if the input format is fundamentally incompatible (e.g., non-protein design). Document the reason.
If the failure is at the campaign level (whole batch fails, multiple metrics fail together), stop and call by-failure-diagnosis instead of patching scripts.
Decision Points
Threshold profile selection
| Profile | When to use | Effect | |
|---|---|---|---|
exploratory | First-pass triage on a novel target | Loosens ipTM to ≥0.4, RMSD to ≤6.0 Å | |
production (default) | Standard campaign screening | Defaults from filter-thresholds.md | |
strict | Lab-ready candidates only | Raises ipTM to ≥0.6, ipSAE-min to ≥0.5 |
Modality threshold overrides
- Antibody (Fv/scFv): total CDR length ≤70, sequence identity clustering at 90% over CDRs only
- Nanobody (VHH): total CDR length ≤45, CDR-H3 ≤25, lower CDR-H3 pLDDT acceptable (≥60)
- De novo binder: no CDR concept; cluster at 70% sequence identity across full chain
Liability triage decision tree
Weights: CDR=3x, interface=2x, framework=1x. See liability-rules.md.
Common Issues
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingtemplates/.claude/skills/by-screening/SKILL.md
Popularity
- Repository stars
- 119
- Repository forks
- 11
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/001tmf/blatant-why/by-screening)