skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
mims-harvard/tooluniverse226 installs

tooluniverse-structural-proteomics

Structural biology plus proteomics integration for drug target validation. Combines PDB experimental structures, AlphaFold predictions, GPCRdb, SAbDab antibody structures, ProteinsPlus binding-site prediction, BindingDB ligand-affinity data, BMRB NMR data, CATH/InterPro fold classification, intrinsic-disorder prediction (MobiDB/DisProt/IUPred3), membrane-protein topology (OPM/TopDB/PDBTM/ChannelsDB), enzyme catalytic-site data (M-CSA), PDBe ligand/compound chemistry, and MD simulation trajectory metadata (MDDB). Use for druggability assessment, binding-site characterization, ligand-pocket analysis, structural-confidence scoring (resolution, pLDDT), antibody-target interface analysis, disordered-region assessment, membrane-protein topology, catalytic-mechanism lookup, and finding published MD simulations for a target.

How do I install this agent skill?

npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-structural-proteomics
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    This skill facilitates structural proteomics analysis by integrating multiple biological databases. Security observations include the ingestion of external data from public repositories and the dynamic generation of Python code for data processing, which are standard for scientific analysis but carry inherent risks regarding data integrity and execution.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

What does this agent skill do?

Structural Proteomics for Drug Target Validation

Comprehensive structural data integration using ToolUniverse tools across PDB, AlphaFold, GPCRdb, SAbDab, and proteomics databases for drug target validation.

LOOK UP DON'T GUESS

  • PDB structures/resolutions: PDBeSIFTS_get_best_structures and RCSBGraphQL_get_structure_summary
  • AlphaFold confidence: alphafold_get_summary
  • Ligands/affinities: PDBe_get_structure_ligands and BindingDB_get_ligands_by_uniprot
  • Protein-protein binding mutations (ddG): SKEMPI_search_by_structure/SKEMPI_search_by_protein/SKEMPI_get_mutation -- BindingDB's protein-protein equivalent, for interface-mutation affinity effects rather than small-molecule ligands
  • Druggability: ProteinsPlus_predict_binding_sites

COMPUTE, DON'T DESCRIBE

When analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.

Domain Reasoning

Resolution determines valid conclusions: <2A = atom positions visible; 2-3A = side chains reliable, drug design supported; >3A = backbone only, binding site unreliable. Do not over-interpret low-resolution structures.


Tool Inventory

PDB (RCSB)

RCSBAdvSearch_search_structures (query_type, query_value, rows), RCSBData_get_entry (entry_id), RCSBGraphQL_get_structure_summary (pdb_id), RCSBGraphQL_get_ligand_info (pdb_id), RCSB_get_chemical_component (comp_id)

PDB (PDBe)

pdbe_get_entry_summary (pdb_id), PDBe_get_structure_ligands (pdb_id), PDBe_get_bound_molecules (pdb_id), PDBeSearch_search_structures (query, rows), PDBeSIFTS_get_best_structures (uniprot_id), PDBeSIFTS_get_all_structures (uniprot_id), PDBe_KB_get_ligand_sites (pdb_id), PDBe_KB_get_interface_residues (pdb_id), PDBeValidation_get_quality_scores (pdb_id)

PDBe PISA

PDBePISA_get_interfaces (pdb_id), PDBePISA_get_assemblies (pdb_id)

AlphaFold

alphafold_get_prediction (qualifier=UniProt), alphafold_get_summary (qualifier), alphafold_get_annotations (qualifier)

Binding Sites

ProteinsPlus_predict_binding_sites (pdb_id, chain), BindingDB_get_ligands_by_uniprot (uniprot_id), BindingDB_get_ligands_by_pdb (pdb_id), BindingDB_get_targets_by_compound (smiles)

Ligand/Compound Chemistry (PDBe Compounds)

PDBe_get_compound_summary (comp_id — 3-letter PDB chemical-component code) — formula, weight, InChI/InChIKey, SMILES, systematic names, and cross-references to PubChem/DrugBank/EPA CompTox for one ligand. PDBe_get_compound_structures (comp_id) — see gotcha below, does not return an exhaustive structure list.

