001tmf/blatant-why/by-database
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-databaseSKILL.md
Skill: by-database
Use the BY MCP database tools to query PDB, UniProt, and SAbDab for target characterization, antibody scaffold selection, and competition analysis.
When to Use This Skill
Use this skill when you need:
- ✅ Structural metadata for a target (resolution, method, organism, chains)
- ✅ Interface residue lists for hotspot selection in PXDesign / BoltzGen
- ✅ Canonical UniProt sequence, domain boundaries, or known variants
- ✅ Existing antibody-antigen complexes for scaffold selection or competition analysis
- ✅ Cross-referencing PDB residue numbering with UniProt positions
- ✅ Verifying chain composition before generating a design spec
Don't use this skill for:
- ❌ Full target research narrative or literature review → use
by-research - ❌ Epitope hotspot scoring or surface analysis → use
by-epitope-analysis - ❌ Scoring designs (ipSAE, ipTM, liabilities) → use
by-scoring/by-screening - ❌ Web search or PubMed lookups → fall back to PubMed/bioRxiv tools then WebSearch
- ❌ Submitting compute jobs → use
boltzgen,pxdesign,protenixskills
Quick Start
Look up a target end-to-end in three calls:
For batch enrichment of a known list of PDB IDs without an MCP loop:
✅ VERIFICATION: Expect ✓ batch_pdb_lookup completed: 3 rows -> enriched.csv.
Inputs
Required (at least one of):
- PDB ID — 4-character RCSB identifier (e.g.
7S4S). Source:mcp__by-pdb__pdb_search. - UniProt accession — e.g.
Q9NZQ7. Source:mcp__by-uniprot__uniprot_search. - Target name / gene symbol — e.g.
"PD-L1","CD274". Used as free-text query. - Antigen name — for SAbDab antibody lookups (e.g.
"HER2").
Optional:
- Chain IDs — author chain IDs from
mcp__by-pdb__pdb_get_chains(e.g.A,H,L). - Distance cutoff — Angstroms for interface analysis (default 5.0; 4.0 strict, 6.0 extended).
- Species filter — for SAbDab queries (e.g.
"HOMO SAPIENS"). - Output directory — for
mcp__by-pdb__pdb_download.
See references/pdb-quality-metrics.md for resolution and completeness thresholds.
Outputs
All MCP tools return JSON strings. Parse before display — never show raw JSON to the user.
PDB tool outputs:
pdb_search→ list of{pdb_id, title, method, resolution, release_date}.pdb_fetch_structure→ object withpolymer_entity_count,organism, plus the search fields.pdb_get_chains→ list of{chain_id, entity_id, molecule_name, sequence, length}.pdb_interface_residues→{chain1_residues:[{resname,resseq}], chain2_residues:[...], contact_count}.pdb_download→{path, size_bytes}. Files are CIF (preferred) or PDB.
UniProt tool outputs:
uniprot_search→ list of{accession, name, organism, gene_name, length, reviewed}.uniprot_fetch_protein→ full record incl.sequence,function_description,subcellular_location.uniprot_get_domains→ list of{type, description, start, end}.uniprot_get_variants→ list of{type, position, original, variation, description}.
SAbDab tool outputs:
sabdab_search_antibodies/sabdab_search_by_antigen→ list of antibody PDB records.sabdab_get_structure→ detailed record incl.r_free,cdr_lengths,chain_pairings.sabdab_cdr_sequences→{H1, H2, H3, L1, L2, L3}with{sequence, length}each.
Script outputs (this skill's `scripts/`):
batch_pdb_lookup.py→ CSV with one row per PDB ID (resolution, organism, chain count, ligands).find_similar_targets.py→ CSV with related UniProt/PDB entries ranked by % sequence identity.
Clarification Questions
⚠️ CRITICAL: ASK THIS FIRST. Confirm the user actually has identifiers in hand.
- Identifiers (ASK THIS FIRST):
- Do you have a PDB ID, UniProt accession, gene symbol, or just a target name?
- If only a target name, we will start with
mcp__by-pdb__pdb_searchand
mcp__by-uniprot__uniprot_search to resolve canonical IDs.
- Organism:
- Human, mouse, viral, other?
- Determines which UniProt entry is canonical and which PDB structures are relevant.
- Modality intent (drives SAbDab usage):
- Antibody (Fab/IgG), nanobody (VHH), or non-antibody binder?
- Nanobody designs need templates with
light_chain = "". Fabs need both H and L.
- Resolution threshold:
- Default ≤2.5 Å for X-ray. Cryo-EM may go to 3.0–3.5 Å.
- Lower the bar for novel targets where nothing better exists.
- Bound vs apo state:
- For interface analysis you need holo (bound) structures.
- Apo structures are fine for general topology but miss the binding interface.
- Downstream tool:
- PXDesign (de novo binder), BoltzGen (antibody/nanobody), or Protenix (refold only)?
- This affects which fields you must extract (e.g. hotspot range notation vs. CDR lengths).
- Cross-reference need:
- Do you need PDB→UniProt numbering reconciliation?
- Required when reporting hotspot positions across data sources.
Standard Workflow
🚨 MANDATORY: USE MCP TOOLS AS THE PRIMARY DATA PATH 🚨
Do not WebSearch for data that exists in PDB, UniProt, or SAbDab. Batch your MCP calls and present one consolidated summary — never expose raw JSON.
Target Characterization (PDB-first)
mcp__by-pdb__pdb_search(query="<target>")— find available structures.mcp__by-pdb__pdb_fetch_structure(pdb_id="<top>")— compare resolution + method.mcp__by-pdb__pdb_get_chains(pdb_id="<top>")— identify target chain vs. binder vs. ligands.mcp__by-uniprot__uniprot_search(query="<gene> <organism>")then
mcp__by-uniprot__uniprot_fetch_protein — sequence, function, location.
mcp__by-uniprot__uniprot_get_domains(accession=...)— domain boundaries.mcp__by-pdb__pdb_interface_residues(pdb_id=..., chain1=..., chain2=...)— epitope residues.mcp__by-uniprot__uniprot_get_variants(accession=...)— flag polymorphic hotspots.mcp__by-pdb__pdb_download(pdb_id=..., format="cif")— local file for BY design tools.
Antibody Scaffold Selection (SAbDab-first)
mcp__by-sabdab__sabdab_search_by_antigen(antigen_name="<target>")— known antibodies.mcp__by-sabdab__sabdab_get_structure(pdb_id="<top>")— resolution, species, subclass, CDR lengths.mcp__by-sabdab__sabdab_cdr_sequences(pdb_id="<top>")— CDR architectures.- Match CDRH3 length to target depth (10–15 standard, 15–20+ deep pockets, 8–10 flat).
- Pick a high-resolution human (or humanized) scaffold.
mcp__by-pdb__pdb_fetch_structure(pdb_id="<scaffold>")— final quality check.
Competition Analysis
mcp__by-sabdab__sabdab_search_by_antigen— all known antibodies.mcp__by-pdb__pdb_search— non-antibody binders too.mcp__by-pdb__pdb_interface_residueson each competitor — map epitopes.- Compare interface residues across binders → conserved hotspots vs. novel epitope opportunities.
mcp__by-uniprot__uniprot_get_variants— does any escape mutation hit competitor sites?
Batch Lookups (use scripts)
For >5 PDB IDs or >5 UniProt accessions, prefer the scripts in this skill — they deduplicate, retry on transient errors, and emit a single CSV instead of N JSON blobs:
✅ VERIFICATION: Each script prints ✓ <name> completed: N rows -> <path>.
When Scripts Fail
Hierarchy (apply in order):
- Fix and retry (90%) — Install missing dep (
pip install httpx biopython),
then re-run with the same args.
- Modify script (5%) — Edit the local script file (e.g. tighten resolution
filter, change e-value threshold for BLAST).
- Use as reference (4%) — Read the script and call the MCP tools manually
for one-off cases.
- Write from scratch (1%) — Only if the underlying RCSB / UniProt / SAbDab
API has changed in a way that breaks the script. Document why.
Decision tree:
- HTTP 429 / rate limit → step 1 (the script retries with backoff; re-run).
- Missing
httpx/biopython→ step 1 (pip install). - Wrong output columns → step 2 (modify script).
- Tool unavailable in environment → step 3 (MCP fallback).
- API schema changed upstream → step 4 (rewrite + report).
Decision Points
When to prefer X-ray vs. cryo-EM
See references/pdb-quality-metrics.md. Short form: X-ray ≤2.5 Å for interface work; cryo-EM acceptable to ~3.0 Å for large complexes where X-ray is impossible.
Holo vs. apo selection
For interface residues you MUST use a holo (bound) structure. Apo can confirm domain architecture but contact residues will be missing or rearranged.
Reviewed vs. unreviewed UniProt
Always prefer reviewed (Swiss-Prot). Unreviewed (TrEMBL) entries may lack domain, variant, and function annotations. See references/uniprot-fields.md.
Antigen-deposited vs. validated SAbDab entries
SAbDab indexes the PDB; presence in SAbDab does NOT mean affinity has been independently validated. See references/sabdab-best-practices.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-database/SKILL.md
Popularity
- 7-day trend score
- 0
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-database)