Foldseek

Foldseek_search_structure (sequence, mode="tmalign"), Foldseek_get_result (ticket)

GPCRdb

GPCRdb_get_protein (protein), GPCRdb_get_structures (protein), GPCRdb_get_ligands (protein), GPCRdb_get_mutations (protein). Accepts entry names, gene symbols (auto-converted to {symbol.lower()}_human), or UniProt accessions.

SAbDab

SAbDab_search_structures (query/antigen), SAbDab_get_structure (pdb_id), TheraSAbDab_search_therapeutics (query), TheraSAbDab_search_by_target (target)

Domains

InterPro_get_protein_domains (uniprot_id), Pfam_get_protein_annotations (uniprot_id), UniProt_get_entry_by_accession (accession)

Fold/Domain Classification (CATH + InterPro member databases)

CATH_get_superfamily (superfamily_id), CATH_get_domain_summary (domain_id), CATH_list_funfams (superfamily_id), CATH_get_funfam (superfamily_id, funfam_number), InterPro_list_member_databases (no params), InterPro_list_member_signatures (member_database, page_size), InterPro_get_member_signature (member_database, accession), InterPro_get_structures_for_entry (interpro_id, page_size)

Domain Architecture and Clans (InterPro, Pfam-accession-keyed)

InterPro_get_protein_domain_architecture (accession), InterPro_get_structures_for_domain (pfam_accession, max_results), InterPro_get_clan_members (clan_accession, max_results) — InterPro's API is intermittently flaky, see Workflow 5b below before assuming a "not found" result means the entry doesn't exist

Proteomics

ProteomeXchange_search_datasets (query), ProteomeXchange_get_dataset (dataset_id)

Molecular Dynamics Simulation Metadata (MDDB)

MDDB_search_projects (query, limit), MDDB_get_project (accession) — simulation parameters (force field, temperature, ensemble, simulated time, frames, trajectory size) for published MD trajectories; metadata only, not the trajectory files

BMRB (NMR data)

BMRB_search_by_keyword (term, database="macromolecules"|"metabolomics"), BMRB_search_by_sequence (sequence), BMRB_get_entries_by_pdb_id (pdb_id), BMRB_get_entries_by_uniprot (uniprot_id), BMRB_get_entry (entry_id), BMRB_get_entry_citation (entry_id), BMRB_get_validation (entry_id), BMRB_search_chemical_shifts (entry_id or search filters)

Intrinsic Disorder (MobiDB, DisProt, IUPred3)

MobiDB_get_protein (accession), MobiDB_get_consensus (accession) — currently unreachable, see Limitations. DisProt_search (query, page_size), DisProt_get_entry (accession — DisProt ID or UniProt accession). IUPred3_predict_disorder (accession, iupred_type="long"|"short"|"anchor")

Membrane Protein Structure (OPM, TopDB, PDBTM, ChannelsDB)

OPM_search_structures (query, limit), TopDB_get_topology (identifier), PDBTM_get_topology (pdb_id), ChannelsDB_get_channels_pdb (pdb_id), ChannelsDB_get_channels_cofactor (pdb_id)

Catalytic Site Atlas (M-CSA)

MCSA_get_entry (mcsa_id), MCSA_search_enzymes (enzyme_name, ec_number, uniprot_id, max_pages, limit)


Workflow 1: Find All Structures for a Drug Target

Phase 0: Resolve protein → UniProt ID, gene symbol, organism
Phase 1: PDBeSIFTS_get_best_structures → RCSBGraphQL_get_structure_summary → PDBeValidation
Phase 2: alphafold_get_prediction/summary → compare pLDDT with experimental coverage
Phase 3: IF GPCR → GPCRdb; IF antibody target → SAbDab/TheraSAbDab
Phase 4: InterPro/Pfam domain mapping → identify unresolved regions
Phase 5: Summary table (PDB ID, method, resolution, ligands, coverage, quality)

Decisions: Resolution <2.5A for drug design. X-ray > Cryo-EM > NMR > AlphaFold for binding sites. Holo > apo structures. When a target's best experimental structure IS an NMR structure (common for small/disordered proteins where crystallography fails), or when dynamics/flexibility data matters more than a single static pocket geometry, pull the underlying chemical-shift/assignment data via BMRB (Workflow 4) rather than treating the PDB coordinate file as the only NMR evidence available.

Workflow 4: NMR Structural/Dynamics Data (BMRB)

Phase 1: Resolve target -> BMRB_search_by_keyword (protein name) or BMRB_search_by_sequence (exact sequence match)
         or, if you already have an NMR PDB entry -> BMRB_get_entries_by_pdb_id (cross-reference to the matching BMRB entry/entries)
         or BMRB_get_entries_by_uniprot (UniProt accession -> linked BMRB entries)
Phase 2: BMRB_get_entry(entry_id) -> full deposition: saveframes for entry_information, assigned chemical shifts,
         sample conditions, method. BMRB_get_entry_citation(entry_id) -> BibTeX citation for the deposition.
Phase 3: BMRB_get_validation(entry_id) -> AVS (assigned-value-set) analysis: per-residue/per-atom chemical-shift
         typing and assignment-quality scores -- use this before trusting a shift value, the same way
         PDBeValidation quality scores gate trust in an X-ray/cryo-EM structure.
Phase 4 (optional, slow): BMRB_search_chemical_shifts -> raw per-atom chemical-shift table for an entry
         (large response, 15-20s+ for popular entries -- only pull this when the actual shift values are
         needed, e.g. for a downstream chemical-shift-based dynamics or secondary-structure calculation).

Real example (verified live): PDB 1D3Z (an NMR ubiquitin structure) -> BMRB_get_entries_by_pdb_id returns BMRB entries 11505, 11547, 15047, ... (BLAST-matched by sequence, not a strict 1:1 PDB<->BMRB mapping -- expect several candidate entries and pick by title/method) -> BMRB_get_entry("11505") confirms title "Alternative structure of Ubiquitin" -> BMRB_get_validation("11505") returns the AVS chemical-shift-typing analysis for that deposition.

Tool note: BMRB_search_by_keyword's term parameter accepts a plain protein/molecule name (e.g. "ubiquitin", "calmodulin") -- not keyword, despite the tool name.

Workflow 5: Fold and Domain-Signature Classification (CATH + InterPro Member Databases)

CATH classifies a protein domain's 3D fold (Class/Architecture/Topology/Homologous-superfamily) and further groups domains into functionally-coherent FunFams within a superfamily. This is complementary to, not a replacement for, InterPro_get_protein_domains/Pfam_get_protein_annotations above: those two answer "what domains does this protein have," while CATH and the InterPro member-database tools here let you go the other direction — starting from a fold/superfamily/signature and finding everything that belongs to it (structures, domains, or the raw per-database signature catalog behind InterPro's integrated entries).

Phase 1: CATH_get_domain_summary(domain_id) -> C.A.T.H classification + residue count for one PDB-chain-domain
         (domain_id format: <pdb_id><chain><domain_number>, e.g. "1cukA01")
Phase 2: CATH_get_superfamily(superfamily_id) -> homologous-superfamily name + domain/family counts across all of CATH
Phase 3: CATH_list_funfams(superfamily_id) -> functional sub-families within that superfamily, ranked by member count
Phase 4: CATH_get_funfam(superfamily_id, funfam_number) -> detail for one specific FunFam

Real example (verified live): CATH_get_domain_summary(domain_id="1cukA01") -> cath_id: "2.40.50.140.116.1.1.1.1", superfamily 2.40.50.140 ("Nucleic acid-binding proteins", Mainly Beta) -> CATH_get_superfamily("2.40.50.140") -> 2,879 total domains in this superfamily -> CATH_list_funfams("2.40.50.140") -> 1,285 FunFams, top one "30S ribosomal protein S12" (6,057 members).

Tool note: CATH_get_superfamily takes superfamily_id, not cath_id — passing cath_id fails parameter validation even though the tool's own response echoes a cath_id field.

Phase 1: InterPro_list_member_databases() -> catalog of all 14 member databases (pfam, cathgene3d, ssf, panther,
         cdd, profile, smart, ncbifam, prosite, prints, hamap, pirsf, sfld, antifam) with entry counts
Phase 2: InterPro_list_member_signatures(member_database, page_size) -> browse that database's raw signature catalog,
         each entry showing its `integrated_interpro` cross-reference if InterPro has folded it into an integrated entry
Phase 3: InterPro_get_member_signature(member_database, accession) -> full detail for one signature (name, GO terms,
         protein/structure/taxa counts)
Phase 4: InterPro_get_structures_for_entry(interpro_id, page_size) -> real PDB structures (with experiment type and
         resolution) whose chains carry a given *integrated* InterPro entry

Real example (verified live): InterPro_get_member_signature(member_database="pfam", accession="PF00069") -> "Protein kinase domain", integrated_interpro: "IPR000719", 1,364,822 proteins / 5,477 structures / 36,542 taxa carry this signature -> InterPro_get_structures_for_entry(interpro_id="IPR000719") -> real PDB hits including kinase-inhibitor co-crystals (e.g. 10dj, Fyn kinase + saracatinib, 2.22Å) — a direct bridge from "this protein has a kinase domain" to "here are solved structures of that domain, several already in complex with a drug."

Tool note: InterPro_get_member_signature requires BOTH member_database and accession — the accession alone (e.g. PF00069) is not sufficient because the same-shaped accession could theoretically collide across member databases.

Workflow 5b: Whole-Protein Domain Architecture and Pfam Clans

Three more InterPro tools, keyed by Pfam accession/UniProt accession rather than the integrated InterPro ID used above — a different entry point for the same underlying database:

InterPro_get_protein_domain_architecture(accession) -> ALL Pfam domains on one protein at once, with
    exact residue start/end and the integrated InterPro ID for each -- the "what domains does this
    whole protein have, with coordinates" complement to InterPro_get_member_signature's "tell me about
    one specific signature" above
InterPro_get_structures_for_domain(pfam_accession, max_results) -> PDB structures containing a given
    Pfam domain -- the Pfam-accession-keyed sibling of InterPro_get_structures_for_entry(interpro_id)
    above; use whichever accession type (Pfam PFxxxxx vs integrated IPRxxxxxx) you already have,
    they answer the same question from the two different InterPro identifier namespaces
InterPro_get_clan_members(clan_accession, max_results) -> member Pfam families in a clan (Pfam's own
    superfamily grouping) -- distinct from CATH's superfamily/FunFam grouping in Workflow 5 above:
    CATH groups by solved 3D fold, Pfam clans group by sequence-profile relatedness; the two systems
    can (and often do) disagree on where the boundary of a "related family" sits

Real example (verified live, same protein as Workflow 1): InterPro_get_protein_domain_architecture(accession="P04637") (TP53) -> 4 real Pfam domains with exact coordinates: PF08563 "P53 transactivation motif" (6-30), PF18521 "Transactivation domain 2" (35-59), PF00870 "P53 DNA-binding domain" (100-288), PF07710 "P53 tetramerisation motif" (319-357) -- matches the tetramerisation/DNA-binding boundaries already used in this skill's other workflows. InterPro_get_clan_members(clan_accession="CL0016") -> real clan "PKinase" with 30+ member Pfam families.

Reliability warning (verified live, repeatedly): this InterPro endpoint family is intermittently flaky. The exact same call (InterPro_get_structures_for_domain(pfam_accession="PF00069")) returned "Not found in InterPro: PF00069" on two consecutive attempts, then succeeded on a third with no change to the request. InterPro_get_protein_domain_architecture showed the same pattern in reverse (failed via tu test's canned examples, succeeded via a fresh tu run moments later, on the identical accession). Treat a "Not found in InterPro" error from any tool in this cluster as inconclusive, not as proof the accession doesn't exist — retry 1-2 times before reporting an entry is missing.

Workflow 6: Intrinsic Disorder Assessment (MobiDB + DisProt + IUPred3)

These three tools answer the same underlying question — "is this region of the protein structured or disordered?" — with different evidence quality, from highest to lowest confidence:

Tier 1 (curated experimental evidence): DisProt_search(query) -> DisProt_get_entry(accession)
         -> real, literature-curated disordered-region boundaries with the experimental method that
            established them (NMR, circular dichroism, limited proteolysis, etc.)
Tier 2 (aggregated predictions + curation): MobiDB_get_protein(accession) / MobiDB_get_consensus(accession)
         -> merges DisProt curation with multiple computational predictors into one consensus view
            **currently unreachable, see Limitations below**
Tier 3 (single fast predictor, sequence-only): IUPred3_predict_disorder(accession, iupred_type=...)
         -> a real-time computed disorder score per residue; "long" = long disordered regions,
            "short" = short disordered segments, "anchor" = disorder that becomes ordered upon binding
            a partner (protein-binding-induced folding)

Real example (verified live): p53/P04637 — DisProt_get_entry("P04637") confirms curated disordered regions (DP00086, "Cellular tumor antigen p53"); IUPred3_predict_disorder(accession="P04637", iupred_type="long") returns a real per-residue disorder-score profile independently, useful for a quick check even without DisProt curation existing for a given protein.

When to use which: check DisProt first if you need citable, experimentally-validated boundaries. Use IUPred3 for any protein (curated or not) when you just need a fast disorder profile. Reach for MobiDB only once it is confirmed reachable again (see Limitations) — do not report a "no disorder data" conclusion based on a MobiDB timeout; that is a connectivity failure, not evidence of an ordered protein.

Workflow 7: Membrane Protein Structure (OPM + TopDB + PDBTM + ChannelsDB)

Phase 1: OPM_search_structures(query, limit) -> solved membrane-protein structures positioned in a lipid
         bilayer, with geometric/energetic properties: hydrophobic thickness, tilt angle, and
         transfer_energy_kcal_per_mol (more negative = more favorable membrane insertion)
Phase 2: TopDB_get_topology(identifier) -> curated per-segment topology (Inside/Membrane/Outside regions)
         for a named protein, cross-species; identifier is typically a TopDB/UniProt-style ID
         (e.g. "OPSD_HUMAN"), not a bare gene symbol
Phase 3: PDBTM_get_topology(pdb_id) -> structure-derived per-chain topology for one specific PDB entry:
         tm_type ("alpha"/"beta"/"non_tm"), num_tm_segments, is_membrane_embedded
Phase 4: ChannelsDB_get_channels_pdb(pdb_id) / ChannelsDB_get_channels_cofactor(pdb_id) -> detected
         channels/tunnels/pores through the structure (general access tunnels vs. cofactor-specific
         access tunnels) for a given PDB entry

Real example (verified live, cross-validated across all four tools on rhodopsin): OPM_search_structures(query="rhodopsin") finds real bacteriorhodopsin/archaerhodopsin family members with thickness/tilt data; TopDB_get_topology("OPSD_HUMAN") -> 7 transmembrane segments, reliability score 92.81; PDBTM_get_topology("1f88") -> chain A, tm_type: "alpha", num_tm_segments: 7 — the same helix count TopDB reported independently, a useful cross-check between curated (TopDB) and structure-derived (PDBTM) topology. ChannelsDB_get_channels_pdb on a real ion channel (1bl8, KcsA potassium channel) returns real annotated pore/tunnel data; not every PDB entry has ChannelsDB coverage — 1f88 (rhodopsin) returned "Protein with ID '1f88' not found in ChannelsDB" even though OPM/TopDB/PDBTM all have data for it, so a ChannelsDB miss does not mean the protein lacks a real pore.

Workflow 8: Enzyme Catalytic Mechanism (M-CSA)

M-CSA (Mechanism and Catalytic Site Atlas) curates the actual catalytic residues and reaction mechanism for enzymes with solved structures — distinct from BRENDA/kinetics data (rates/constants) and from generic active-site predictions (ProteinsPlus above, which is pocket-geometry-based, not mechanism-curated).

Phase 1: MCSA_search_enzymes(enzyme_name=... | ec_number=... | uniprot_id=...) -> candidate M-CSA entries
Phase 2: MCSA_get_entry(mcsa_id) -> full catalytic machinery: catalytic residues, mechanism steps,
         EC number(s), reference structure

Real example (verified live): MCSA_search_enzymes(enzyme_name="lysozyme") -> mcsa_id: 203, "lysozyme (glycosyl hydrolase 22 family)", EC 3.2.1.17, reference UniProt P00698 -> MCSA_get_entry(203) for the full mechanism detail.


Workflow 2: Identify Binding Pocket Ligands

Phase 1: PDBe_get_structure_ligands + RCSBGraphQL_get_ligand_info + PDBe_KB_get_ligand_sites
Phase 2: ProteinsPlus_predict_binding_sites → druggability score, pocket residues
Phase 3: BindingDB_get_ligands_by_pdb/uniprot → Ki, Kd, IC50
Phase 4: RCSB_get_chemical_component for key ligands, or PDBe_get_compound_summary for
         the same 3-letter comp_id if you need InChI/InChIKey/SMILES/systematic names and
         cross-references (PubChem/DrugBank/EPA CompTox) rather than RCSB's structural fields

Filter artifacts: GOL, EDO, SO4, PEG, ACT, CL, NA. Keep cofactors (ATP, NAD, HEM) and catalytic metals (ZN, MG) if relevant.

Real example (verified live): PDBe_get_compound_summary({"comp_id":"ATP"}) -> formula C10H16N5O13P3, weight 507.181, InChIKey ZKHQWZAMYRWXGA-KQYNXXCUSA-N, cross-references including BRENDA and Probes And Drugs. PDBe_get_compound_summary({"comp_id":"HEM"}) -> formal_charge: null (a real schema mismatch, verified live: the tool's return_schema declares formal_charge as a non-nullable integer, but HEM's actual charge is reported as null — the call still succeeds and the rest of the data is correct, this is a documentation/schema gap, not a broken tool).

Gotcha (verified live, do not present as exhaustive): PDBe_get_compound_structures does not reliably return "all structures containing this compound" despite its description. Tested on ATP (which appears in thousands of real PDB structures — kinases, ATPases) and HEM (hemoglobins, cytochromes, peroxidases): both calls returned exactly ONE PDB entry each (1b0u for ATP, 3ia3 for HEM). Tracing the tool's implementation confirms why: when its primary per-compound structure list is empty, it silently falls back to the compound's first_observed_in field (which is inherently a single structure) and still labels that result pdb_entries. Treat a pdb_entries result from this tool as "one example structure containing this compound," not as a complete list — for an exhaustive structure search by ligand, use RCSBGraphQL_get_ligand_info or RCSBAdvSearch_search_structures instead.

Workflow 9: MD Simulation Trajectory Metadata (MDDB)

MDDB indexes 15,000+ molecular dynamics simulation trajectories (MoDEL, BioExcel, DESRES-ANTON, and community depositions) — metadata only (force field, temperature, ensemble, simulated time, frame count, trajectory size), not the trajectory files themselves. Use when a target already has (or you want to check whether it has) a published MD simulation, as a complement to the static structures the rest of this skill documents.

Phase 1: MDDB_search_projects(query, limit) -> candidate project accessions, by protein name or PDB id
Phase 2: MDDB_get_project(accession) -> full simulation parameters for one project

Real example (verified live): MDDB_search_projects({"query":"6M71","limit":5}) -> project MD-A001UA -> MDDB_get_project({"accession":"MD-A001UA"}) -> a real 10 microsecond DESRES-ANTON simulation of the SARS-CoV-2 nsp7-nsp8-nsp12 RNA polymerase complex (Amber ff99SB-ILDN, NPT ensemble, 310 K, 8,335 frames, ~2.5 GB) with a text description of a specific structural finding from the simulation (a disordered N-terminal region folding into a kinase-like fold during the run). Note total_simulated_time_ps is summed across all replicas listed under md_replica_count, not per-replica.

Workflow 3: Cross-Validate Drug Binding

Phase 1: Find co-crystal structures → filter for drug/analogs
Phase 2: BindingDB affinity data (Ki, Kd, IC50)
Phase 3: ProteinsPlus + PDBe-KB binding site characterization
Phase 4: PDBeValidation quality → binding site well-resolved?
Phase 5: AlphaFold + Foldseek structural comparison
Phase 6: GPCR-specific (if applicable) → active/inactive states, pharmacology, resistance mutations
Phase 7: Antibody-specific (if applicable) → epitope mapping
Phase 8: Evidence integration

Tool Parameter Gotchas

ToolMistakeCorrect
alphafold_get_prediction/summaryuniprot_idqualifier
GPCRdb_get_proteingene_nameprotein
PDBeSIFTS_get_best_structuresgene symboluniprot_id (e.g., "P04637")
Foldseek_search_structuremode="3diaa"mode="tmalign"
SAbDab_search_structuresnamequery or antigen
RCSB_get_chemical_componentligand_idcomp_id
BMRB_search_by_keywordkeywordterm
CATH_get_superfamilycath_idsuperfamily_id
InterPro_get_member_signatureaccession alonemember_database + accession (both required)
TopDB_get_topologybare gene symbola TopDB/UniProt-style identifier (e.g. "OPSD_HUMAN")
PDBe_get_compound_structurestrusting pdb_entries as exhaustiveit falls back to a single first_observed_in example when the primary list is empty (verified live) — use RCSBGraphQL_get_ligand_info for a real exhaustive search

Evidence Grading

TierConfidence
T1Co-crystal (<2.5A) + binding affinity data
T2Experimental structure + computational prediction
T3AlphaFold + pocket analysis + known ligand analogs
T4Homology model or low-resolution only

Interpretation

MetricHighAcceptableCaution
Resolution<2.0A (X-ray) / <3.0A (cryo-EM)2.0-2.5A / 3.0-4.0A>3.0A / >4.5A
R-free<0.250.25-0.30>0.30
AlphaFold pLDDT>9070-90<70 (disordered)

DoGSiteScorer >0.6 = druggable; <0.4 = unlikely druggable. PISA assemblies should be cross-validated with SEC-MALS/native MS.

Limitations

  • BindingDB: 60s+ for popular targets
  • AlphaFold: lacks ligand context
  • GPCRdb: Class A-F GPCRs only
  • PDBePISA: operation is internal, not a public parameter
  • BMRB: BMRB_get_entries_by_pdb_id is a BLAST-based sequence match, not a curated 1:1 PDB<->BMRB cross-reference -- a query can return several candidate entries (or none) for a real NMR PDB ID; BMRB_search_chemical_shifts is slow (15-20s+) for well-studied entries, only call it when raw shift values are actually needed
  • MobiDB: MobiDB_get_protein and MobiDB_get_consensus were verified live (repeatedly, with a 90s timeout) to hang indefinitely against their configured endpoint (https://mobidb.org/api/download) -- confirmed independently via direct curl to the same host (20s with no response). This is an upstream connectivity issue, not a query-parameter mistake. Use DisProt (curated) or IUPred3 (fast predictor) instead until this is confirmed working again -- do not retry MobiDB with a longer timeout expecting it to resolve.
  • ChannelsDB: coverage is per-PDB-entry, not universal -- a real membrane protein with confirmed topology elsewhere (OPM/TopDB/PDBTM) can still return "not found in ChannelsDB" for that specific PDB ID (verified live: 1f88 rhodopsin)
  • InterPro domain-architecture cluster (InterPro_get_protein_domain_architecture/_get_structures_for_domain/_get_clan_members): the underlying InterPro API is intermittently flaky -- the identical query can 404 twice then succeed on a third attempt with no request change (verified live, repeatedly). A "Not found in InterPro" result is inconclusive on the first attempt; retry before concluding the accession/domain genuinely isn't in InterPro.
  • PDBe_get_compound_summary: formal_charge is null for at least some neutral compounds (verified live: HEM) despite the tool's return_schema declaring it a non-nullable integer -- the call still succeeds with correct data otherwise, treat a null charge as "not reported as charged," not as a failure.
  • PDBe_get_compound_structures: see the Workflow 2 gotcha above -- verified live to return only one example PDB entry even for ubiquitous ligands (ATP, HEM), not an exhaustive list.

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/mims-harvard/tooluniverse/tooluniverse-structural-proteomics">View tooluniverse-structural-proteomics on skillZs</a>