[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-google-deepmind-interpro-database":3,"mdc--miwa8h-key":33,"related-org-google-deepmind-interpro-database":2910,"related-repo-google-deepmind-interpro-database":3076},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":28,"sourceUrl":31,"mdContent":32},"interpro-database","annotate proteins and explore genomic data","Identify domains, families, and sites in proteins; find all proteins in a family or sharing a domain; explore species distribution for a domain; annotate genomes with protein families and GO terms. InterPro combines 14 databases (e.g., Pfam, CDD) into one searchable resource. InterPro-N significantly expands annotation and sequence coverage with deep learning. Includes domain architecture (IDA) search.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"google-deepmind","Google DeepMind","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgoogle-deepmind.png",[12,16,19],{"name":13,"slug":14,"type":15},"Life Sciences","life-sciences","tag",{"name":17,"slug":18,"type":15},"Bioinformatics","bioinformatics",{"name":20,"slug":21,"type":15},"Genetics","genetics",2333,"https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fscience-skills","2026-07-12T07:52:03.083149",null,234,[],{"repoUrl":23,"stars":22,"forks":26,"topics":29,"description":30},[],"GDM Science Skills to speed up agentic scientific workflows with better grounding and higher token efficiency. Integrate insights from AlphaGenome, AFDB, UniProt and 30+ other databases and tools.","https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fscience-skills\u002Ftree\u002FHEAD\u002Fskills\u002Finterpro_database","---\nname: interpro-database\ndescription: >\n  Identify domains, families, and sites in proteins; find all proteins in a\n  family or sharing a domain; explore species distribution for a domain;\n  annotate genomes with protein families and GO terms. InterPro combines 14\n  databases (e.g., Pfam, CDD) into one searchable resource. InterPro-N\n  significantly expands annotation and sequence coverage with deep learning.\n  Includes domain architecture (IDA) search.\n---\n\n# InterPro Database Access\n\n## Prerequisites\n\n1.  **`uv`**: Read the `uv` skill and follow its Setup instructions to ensure\n    `uv` is installed and on PATH.\n2.  **User Notification**: If .licenses\u002Finterpro_database_LICENSE.txt does not\n    already exist in the workspace root directory then (1) prominently notify\n    the user to check the terms at https:\u002F\u002Fwww.ebi.ac.uk\u002Finterpro\u002F and\n    https:\u002F\u002Fwww.ebi.ac.uk\u002Fabout\u002Fterms-of-use\u002F, then (2) create the file\n    recording the notification text and timestamp.\n\n## Overview\n\nInterPro combines signatures from multiple, diverse databases into a single\nsearchable resource, reducing redundancy and helping users interpret their\nsequence analysis results. By uniting these member databases (e.g., Pfam, CDD,\nSMART), InterPro capitalises on their individual strengths to produce a powerful\ndiagnostic tool and integrated resource.\n\nUse `interpro-database` to:\n\n-   Identify what domains, families, and sites are found in a particular\n    protein.\n-   Identify all proteins that belong to a protein family or contain a\n    particular domain, even when the names and activities of the proteins are\n    highly variable.\n-   Examine the species in which a particular protein family or domain is found.\n-   Annotate genomes with protein family information and Gene Ontology (GO)\n    terms.\n\nThis skill provides a robust utility, `interpro_client.py`, to interact with the\nInterPro API seamlessly. It natively handles rate limiting (HTTP 429),\nbackground query sleep tracking (HTTP 408), terminal errors (HTTP 404\u002F410), and\nlazy pagination.\n\n## Core Rules\n\n-   **Use the Wrapper**: ALWAYS execute the `scripts\u002Finterpro_client.py` helper\n    script to query the database rather than accessing the database directly.\n    The scripts automatically enforce fair use and implement retry logic.\n-   **For exploratory queries**: ALWAYS use the CLI with a strict `--limit`.\n    This allows you to rapidly understand the data schema without polluting your\n    context window or fetching millions of results.\n-   **Output to file**: Use the CLI with --output to output to a file rather\n    than attempting to print it all to the console. Process the output using jq\n    or code.\n-   **For more complex pipelines** import the module natively into your Python\n    scripts to consume the generator directly, preventing the need to\n    deserialize CLI strings in large workflows.\n-   **Notification**: If this skill is used, ensure this is mentioned in the\n    output.\n\nExamples:\n\n```bash\nuv run .\u002Fscripts\u002Finterpro_client.py fetch protein --source_db reviewed --limit 2 --query_params tax_id=9606 --output exploratory_results.jsonl\n```\n\n```python\nimport sys\nsys.path.append('scripts')\nfrom interpro_client import fetch_interpro_data\nimport itertools\n\n# fetch_interpro_data lazily yields results page-by-page\nresults = fetch_interpro_data(\n    endpoint=\"entry\",\n    source_db=\"pfam\",\n    query_params={\"page_size\": 10}\n)\nfor match in itertools.islice(results, 10):\n    print(match[\"metadata\"][\"accession\"])\n```\n\n### 4 Ways to Construct Endpoints:\n\nThe arguments strictly map to the four common API path constructions. **Do not\nformat your own `\u002F` separated strings:**\n\n1.  **`\u002F{endpoint}`** (e.g. `\u002Fentry`) `uv run .\u002Fscripts\u002Finterpro_client.py fetch\n    entry --limit 10 --output entries.jsonl`\n2.  **`\u002F{endpoint}\u002F{sourceDB}`** (e.g. `\u002Fentry\u002Fpfam`) `uv run\n    .\u002Fscripts\u002Finterpro_client.py fetch entry --source_db pfam --limit 10\n    --output pfam_entries.jsonl`\n3.  **`\u002F{endpoint}\u002F{sourceDB}\u002F{accession}`** (e.g. `\u002Fentry\u002Fpfam\u002FPF00001`) `uv\n    run .\u002Fscripts\u002Finterpro_client.py fetch entry --source_db pfam --accession\n    PF00001 --limit 10 --output pf00001_entry.jsonl`\n4.  **`\u002F{endpoint}\u002F{sourceDB}\u002F{linked_endpoint}\u002F{sourceDB}\u002F{accession}`** (e.g.\n    `\u002Fentry\u002Finterpro\u002Fprotein\u002Funiprot\u002FP04637`) `uv run\n    .\u002Fscripts\u002Finterpro_client.py fetch entry \\ --source_db interpro \\\n    --linked_endpoint protein \\ --linked_source_db uniprot \\ --linked_accession\n    P04637 \\ --limit 10 --output p04637_entries.jsonl`\n\n## Valid Source Databases (`--source_db`)\n\nEach endpoint only accepts specific `source_db` values. Using an invalid value\nreturns a 404 error.\n\n*   **`\u002Fentry`** (16 values): `interpro`, `pfam`, `cathgene3d`, `ssf`,\n    `panther`, `cdd`, `profile`, `smart`, `ncbifam`, `prosite`, `prints`,\n    `hamap`, `pirsf`, `sfld`, `antifam`.\n*   **`\u002Fprotein`** (3 values): `uniprot` (all), `reviewed` (SwissProt),\n    `unreviewed` (TrEMBL).\n*   **`\u002Fstructure`** (1 value): `pdb`.\n*   **`\u002Ftaxonomy`** (1 value): `uniprot`.\n*   **`\u002Fproteome`** (1 value): `uniprot`.\n*   **`\u002Fset`** (2 values): `pfam`, `cdd`.\n\n## Quick Reference \u002F Core Endpoints & Parameters\n\n**For a complete, exhaustive list of all query parameters, see the\n[Full API Reference](references\u002Fapi_reference.md).**\n\nThe API is fully open and supports 6 core endpoints. You can combine them using\nthe linked parameters described above. Below is a nested list of the specific\nquery parameters available for each endpoint:\n\n*   **`\u002Fentry`** (Domain, family, active site, repeat, or homologous superfamily\n    entries)\n\n    *   `integrated`: Filter by integrated status (e.g., `pfam`).\n    *   `type`: Filter by type (e.g., `family`, `domain`,\n        `homologous_superfamily`).\n    *   `go_term` \u002F `go_category`: Filter by Gene Ontology.\n    *   `ida_search` \u002F `ida_ignore` \u002F `exact` \u002F `ordered`: Filter by domain\n        architecture (see IDA Search section).\n    *   `extra_fields`: Request additional data (e.g., `counters` for match\n        coordinates).\n    *   `group_by` \u002F `sort_by`: Aggregate or sort results *(valid values depend\n        on context, see [Full API Reference](references\u002Fapi_reference.md))*.\n    *   *Example*: `uv run .\u002Fscripts\u002Finterpro_client.py count entry --source_db\n        pfam --query_params type=domain --output count.jsonl`\n\n*   **`\u002Fprotein`** (Protein records matching entries or domains)\n\n    *   `tax_id`: Filter by taxonomy ID (does not search lineage).\n    *   `match_presence`: Filter by proteins having InterPro matches\n        (`true`\u002F`false`).\n    *   `is_fragment`: Filter complete vs. fragment sequences.\n    *   `group_by`: Aggregate results (e.g., `taxonomy`).\n    *   `extra_fields`: Request sequence or match details.\n    *   `isoforms` \u002F `residues` \u002F `structureinfo`: Include specific\n        sub-features.\n    *   `conservation` \u002F `extra_features`: Append residue conservation flags or\n        Mobidb\u002Fcoil features *(only valid for\n        `\u002Fprotein\u002F{source_db}\u002F{accession}`)*.\n    *   *Example*: `uv run .\u002Fscripts\u002Finterpro_client.py fetch protein\n        --source_db uniprot --limit 20 --query_params tax_id=9606 --output\n        human_proteins.jsonl`\n\n*   **`\u002Fstructure`** (PDB structures linked to InterPro entries)\n\n    *   `experiment_type`: Filter by experimental method (e.g., `X-RAY\n        DIFFRACTION`).\n    *   `resolution`: Filter by resolution limit.\n    *   `extra_fields`: Include additional structural metadata.\n    *   `group_by`: Aggregate results.\n    *   *Example*: `.\u002Fscripts\u002Finterpro_client.py fetch structure --source_db pdb\n        --accession 1ATP --limit 10 --output 1atp_structures.jsonl`\n\n*   **`\u002Ftaxonomy`** (Taxonomy distribution nodes)\n\n    *   `key_species`: Filter to limit to key species.\n    *   `with_names`: Include scientific names.\n    *   `filter_by_entry` \u002F `filter_by_entry_db`: Filter intersection with\n        specific entries.\n    *   `extra_fields`: Additional taxonomic metadata.\n    *   *Example*: `.\u002Fscripts\u002Finterpro_client.py fetch taxonomy --source_db\n        uniprot --accession 9606 --limit 10 --output human_taxonomy.jsonl`\n\n*   **`\u002Fproteome`** (Complete proteomes linked to InterPro)\n\n    *   `extra_fields`: General query expansion.\n    *   *Example*: `uv run .\u002Fscripts\u002Finterpro_client.py fetch proteome\n        --source_db uniprot --accession UP000005640 --limit 10 --output\n        proteome.jsonl`\n\n*   **`\u002Fset`** (Curated sets of related entries, e.g., Pfam clans)\n\n    *   `extra_fields`: Additional metadata *(only valid for\n        `\u002Fset\u002F{sourceDB}`)*.\n    *   *Example*: `uv run .\u002Fscripts\u002Finterpro_client.py fetch set --source_db\n        pfam --accession CL0001 --limit 10 --output pfam_clan.jsonl`\n\n## InterPro Domain Architecture (IDA) Search\n\nInterPro provides powerful tools for searching proteins by their domain\narchitecture (the exact combination and order of domains). Because the API does\nnot allow querying proteins directly by multiple domains at once (e.g., \"give me\nproteins with PF00069 AND PF00017\"), finding proteins with specific domain\ncombinations requires a two-step process.\n\n### Step 1: Find matching architectures (`ida_search`)\n\nThe `ida_search` parameter is used on the root `\u002Fentry` endpoint to find all\nDomain Architectures (IDAs) containing the domains you specify.\n\n-   **Constraints**:\n    -   Valid ONLY on the root `\u002Fentry` endpoint.\n    -   Cannot be combined with non-IDA parameters.\n-   **Modifiers** (Only valid with `ida_search`):\n    -   `ida_ignore`: Ignores the given domains in the search (query param).\n    -   `ordered`: Ensures domains appear in the exact specified order (flag).\n    -   `exact`: Ensures the architecture matches exactly (no additional\n        domains) (flag). **Requires `ordered` flag to be present.**\n\n**Example**: Find architectures containing both a kinase domain (PF00069) and an\nSH2 domain (PF00017), in that exact order:\n\n```bash\nuv run scripts\u002Finterpro_client.py fetch entry\n  --query_params ida_search=PF00069,PF00017\n  --flags ordered exact\n  --output architectures.jsonl\n```\n\n*Note: This returns the architectures and their unique `ida_id`s, not all\nindividual proteins.*\n\n### Step 2: Fetch proteins for those architectures (`ida`)\n\nOnce you have the `ida_id`s (e.g., `619edbb...`) from Step 1, you can fetch all\nthe actual proteins that share that precise layout by filtering the `\u002Fprotein`\nendpoint.\n\n**Constraints**:\n\n-   Valid on `\u002Fprotein` and `\u002Fentry\u002F{sourceDB}\u002F{accession}` endpoints.\n\n**Example**: Fetch proteins matching one of the architecture IDs from Step 1:\n\n```bash\nuv run scripts\u002Finterpro_client.py fetch protein\n  --source_db uniprot\n  --query_params ida=619edbb2b445bfa3ad51bd894e3c115b025a5f25\n  --output matching_proteins.jsonl\n```\n\n*(When building pipelines or querying comprehensively, you would loop through\nall the `ida_id`s from Step 1 and run Step 2 for each one).*\n\n## InterPro Entry Types\n\nEach InterPro entry is assigned a type indicating what you can infer when a\nprotein matches the entry:\n\n-   **Domain**: Distinct functional, structural or sequence units that may exist\n    in a variety of biological contexts. Example: *PH domain* or *classical C2H2\n    zinc finger*.\n-   **Family**: A group of proteins sharing a common evolutionary origin\n    reflected by related functions, sequence similarities, or\n    primary\u002Fsecondary\u002Ftertiary structures.\n-   **Homologous Superfamily**: Proteins sharing an evolutionary origin\n    reflected by structural similarity but often displaying very low sequence\n    similarity. Usually comprises signatures from the SUPERFAMILY and\n    CATH-Gene3D databases.\n-   **Repeat**: A short sequence that is typically repeated within a protein,\n    often \u003C50 amino acids long. Example: *Leucine Rich Repeats* or *WD40\n    repeats*.\n-   **Site**: Includes `Active site` (sequence containing conserved residues for\n    catalytic activity) and `Binding site` (sequence containing conserved\n    residues forming a protein interaction site).\n\n## InterPro-N Predictions\n\nInterPro-N is a deep-learning-based extension of the standard InterPro database.\nIt utilizes an AI architecture inspired by computer vision to treat protein\nsequence annotation as a \"panoptic segmentation\" task, labeling residues and\ndistinguishing between domains.\n\n### When to use InterPro-N\n\nStandard InterPro signatures are the \"gold standard\" and should not be discarded\nin favor of InterPro-N predictions. Use InterPro-N primarily to fill in gaps or\nrefine results.\n\n**In addition to standard InterPro:**\n\n-   **Analyzing \"Dark Matter\" (Uncharacterised Proteins)**: Use when a protein\n    returns no hits in standard InterPro. InterPro-N excels at identifying\n    remote homologs.\n-   **Resolving Complex Repeats**: Use for proteins with multiple tandem repeats\n    (e.g., TPR or WD40) where standard HMMs might merge or miss them.\n-   **Predicting Discontinuous Domains**: Use when a domain sequence is\n    interrupted by a completely different inserted sequence.\n\n**Instead of standard InterPro (specific scenarios):**\n\n-   **Precise Boundary Delineation**: When you need more accurate start-and-stop\n    coordinates for a domain than fuzzy standard hits provide.\n-   **Large-Scale Metagenomic Screening**: For initial high-recovery screening\n    of fragmented or highly divergent sequences.\n\n### Fallback Strategy: Checking InterPro-N\n\nWhen you are asked to find annotations for a protein and standard InterPro\nqueries return no results or no annotations, you **MUST** check InterPro-N as a\nfallback.\n\n**Example Scenario:** If a user asks to \"List the SSF annotations for protein X\"\nand the standard query returns no hits, you should retry the query with the\n`interpro_n` flag.\n\nThis fallback is crucial because InterPro-N can identify remote homologs and\ndomains in \"dark matter\" proteins that standard methods miss.\n\nIf found, **ALWAYS** report to the user that these annotations are deep learning\npredictions from InterPro-N.\n\n### How to Use\n\nInterPro-N predictions are accessed by passing the `interpro_n` flag to the\n`protein` endpoint with `uniprot` as the source database.\n\n**Via CLI:**\n\n```bash\nuv run .\u002Fscripts\u002Finterpro_client.py fetch protein\n    --source_db uniprot\n    --accession A0A096LNN2\n    --flags interpro_n\n    --output A0A096LNN2_interpro_n.jsonl\n```\n\n**Via Python Pipeline:**\n\n```python\nresults = fetch_interpro_data(\n    endpoint=\"protein\",\n    source_db=\"uniprot\",\n    accession=\"A0A096LNN2\",\n    flags=[\"interpro_n\"])\n```\n\n## Strict Lookup Rules\n\n1.  **Always Use UniProt Accessions, NEVER Gene Names:** When looking up\n    proteins in InterPro, you MUST use their UniProt Accessions (e.g. `P04637`).\n    InterPro does not natively support or reliably map gene names (e.g. `TP53`).\n    If the user provides a gene name, you must use a database like Ensembl or\n    UniProt first to resolve it to an accession.\n\n2.  **NEVER Iterate to Count:** When asked for an aggregate count (e.g., \"How\n    many domains are there?\"), you MUST read the `count` field from the initial\n    API JSON response using the `get_interpro_count()` helper. NEVER iterate\n    over the `fetch_interpro_data` generator to tally elements. Iterating over\n    an endpoint with 50,000+ entries just to count them silently hangs the agent\n    and abuses the API. Every time. No exceptions.\n\n    ✅ **Correct**:\n\n    **Via CLI:**\n\n    ```bash\n    uv run .\u002Fscripts\u002Finterpro_client.py count entry\n        --source_db interpro\n        --query_params type=domain\n        --output count.json\n    ```\n\n    **Via Python Pipeline:**\n\n    ```python\n    from interpro_client import get_interpro_count\n    cnt = get_interpro_count(\n        endpoint=\"entry\",\n        source_db=\"interpro\",\n        query_params={\"type\": \"domain\"},\n    )\n    ```\n\n    ❌ **Wrong** (Iterating over fetch):\n\n    ```bash\n    # NEVER DO THIS:\n    uv run .\u002Fscripts\u002Finterpro_client.py fetch entry\n        --source_db interpro\n        --query_params type=domain\n        --output output.jsonl\n        && wc -l output.jsonl\n    ```\n\n## Quick examples\n\n**For detailed examples of the invocations and JSON output schemas returned by\nvarious endpoints, see the\n[Example Responses Reference](references\u002Fexample_responses.tsv).** This TSV\ncontains command-line calls, Python equivalents, and the corresponding JSON\npayload structures.\n\n### 1. Determining all protein domains\n\n```bash\n# Fetches InterPro Entries within UniProt protein P04637\n# URL equivalent: \u002Fentry\u002Finterpro\u002Fprotein\u002Funiprot\u002FP04637\nuv run .\u002Fscripts\u002Finterpro_client.py fetch entry\n    --source_db interpro\n    --linked_endpoint protein\n    --linked_source_db uniprot\n    --linked_accession P04637\n    --output p04637_domains.jsonl\n```\n\n### 2. Fetching all PDB structures for an Entry\n\n```bash\n# URL equivalent: \u002Fstructure\u002Fpdb\u002Fentry\u002Finterpro\u002FIPR011615\n# Only fetch the first 5 structures\nuv run .\u002Fscripts\u002Finterpro_client.py fetch structure\n    --source_db pdb\n    --linked_endpoint entry\n    --linked_source_db interpro\n    --linked_accession IPR011615\n    --output ipr011615_structures.jsonl\n```\n",{"data":34,"body":35},{"name":4,"description":6},{"type":36,"children":37},"root",[38,47,54,117,123,129,141,165,178,184,253,258,347,473,480,498,608,622,635,882,888,903,908,1504,1510,1515,1527,1546,1641,1650,1726,1742,1755,1782,1791,1814,1823,1891,1906,1912,1917,2011,2017,2022,2028,2033,2041,2074,2082,2105,2111,2123,2141,2146,2158,2164,2191,2199,2280,2288,2334,2340,2658,2664,2681,2687,2793,2799,2904],{"type":39,"tag":40,"props":41,"children":43},"element","h1",{"id":42},"interpro-database-access",[44],{"type":45,"value":46},"text","InterPro Database Access",{"type":39,"tag":48,"props":49,"children":51},"h2",{"id":50},"prerequisites",[52],{"type":45,"value":53},"Prerequisites",{"type":39,"tag":55,"props":56,"children":57},"ol",{},[58,89],{"type":39,"tag":59,"props":60,"children":61},"li",{},[62,73,75,80,82,87],{"type":39,"tag":63,"props":64,"children":65},"strong",{},[66],{"type":39,"tag":67,"props":68,"children":70},"code",{"className":69},[],[71],{"type":45,"value":72},"uv",{"type":45,"value":74},": Read the ",{"type":39,"tag":67,"props":76,"children":78},{"className":77},[],[79],{"type":45,"value":72},{"type":45,"value":81}," skill and follow its Setup instructions to ensure\n",{"type":39,"tag":67,"props":83,"children":85},{"className":84},[],[86],{"type":45,"value":72},{"type":45,"value":88}," is installed and on PATH.",{"type":39,"tag":59,"props":90,"children":91},{},[92,97,99,107,109,115],{"type":39,"tag":63,"props":93,"children":94},{},[95],{"type":45,"value":96},"User Notification",{"type":45,"value":98},": If .licenses\u002Finterpro_database_LICENSE.txt does not\nalready exist in the workspace root directory then (1) prominently notify\nthe user to check the terms at ",{"type":39,"tag":100,"props":101,"children":105},"a",{"href":102,"rel":103},"https:\u002F\u002Fwww.ebi.ac.uk\u002Finterpro\u002F",[104],"nofollow",[106],{"type":45,"value":102},{"type":45,"value":108}," and\n",{"type":39,"tag":100,"props":110,"children":113},{"href":111,"rel":112},"https:\u002F\u002Fwww.ebi.ac.uk\u002Fabout\u002Fterms-of-use\u002F",[104],[114],{"type":45,"value":111},{"type":45,"value":116},", then (2) create the file\nrecording the notification text and timestamp.",{"type":39,"tag":48,"props":118,"children":120},{"id":119},"overview",[121],{"type":45,"value":122},"Overview",{"type":39,"tag":124,"props":125,"children":126},"p",{},[127],{"type":45,"value":128},"InterPro combines signatures from multiple, diverse databases into a single\nsearchable resource, reducing redundancy and helping users interpret their\nsequence analysis results. By uniting these member databases (e.g., Pfam, CDD,\nSMART), InterPro capitalises on their individual strengths to produce a powerful\ndiagnostic tool and integrated resource.",{"type":39,"tag":124,"props":130,"children":131},{},[132,134,139],{"type":45,"value":133},"Use ",{"type":39,"tag":67,"props":135,"children":137},{"className":136},[],[138],{"type":45,"value":4},{"type":45,"value":140}," to:",{"type":39,"tag":142,"props":143,"children":144},"ul",{},[145,150,155,160],{"type":39,"tag":59,"props":146,"children":147},{},[148],{"type":45,"value":149},"Identify what domains, families, and sites are found in a particular\nprotein.",{"type":39,"tag":59,"props":151,"children":152},{},[153],{"type":45,"value":154},"Identify all proteins that belong to a protein family or contain a\nparticular domain, even when the names and activities of the proteins are\nhighly variable.",{"type":39,"tag":59,"props":156,"children":157},{},[158],{"type":45,"value":159},"Examine the species in which a particular protein family or domain is found.",{"type":39,"tag":59,"props":161,"children":162},{},[163],{"type":45,"value":164},"Annotate genomes with protein family information and Gene Ontology (GO)\nterms.",{"type":39,"tag":124,"props":166,"children":167},{},[168,170,176],{"type":45,"value":169},"This skill provides a robust utility, ",{"type":39,"tag":67,"props":171,"children":173},{"className":172},[],[174],{"type":45,"value":175},"interpro_client.py",{"type":45,"value":177},", to interact with the\nInterPro API seamlessly. It natively handles rate limiting (HTTP 429),\nbackground query sleep tracking (HTTP 408), terminal errors (HTTP 404\u002F410), and\nlazy pagination.",{"type":39,"tag":48,"props":179,"children":181},{"id":180},"core-rules",[182],{"type":45,"value":183},"Core Rules",{"type":39,"tag":142,"props":185,"children":186},{},[187,205,223,233,243],{"type":39,"tag":59,"props":188,"children":189},{},[190,195,197,203],{"type":39,"tag":63,"props":191,"children":192},{},[193],{"type":45,"value":194},"Use the Wrapper",{"type":45,"value":196},": ALWAYS execute the ",{"type":39,"tag":67,"props":198,"children":200},{"className":199},[],[201],{"type":45,"value":202},"scripts\u002Finterpro_client.py",{"type":45,"value":204}," helper\nscript to query the database rather than accessing the database directly.\nThe scripts automatically enforce fair use and implement retry logic.",{"type":39,"tag":59,"props":206,"children":207},{},[208,213,215,221],{"type":39,"tag":63,"props":209,"children":210},{},[211],{"type":45,"value":212},"For exploratory queries",{"type":45,"value":214},": ALWAYS use the CLI with a strict ",{"type":39,"tag":67,"props":216,"children":218},{"className":217},[],[219],{"type":45,"value":220},"--limit",{"type":45,"value":222},".\nThis allows you to rapidly understand the data schema without polluting your\ncontext window or fetching millions of results.",{"type":39,"tag":59,"props":224,"children":225},{},[226,231],{"type":39,"tag":63,"props":227,"children":228},{},[229],{"type":45,"value":230},"Output to file",{"type":45,"value":232},": Use the CLI with --output to output to a file rather\nthan attempting to print it all to the console. Process the output using jq\nor code.",{"type":39,"tag":59,"props":234,"children":235},{},[236,241],{"type":39,"tag":63,"props":237,"children":238},{},[239],{"type":45,"value":240},"For more complex pipelines",{"type":45,"value":242}," import the module natively into your Python\nscripts to consume the generator directly, preventing the need to\ndeserialize CLI strings in large workflows.",{"type":39,"tag":59,"props":244,"children":245},{},[246,251],{"type":39,"tag":63,"props":247,"children":248},{},[249],{"type":45,"value":250},"Notification",{"type":45,"value":252},": If this skill is used, ensure this is mentioned in the\noutput.",{"type":39,"tag":124,"props":254,"children":255},{},[256],{"type":45,"value":257},"Examples:",{"type":39,"tag":259,"props":260,"children":265},"pre",{"className":261,"code":262,"language":263,"meta":264,"style":264},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","uv run .\u002Fscripts\u002Finterpro_client.py fetch protein --source_db reviewed --limit 2 --query_params tax_id=9606 --output exploratory_results.jsonl\n","bash","",[266],{"type":39,"tag":67,"props":267,"children":268},{"__ignoreMap":264},[269],{"type":39,"tag":270,"props":271,"children":274},"span",{"class":272,"line":273},"line",1,[275,280,286,291,296,301,306,311,316,322,327,332,337,342],{"type":39,"tag":270,"props":276,"children":278},{"style":277},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[279],{"type":45,"value":72},{"type":39,"tag":270,"props":281,"children":283},{"style":282},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[284],{"type":45,"value":285}," run",{"type":39,"tag":270,"props":287,"children":288},{"style":282},[289],{"type":45,"value":290}," .\u002Fscripts\u002Finterpro_client.py",{"type":39,"tag":270,"props":292,"children":293},{"style":282},[294],{"type":45,"value":295}," fetch",{"type":39,"tag":270,"props":297,"children":298},{"style":282},[299],{"type":45,"value":300}," protein",{"type":39,"tag":270,"props":302,"children":303},{"style":282},[304],{"type":45,"value":305}," --source_db",{"type":39,"tag":270,"props":307,"children":308},{"style":282},[309],{"type":45,"value":310}," reviewed",{"type":39,"tag":270,"props":312,"children":313},{"style":282},[314],{"type":45,"value":315}," --limit",{"type":39,"tag":270,"props":317,"children":319},{"style":318},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[320],{"type":45,"value":321}," 2",{"type":39,"tag":270,"props":323,"children":324},{"style":282},[325],{"type":45,"value":326}," --query_params",{"type":39,"tag":270,"props":328,"children":329},{"style":282},[330],{"type":45,"value":331}," tax_id=",{"type":39,"tag":270,"props":333,"children":334},{"style":318},[335],{"type":45,"value":336},"9606",{"type":39,"tag":270,"props":338,"children":339},{"style":282},[340],{"type":45,"value":341}," --output",{"type":39,"tag":270,"props":343,"children":344},{"style":282},[345],{"type":45,"value":346}," exploratory_results.jsonl\n",{"type":39,"tag":259,"props":348,"children":352},{"className":349,"code":350,"language":351,"meta":264,"style":264},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import sys\nsys.path.append('scripts')\nfrom interpro_client import fetch_interpro_data\nimport itertools\n\n# fetch_interpro_data lazily yields results page-by-page\nresults = fetch_interpro_data(\n    endpoint=\"entry\",\n    source_db=\"pfam\",\n    query_params={\"page_size\": 10}\n)\nfor match in itertools.islice(results, 10):\n    print(match[\"metadata\"][\"accession\"])\n","python",[353],{"type":39,"tag":67,"props":354,"children":355},{"__ignoreMap":264},[356,364,373,382,391,401,410,419,428,437,446,455,464],{"type":39,"tag":270,"props":357,"children":358},{"class":272,"line":273},[359],{"type":39,"tag":270,"props":360,"children":361},{},[362],{"type":45,"value":363},"import sys\n",{"type":39,"tag":270,"props":365,"children":367},{"class":272,"line":366},2,[368],{"type":39,"tag":270,"props":369,"children":370},{},[371],{"type":45,"value":372},"sys.path.append('scripts')\n",{"type":39,"tag":270,"props":374,"children":376},{"class":272,"line":375},3,[377],{"type":39,"tag":270,"props":378,"children":379},{},[380],{"type":45,"value":381},"from interpro_client import fetch_interpro_data\n",{"type":39,"tag":270,"props":383,"children":385},{"class":272,"line":384},4,[386],{"type":39,"tag":270,"props":387,"children":388},{},[389],{"type":45,"value":390},"import itertools\n",{"type":39,"tag":270,"props":392,"children":394},{"class":272,"line":393},5,[395],{"type":39,"tag":270,"props":396,"children":398},{"emptyLinePlaceholder":397},true,[399],{"type":45,"value":400},"\n",{"type":39,"tag":270,"props":402,"children":404},{"class":272,"line":403},6,[405],{"type":39,"tag":270,"props":406,"children":407},{},[408],{"type":45,"value":409},"# fetch_interpro_data lazily yields results page-by-page\n",{"type":39,"tag":270,"props":411,"children":413},{"class":272,"line":412},7,[414],{"type":39,"tag":270,"props":415,"children":416},{},[417],{"type":45,"value":418},"results = fetch_interpro_data(\n",{"type":39,"tag":270,"props":420,"children":422},{"class":272,"line":421},8,[423],{"type":39,"tag":270,"props":424,"children":425},{},[426],{"type":45,"value":427},"    endpoint=\"entry\",\n",{"type":39,"tag":270,"props":429,"children":431},{"class":272,"line":430},9,[432],{"type":39,"tag":270,"props":433,"children":434},{},[435],{"type":45,"value":436},"    source_db=\"pfam\",\n",{"type":39,"tag":270,"props":438,"children":440},{"class":272,"line":439},10,[441],{"type":39,"tag":270,"props":442,"children":443},{},[444],{"type":45,"value":445},"    query_params={\"page_size\": 10}\n",{"type":39,"tag":270,"props":447,"children":449},{"class":272,"line":448},11,[450],{"type":39,"tag":270,"props":451,"children":452},{},[453],{"type":45,"value":454},")\n",{"type":39,"tag":270,"props":456,"children":458},{"class":272,"line":457},12,[459],{"type":39,"tag":270,"props":460,"children":461},{},[462],{"type":45,"value":463},"for match in itertools.islice(results, 10):\n",{"type":39,"tag":270,"props":465,"children":467},{"class":272,"line":466},13,[468],{"type":39,"tag":270,"props":469,"children":470},{},[471],{"type":45,"value":472},"    print(match[\"metadata\"][\"accession\"])\n",{"type":39,"tag":474,"props":475,"children":477},"h3",{"id":476},"_4-ways-to-construct-endpoints",[478],{"type":45,"value":479},"4 Ways to Construct Endpoints:",{"type":39,"tag":124,"props":481,"children":482},{},[483,485],{"type":45,"value":484},"The arguments strictly map to the four common API path constructions. ",{"type":39,"tag":63,"props":486,"children":487},{},[488,490,496],{"type":45,"value":489},"Do not\nformat your own ",{"type":39,"tag":67,"props":491,"children":493},{"className":492},[],[494],{"type":45,"value":495},"\u002F",{"type":45,"value":497}," separated strings:",{"type":39,"tag":55,"props":499,"children":500},{},[501,529,555,581],{"type":39,"tag":59,"props":502,"children":503},{},[504,513,515,521,523],{"type":39,"tag":63,"props":505,"children":506},{},[507],{"type":39,"tag":67,"props":508,"children":510},{"className":509},[],[511],{"type":45,"value":512},"\u002F{endpoint}",{"type":45,"value":514}," (e.g. ",{"type":39,"tag":67,"props":516,"children":518},{"className":517},[],[519],{"type":45,"value":520},"\u002Fentry",{"type":45,"value":522},") ",{"type":39,"tag":67,"props":524,"children":526},{"className":525},[],[527],{"type":45,"value":528},"uv run .\u002Fscripts\u002Finterpro_client.py fetch entry --limit 10 --output entries.jsonl",{"type":39,"tag":59,"props":530,"children":531},{},[532,541,542,548,549],{"type":39,"tag":63,"props":533,"children":534},{},[535],{"type":39,"tag":67,"props":536,"children":538},{"className":537},[],[539],{"type":45,"value":540},"\u002F{endpoint}\u002F{sourceDB}",{"type":45,"value":514},{"type":39,"tag":67,"props":543,"children":545},{"className":544},[],[546],{"type":45,"value":547},"\u002Fentry\u002Fpfam",{"type":45,"value":522},{"type":39,"tag":67,"props":550,"children":552},{"className":551},[],[553],{"type":45,"value":554},"uv run .\u002Fscripts\u002Finterpro_client.py fetch entry --source_db pfam --limit 10 --output pfam_entries.jsonl",{"type":39,"tag":59,"props":556,"children":557},{},[558,567,568,574,575],{"type":39,"tag":63,"props":559,"children":560},{},[561],{"type":39,"tag":67,"props":562,"children":564},{"className":563},[],[565],{"type":45,"value":566},"\u002F{endpoint}\u002F{sourceDB}\u002F{accession}",{"type":45,"value":514},{"type":39,"tag":67,"props":569,"children":571},{"className":570},[],[572],{"type":45,"value":573},"\u002Fentry\u002Fpfam\u002FPF00001",{"type":45,"value":522},{"type":39,"tag":67,"props":576,"children":578},{"className":577},[],[579],{"type":45,"value":580},"uv run .\u002Fscripts\u002Finterpro_client.py fetch entry --source_db pfam --accession PF00001 --limit 10 --output pf00001_entry.jsonl",{"type":39,"tag":59,"props":582,"children":583},{},[584,593,595,601,602],{"type":39,"tag":63,"props":585,"children":586},{},[587],{"type":39,"tag":67,"props":588,"children":590},{"className":589},[],[591],{"type":45,"value":592},"\u002F{endpoint}\u002F{sourceDB}\u002F{linked_endpoint}\u002F{sourceDB}\u002F{accession}",{"type":45,"value":594}," (e.g.\n",{"type":39,"tag":67,"props":596,"children":598},{"className":597},[],[599],{"type":45,"value":600},"\u002Fentry\u002Finterpro\u002Fprotein\u002Funiprot\u002FP04637",{"type":45,"value":522},{"type":39,"tag":67,"props":603,"children":605},{"className":604},[],[606],{"type":45,"value":607},"uv run .\u002Fscripts\u002Finterpro_client.py fetch entry \\ --source_db interpro \\ --linked_endpoint protein \\ --linked_source_db uniprot \\ --linked_accession P04637 \\ --limit 10 --output p04637_entries.jsonl",{"type":39,"tag":48,"props":609,"children":611},{"id":610},"valid-source-databases-source_db",[612,614,620],{"type":45,"value":613},"Valid Source Databases (",{"type":39,"tag":67,"props":615,"children":617},{"className":616},[],[618],{"type":45,"value":619},"--source_db",{"type":45,"value":621},")",{"type":39,"tag":124,"props":623,"children":624},{},[625,627,633],{"type":45,"value":626},"Each endpoint only accepts specific ",{"type":39,"tag":67,"props":628,"children":630},{"className":629},[],[631],{"type":45,"value":632},"source_db",{"type":45,"value":634}," values. Using an invalid value\nreturns a 404 error.",{"type":39,"tag":142,"props":636,"children":637},{},[638,759,797,818,837,856],{"type":39,"tag":59,"props":639,"children":640},{},[641,649,651,657,659,665,666,672,673,679,681,687,688,694,695,701,702,708,709,715,716,722,723,729,730,736,737,743,744,750,751,757],{"type":39,"tag":63,"props":642,"children":643},{},[644],{"type":39,"tag":67,"props":645,"children":647},{"className":646},[],[648],{"type":45,"value":520},{"type":45,"value":650}," (16 values): ",{"type":39,"tag":67,"props":652,"children":654},{"className":653},[],[655],{"type":45,"value":656},"interpro",{"type":45,"value":658},", ",{"type":39,"tag":67,"props":660,"children":662},{"className":661},[],[663],{"type":45,"value":664},"pfam",{"type":45,"value":658},{"type":39,"tag":67,"props":667,"children":669},{"className":668},[],[670],{"type":45,"value":671},"cathgene3d",{"type":45,"value":658},{"type":39,"tag":67,"props":674,"children":676},{"className":675},[],[677],{"type":45,"value":678},"ssf",{"type":45,"value":680},",\n",{"type":39,"tag":67,"props":682,"children":684},{"className":683},[],[685],{"type":45,"value":686},"panther",{"type":45,"value":658},{"type":39,"tag":67,"props":689,"children":691},{"className":690},[],[692],{"type":45,"value":693},"cdd",{"type":45,"value":658},{"type":39,"tag":67,"props":696,"children":698},{"className":697},[],[699],{"type":45,"value":700},"profile",{"type":45,"value":658},{"type":39,"tag":67,"props":703,"children":705},{"className":704},[],[706],{"type":45,"value":707},"smart",{"type":45,"value":658},{"type":39,"tag":67,"props":710,"children":712},{"className":711},[],[713],{"type":45,"value":714},"ncbifam",{"type":45,"value":658},{"type":39,"tag":67,"props":717,"children":719},{"className":718},[],[720],{"type":45,"value":721},"prosite",{"type":45,"value":658},{"type":39,"tag":67,"props":724,"children":726},{"className":725},[],[727],{"type":45,"value":728},"prints",{"type":45,"value":680},{"type":39,"tag":67,"props":731,"children":733},{"className":732},[],[734],{"type":45,"value":735},"hamap",{"type":45,"value":658},{"type":39,"tag":67,"props":738,"children":740},{"className":739},[],[741],{"type":45,"value":742},"pirsf",{"type":45,"value":658},{"type":39,"tag":67,"props":745,"children":747},{"className":746},[],[748],{"type":45,"value":749},"sfld",{"type":45,"value":658},{"type":39,"tag":67,"props":752,"children":754},{"className":753},[],[755],{"type":45,"value":756},"antifam",{"type":45,"value":758},".",{"type":39,"tag":59,"props":760,"children":761},{},[762,771,773,779,781,787,789,795],{"type":39,"tag":63,"props":763,"children":764},{},[765],{"type":39,"tag":67,"props":766,"children":768},{"className":767},[],[769],{"type":45,"value":770},"\u002Fprotein",{"type":45,"value":772}," (3 values): ",{"type":39,"tag":67,"props":774,"children":776},{"className":775},[],[777],{"type":45,"value":778},"uniprot",{"type":45,"value":780}," (all), ",{"type":39,"tag":67,"props":782,"children":784},{"className":783},[],[785],{"type":45,"value":786},"reviewed",{"type":45,"value":788}," (SwissProt),\n",{"type":39,"tag":67,"props":790,"children":792},{"className":791},[],[793],{"type":45,"value":794},"unreviewed",{"type":45,"value":796}," (TrEMBL).",{"type":39,"tag":59,"props":798,"children":799},{},[800,809,811,817],{"type":39,"tag":63,"props":801,"children":802},{},[803],{"type":39,"tag":67,"props":804,"children":806},{"className":805},[],[807],{"type":45,"value":808},"\u002Fstructure",{"type":45,"value":810}," (1 value): ",{"type":39,"tag":67,"props":812,"children":814},{"className":813},[],[815],{"type":45,"value":816},"pdb",{"type":45,"value":758},{"type":39,"tag":59,"props":819,"children":820},{},[821,830,831,836],{"type":39,"tag":63,"props":822,"children":823},{},[824],{"type":39,"tag":67,"props":825,"children":827},{"className":826},[],[828],{"type":45,"value":829},"\u002Ftaxonomy",{"type":45,"value":810},{"type":39,"tag":67,"props":832,"children":834},{"className":833},[],[835],{"type":45,"value":778},{"type":45,"value":758},{"type":39,"tag":59,"props":838,"children":839},{},[840,849,850,855],{"type":39,"tag":63,"props":841,"children":842},{},[843],{"type":39,"tag":67,"props":844,"children":846},{"className":845},[],[847],{"type":45,"value":848},"\u002Fproteome",{"type":45,"value":810},{"type":39,"tag":67,"props":851,"children":853},{"className":852},[],[854],{"type":45,"value":778},{"type":45,"value":758},{"type":39,"tag":59,"props":857,"children":858},{},[859,868,870,875,876,881],{"type":39,"tag":63,"props":860,"children":861},{},[862],{"type":39,"tag":67,"props":863,"children":865},{"className":864},[],[866],{"type":45,"value":867},"\u002Fset",{"type":45,"value":869}," (2 values): ",{"type":39,"tag":67,"props":871,"children":873},{"className":872},[],[874],{"type":45,"value":664},{"type":45,"value":658},{"type":39,"tag":67,"props":877,"children":879},{"className":878},[],[880],{"type":45,"value":693},{"type":45,"value":758},{"type":39,"tag":48,"props":883,"children":885},{"id":884},"quick-reference-core-endpoints-parameters",[886],{"type":45,"value":887},"Quick Reference \u002F Core Endpoints & Parameters",{"type":39,"tag":124,"props":889,"children":890},{},[891],{"type":39,"tag":63,"props":892,"children":893},{},[894,896,902],{"type":45,"value":895},"For a complete, exhaustive list of all query parameters, see the\n",{"type":39,"tag":100,"props":897,"children":899},{"href":898},"references\u002Fapi_reference.md",[900],{"type":45,"value":901},"Full API Reference",{"type":45,"value":758},{"type":39,"tag":124,"props":904,"children":905},{},[906],{"type":45,"value":907},"The API is fully open and supports 6 core endpoints. You can combine them using\nthe linked parameters described above. Below is a nested list of the specific\nquery parameters available for each endpoint:",{"type":39,"tag":142,"props":909,"children":910},{},[911,1093,1253,1332,1412,1452],{"type":39,"tag":59,"props":912,"children":913},{},[914,922,924],{"type":39,"tag":63,"props":915,"children":916},{},[917],{"type":39,"tag":67,"props":918,"children":920},{"className":919},[],[921],{"type":45,"value":520},{"type":45,"value":923}," (Domain, family, active site, repeat, or homologous superfamily\nentries)",{"type":39,"tag":142,"props":925,"children":926},{},[927,945,977,996,1028,1047,1077],{"type":39,"tag":59,"props":928,"children":929},{},[930,936,938,943],{"type":39,"tag":67,"props":931,"children":933},{"className":932},[],[934],{"type":45,"value":935},"integrated",{"type":45,"value":937},": Filter by integrated status (e.g., ",{"type":39,"tag":67,"props":939,"children":941},{"className":940},[],[942],{"type":45,"value":664},{"type":45,"value":944},").",{"type":39,"tag":59,"props":946,"children":947},{},[948,954,956,962,963,969,970,976],{"type":39,"tag":67,"props":949,"children":951},{"className":950},[],[952],{"type":45,"value":953},"type",{"type":45,"value":955},": Filter by type (e.g., ",{"type":39,"tag":67,"props":957,"children":959},{"className":958},[],[960],{"type":45,"value":961},"family",{"type":45,"value":658},{"type":39,"tag":67,"props":964,"children":966},{"className":965},[],[967],{"type":45,"value":968},"domain",{"type":45,"value":680},{"type":39,"tag":67,"props":971,"children":973},{"className":972},[],[974],{"type":45,"value":975},"homologous_superfamily",{"type":45,"value":944},{"type":39,"tag":59,"props":978,"children":979},{},[980,986,988,994],{"type":39,"tag":67,"props":981,"children":983},{"className":982},[],[984],{"type":45,"value":985},"go_term",{"type":45,"value":987}," \u002F ",{"type":39,"tag":67,"props":989,"children":991},{"className":990},[],[992],{"type":45,"value":993},"go_category",{"type":45,"value":995},": Filter by Gene Ontology.",{"type":39,"tag":59,"props":997,"children":998},{},[999,1005,1006,1012,1013,1019,1020,1026],{"type":39,"tag":67,"props":1000,"children":1002},{"className":1001},[],[1003],{"type":45,"value":1004},"ida_search",{"type":45,"value":987},{"type":39,"tag":67,"props":1007,"children":1009},{"className":1008},[],[1010],{"type":45,"value":1011},"ida_ignore",{"type":45,"value":987},{"type":39,"tag":67,"props":1014,"children":1016},{"className":1015},[],[1017],{"type":45,"value":1018},"exact",{"type":45,"value":987},{"type":39,"tag":67,"props":1021,"children":1023},{"className":1022},[],[1024],{"type":45,"value":1025},"ordered",{"type":45,"value":1027},": Filter by domain\narchitecture (see IDA Search section).",{"type":39,"tag":59,"props":1029,"children":1030},{},[1031,1037,1039,1045],{"type":39,"tag":67,"props":1032,"children":1034},{"className":1033},[],[1035],{"type":45,"value":1036},"extra_fields",{"type":45,"value":1038},": Request additional data (e.g., ",{"type":39,"tag":67,"props":1040,"children":1042},{"className":1041},[],[1043],{"type":45,"value":1044},"counters",{"type":45,"value":1046}," for match\ncoordinates).",{"type":39,"tag":59,"props":1048,"children":1049},{},[1050,1056,1057,1063,1065,1076],{"type":39,"tag":67,"props":1051,"children":1053},{"className":1052},[],[1054],{"type":45,"value":1055},"group_by",{"type":45,"value":987},{"type":39,"tag":67,"props":1058,"children":1060},{"className":1059},[],[1061],{"type":45,"value":1062},"sort_by",{"type":45,"value":1064},": Aggregate or sort results ",{"type":39,"tag":1066,"props":1067,"children":1068},"em",{},[1069,1071,1075],{"type":45,"value":1070},"(valid values depend\non context, see ",{"type":39,"tag":100,"props":1072,"children":1073},{"href":898},[1074],{"type":45,"value":901},{"type":45,"value":621},{"type":45,"value":758},{"type":39,"tag":59,"props":1078,"children":1079},{},[1080,1085,1087],{"type":39,"tag":1066,"props":1081,"children":1082},{},[1083],{"type":45,"value":1084},"Example",{"type":45,"value":1086},": ",{"type":39,"tag":67,"props":1088,"children":1090},{"className":1089},[],[1091],{"type":45,"value":1092},"uv run .\u002Fscripts\u002Finterpro_client.py count entry --source_db pfam --query_params type=domain --output count.jsonl",{"type":39,"tag":59,"props":1094,"children":1095},{},[1096,1104,1106],{"type":39,"tag":63,"props":1097,"children":1098},{},[1099],{"type":39,"tag":67,"props":1100,"children":1102},{"className":1101},[],[1103],{"type":45,"value":770},{"type":45,"value":1105}," (Protein records matching entries or domains)",{"type":39,"tag":142,"props":1107,"children":1108},{},[1109,1120,1145,1156,1173,1183,1208,1239],{"type":39,"tag":59,"props":1110,"children":1111},{},[1112,1118],{"type":39,"tag":67,"props":1113,"children":1115},{"className":1114},[],[1116],{"type":45,"value":1117},"tax_id",{"type":45,"value":1119},": Filter by taxonomy ID (does not search lineage).",{"type":39,"tag":59,"props":1121,"children":1122},{},[1123,1129,1131,1137,1138,1144],{"type":39,"tag":67,"props":1124,"children":1126},{"className":1125},[],[1127],{"type":45,"value":1128},"match_presence",{"type":45,"value":1130},": Filter by proteins having InterPro matches\n(",{"type":39,"tag":67,"props":1132,"children":1134},{"className":1133},[],[1135],{"type":45,"value":1136},"true",{"type":45,"value":495},{"type":39,"tag":67,"props":1139,"children":1141},{"className":1140},[],[1142],{"type":45,"value":1143},"false",{"type":45,"value":944},{"type":39,"tag":59,"props":1146,"children":1147},{},[1148,1154],{"type":39,"tag":67,"props":1149,"children":1151},{"className":1150},[],[1152],{"type":45,"value":1153},"is_fragment",{"type":45,"value":1155},": Filter complete vs. fragment sequences.",{"type":39,"tag":59,"props":1157,"children":1158},{},[1159,1164,1166,1172],{"type":39,"tag":67,"props":1160,"children":1162},{"className":1161},[],[1163],{"type":45,"value":1055},{"type":45,"value":1165},": Aggregate results (e.g., ",{"type":39,"tag":67,"props":1167,"children":1169},{"className":1168},[],[1170],{"type":45,"value":1171},"taxonomy",{"type":45,"value":944},{"type":39,"tag":59,"props":1174,"children":1175},{},[1176,1181],{"type":39,"tag":67,"props":1177,"children":1179},{"className":1178},[],[1180],{"type":45,"value":1036},{"type":45,"value":1182},": Request sequence or match details.",{"type":39,"tag":59,"props":1184,"children":1185},{},[1186,1192,1193,1199,1200,1206],{"type":39,"tag":67,"props":1187,"children":1189},{"className":1188},[],[1190],{"type":45,"value":1191},"isoforms",{"type":45,"value":987},{"type":39,"tag":67,"props":1194,"children":1196},{"className":1195},[],[1197],{"type":45,"value":1198},"residues",{"type":45,"value":987},{"type":39,"tag":67,"props":1201,"children":1203},{"className":1202},[],[1204],{"type":45,"value":1205},"structureinfo",{"type":45,"value":1207},": Include specific\nsub-features.",{"type":39,"tag":59,"props":1209,"children":1210},{},[1211,1217,1218,1224,1226,1238],{"type":39,"tag":67,"props":1212,"children":1214},{"className":1213},[],[1215],{"type":45,"value":1216},"conservation",{"type":45,"value":987},{"type":39,"tag":67,"props":1219,"children":1221},{"className":1220},[],[1222],{"type":45,"value":1223},"extra_features",{"type":45,"value":1225},": Append residue conservation flags or\nMobidb\u002Fcoil features ",{"type":39,"tag":1066,"props":1227,"children":1228},{},[1229,1231,1237],{"type":45,"value":1230},"(only valid for\n",{"type":39,"tag":67,"props":1232,"children":1234},{"className":1233},[],[1235],{"type":45,"value":1236},"\u002Fprotein\u002F{source_db}\u002F{accession}",{"type":45,"value":621},{"type":45,"value":758},{"type":39,"tag":59,"props":1240,"children":1241},{},[1242,1246,1247],{"type":39,"tag":1066,"props":1243,"children":1244},{},[1245],{"type":45,"value":1084},{"type":45,"value":1086},{"type":39,"tag":67,"props":1248,"children":1250},{"className":1249},[],[1251],{"type":45,"value":1252},"uv run .\u002Fscripts\u002Finterpro_client.py fetch protein --source_db uniprot --limit 20 --query_params tax_id=9606 --output human_proteins.jsonl",{"type":39,"tag":59,"props":1254,"children":1255},{},[1256,1264,1266],{"type":39,"tag":63,"props":1257,"children":1258},{},[1259],{"type":39,"tag":67,"props":1260,"children":1262},{"className":1261},[],[1263],{"type":45,"value":808},{"type":45,"value":1265}," (PDB structures linked to InterPro entries)",{"type":39,"tag":142,"props":1267,"children":1268},{},[1269,1287,1298,1308,1318],{"type":39,"tag":59,"props":1270,"children":1271},{},[1272,1278,1280,1286],{"type":39,"tag":67,"props":1273,"children":1275},{"className":1274},[],[1276],{"type":45,"value":1277},"experiment_type",{"type":45,"value":1279},": Filter by experimental method (e.g., ",{"type":39,"tag":67,"props":1281,"children":1283},{"className":1282},[],[1284],{"type":45,"value":1285},"X-RAY DIFFRACTION",{"type":45,"value":944},{"type":39,"tag":59,"props":1288,"children":1289},{},[1290,1296],{"type":39,"tag":67,"props":1291,"children":1293},{"className":1292},[],[1294],{"type":45,"value":1295},"resolution",{"type":45,"value":1297},": Filter by resolution limit.",{"type":39,"tag":59,"props":1299,"children":1300},{},[1301,1306],{"type":39,"tag":67,"props":1302,"children":1304},{"className":1303},[],[1305],{"type":45,"value":1036},{"type":45,"value":1307},": Include additional structural metadata.",{"type":39,"tag":59,"props":1309,"children":1310},{},[1311,1316],{"type":39,"tag":67,"props":1312,"children":1314},{"className":1313},[],[1315],{"type":45,"value":1055},{"type":45,"value":1317},": Aggregate results.",{"type":39,"tag":59,"props":1319,"children":1320},{},[1321,1325,1326],{"type":39,"tag":1066,"props":1322,"children":1323},{},[1324],{"type":45,"value":1084},{"type":45,"value":1086},{"type":39,"tag":67,"props":1327,"children":1329},{"className":1328},[],[1330],{"type":45,"value":1331},".\u002Fscripts\u002Finterpro_client.py fetch structure --source_db pdb --accession 1ATP --limit 10 --output 1atp_structures.jsonl",{"type":39,"tag":59,"props":1333,"children":1334},{},[1335,1343,1345],{"type":39,"tag":63,"props":1336,"children":1337},{},[1338],{"type":39,"tag":67,"props":1339,"children":1341},{"className":1340},[],[1342],{"type":45,"value":829},{"type":45,"value":1344}," (Taxonomy distribution nodes)",{"type":39,"tag":142,"props":1346,"children":1347},{},[1348,1359,1370,1388,1398],{"type":39,"tag":59,"props":1349,"children":1350},{},[1351,1357],{"type":39,"tag":67,"props":1352,"children":1354},{"className":1353},[],[1355],{"type":45,"value":1356},"key_species",{"type":45,"value":1358},": Filter to limit to key species.",{"type":39,"tag":59,"props":1360,"children":1361},{},[1362,1368],{"type":39,"tag":67,"props":1363,"children":1365},{"className":1364},[],[1366],{"type":45,"value":1367},"with_names",{"type":45,"value":1369},": Include scientific names.",{"type":39,"tag":59,"props":1371,"children":1372},{},[1373,1379,1380,1386],{"type":39,"tag":67,"props":1374,"children":1376},{"className":1375},[],[1377],{"type":45,"value":1378},"filter_by_entry",{"type":45,"value":987},{"type":39,"tag":67,"props":1381,"children":1383},{"className":1382},[],[1384],{"type":45,"value":1385},"filter_by_entry_db",{"type":45,"value":1387},": Filter intersection with\nspecific entries.",{"type":39,"tag":59,"props":1389,"children":1390},{},[1391,1396],{"type":39,"tag":67,"props":1392,"children":1394},{"className":1393},[],[1395],{"type":45,"value":1036},{"type":45,"value":1397},": Additional taxonomic metadata.",{"type":39,"tag":59,"props":1399,"children":1400},{},[1401,1405,1406],{"type":39,"tag":1066,"props":1402,"children":1403},{},[1404],{"type":45,"value":1084},{"type":45,"value":1086},{"type":39,"tag":67,"props":1407,"children":1409},{"className":1408},[],[1410],{"type":45,"value":1411},".\u002Fscripts\u002Finterpro_client.py fetch taxonomy --source_db uniprot --accession 9606 --limit 10 --output human_taxonomy.jsonl",{"type":39,"tag":59,"props":1413,"children":1414},{},[1415,1423,1425],{"type":39,"tag":63,"props":1416,"children":1417},{},[1418],{"type":39,"tag":67,"props":1419,"children":1421},{"className":1420},[],[1422],{"type":45,"value":848},{"type":45,"value":1424}," (Complete proteomes linked to InterPro)",{"type":39,"tag":142,"props":1426,"children":1427},{},[1428,1438],{"type":39,"tag":59,"props":1429,"children":1430},{},[1431,1436],{"type":39,"tag":67,"props":1432,"children":1434},{"className":1433},[],[1435],{"type":45,"value":1036},{"type":45,"value":1437},": General query expansion.",{"type":39,"tag":59,"props":1439,"children":1440},{},[1441,1445,1446],{"type":39,"tag":1066,"props":1442,"children":1443},{},[1444],{"type":45,"value":1084},{"type":45,"value":1086},{"type":39,"tag":67,"props":1447,"children":1449},{"className":1448},[],[1450],{"type":45,"value":1451},"uv run .\u002Fscripts\u002Finterpro_client.py fetch proteome --source_db uniprot --accession UP000005640 --limit 10 --output proteome.jsonl",{"type":39,"tag":59,"props":1453,"children":1454},{},[1455,1463,1465],{"type":39,"tag":63,"props":1456,"children":1457},{},[1458],{"type":39,"tag":67,"props":1459,"children":1461},{"className":1460},[],[1462],{"type":45,"value":867},{"type":45,"value":1464}," (Curated sets of related entries, e.g., Pfam clans)",{"type":39,"tag":142,"props":1466,"children":1467},{},[1468,1490],{"type":39,"tag":59,"props":1469,"children":1470},{},[1471,1476,1478,1489],{"type":39,"tag":67,"props":1472,"children":1474},{"className":1473},[],[1475],{"type":45,"value":1036},{"type":45,"value":1477},": Additional metadata ",{"type":39,"tag":1066,"props":1479,"children":1480},{},[1481,1482,1488],{"type":45,"value":1230},{"type":39,"tag":67,"props":1483,"children":1485},{"className":1484},[],[1486],{"type":45,"value":1487},"\u002Fset\u002F{sourceDB}",{"type":45,"value":621},{"type":45,"value":758},{"type":39,"tag":59,"props":1491,"children":1492},{},[1493,1497,1498],{"type":39,"tag":1066,"props":1494,"children":1495},{},[1496],{"type":45,"value":1084},{"type":45,"value":1086},{"type":39,"tag":67,"props":1499,"children":1501},{"className":1500},[],[1502],{"type":45,"value":1503},"uv run .\u002Fscripts\u002Finterpro_client.py fetch set --source_db pfam --accession CL0001 --limit 10 --output pfam_clan.jsonl",{"type":39,"tag":48,"props":1505,"children":1507},{"id":1506},"interpro-domain-architecture-ida-search",[1508],{"type":45,"value":1509},"InterPro Domain Architecture (IDA) Search",{"type":39,"tag":124,"props":1511,"children":1512},{},[1513],{"type":45,"value":1514},"InterPro provides powerful tools for searching proteins by their domain\narchitecture (the exact combination and order of domains). Because the API does\nnot allow querying proteins directly by multiple domains at once (e.g., \"give me\nproteins with PF00069 AND PF00017\"), finding proteins with specific domain\ncombinations requires a two-step process.",{"type":39,"tag":474,"props":1516,"children":1518},{"id":1517},"step-1-find-matching-architectures-ida_search",[1519,1521,1526],{"type":45,"value":1520},"Step 1: Find matching architectures (",{"type":39,"tag":67,"props":1522,"children":1524},{"className":1523},[],[1525],{"type":45,"value":1004},{"type":45,"value":621},{"type":39,"tag":124,"props":1528,"children":1529},{},[1530,1532,1537,1539,1544],{"type":45,"value":1531},"The ",{"type":39,"tag":67,"props":1533,"children":1535},{"className":1534},[],[1536],{"type":45,"value":1004},{"type":45,"value":1538}," parameter is used on the root ",{"type":39,"tag":67,"props":1540,"children":1542},{"className":1541},[],[1543],{"type":45,"value":520},{"type":45,"value":1545}," endpoint to find all\nDomain Architectures (IDAs) containing the domains you specify.",{"type":39,"tag":142,"props":1547,"children":1548},{},[1549,1579],{"type":39,"tag":59,"props":1550,"children":1551},{},[1552,1557,1559],{"type":39,"tag":63,"props":1553,"children":1554},{},[1555],{"type":45,"value":1556},"Constraints",{"type":45,"value":1558},":\n",{"type":39,"tag":142,"props":1560,"children":1561},{},[1562,1574],{"type":39,"tag":59,"props":1563,"children":1564},{},[1565,1567,1572],{"type":45,"value":1566},"Valid ONLY on the root ",{"type":39,"tag":67,"props":1568,"children":1570},{"className":1569},[],[1571],{"type":45,"value":520},{"type":45,"value":1573}," endpoint.",{"type":39,"tag":59,"props":1575,"children":1576},{},[1577],{"type":45,"value":1578},"Cannot be combined with non-IDA parameters.",{"type":39,"tag":59,"props":1580,"children":1581},{},[1582,1587,1589,1594,1596],{"type":39,"tag":63,"props":1583,"children":1584},{},[1585],{"type":45,"value":1586},"Modifiers",{"type":45,"value":1588}," (Only valid with ",{"type":39,"tag":67,"props":1590,"children":1592},{"className":1591},[],[1593],{"type":45,"value":1004},{"type":45,"value":1595},"):\n",{"type":39,"tag":142,"props":1597,"children":1598},{},[1599,1609,1619],{"type":39,"tag":59,"props":1600,"children":1601},{},[1602,1607],{"type":39,"tag":67,"props":1603,"children":1605},{"className":1604},[],[1606],{"type":45,"value":1011},{"type":45,"value":1608},": Ignores the given domains in the search (query param).",{"type":39,"tag":59,"props":1610,"children":1611},{},[1612,1617],{"type":39,"tag":67,"props":1613,"children":1615},{"className":1614},[],[1616],{"type":45,"value":1025},{"type":45,"value":1618},": Ensures domains appear in the exact specified order (flag).",{"type":39,"tag":59,"props":1620,"children":1621},{},[1622,1627,1629],{"type":39,"tag":67,"props":1623,"children":1625},{"className":1624},[],[1626],{"type":45,"value":1018},{"type":45,"value":1628},": Ensures the architecture matches exactly (no additional\ndomains) (flag). ",{"type":39,"tag":63,"props":1630,"children":1631},{},[1632,1634,1639],{"type":45,"value":1633},"Requires ",{"type":39,"tag":67,"props":1635,"children":1637},{"className":1636},[],[1638],{"type":45,"value":1025},{"type":45,"value":1640}," flag to be present.",{"type":39,"tag":124,"props":1642,"children":1643},{},[1644,1648],{"type":39,"tag":63,"props":1645,"children":1646},{},[1647],{"type":45,"value":1084},{"type":45,"value":1649},": Find architectures containing both a kinase domain (PF00069) and an\nSH2 domain (PF00017), in that exact order:",{"type":39,"tag":259,"props":1651,"children":1653},{"className":261,"code":1652,"language":263,"meta":264,"style":264},"uv run scripts\u002Finterpro_client.py fetch entry\n  --query_params ida_search=PF00069,PF00017\n  --flags ordered exact\n  --output architectures.jsonl\n",[1654],{"type":39,"tag":67,"props":1655,"children":1656},{"__ignoreMap":264},[1657,1682,1695,1713],{"type":39,"tag":270,"props":1658,"children":1659},{"class":272,"line":273},[1660,1664,1668,1673,1677],{"type":39,"tag":270,"props":1661,"children":1662},{"style":277},[1663],{"type":45,"value":72},{"type":39,"tag":270,"props":1665,"children":1666},{"style":282},[1667],{"type":45,"value":285},{"type":39,"tag":270,"props":1669,"children":1670},{"style":282},[1671],{"type":45,"value":1672}," scripts\u002Finterpro_client.py",{"type":39,"tag":270,"props":1674,"children":1675},{"style":282},[1676],{"type":45,"value":295},{"type":39,"tag":270,"props":1678,"children":1679},{"style":282},[1680],{"type":45,"value":1681}," entry\n",{"type":39,"tag":270,"props":1683,"children":1684},{"class":272,"line":366},[1685,1690],{"type":39,"tag":270,"props":1686,"children":1687},{"style":277},[1688],{"type":45,"value":1689},"  --query_params",{"type":39,"tag":270,"props":1691,"children":1692},{"style":282},[1693],{"type":45,"value":1694}," ida_search=PF00069,PF00017\n",{"type":39,"tag":270,"props":1696,"children":1697},{"class":272,"line":375},[1698,1703,1708],{"type":39,"tag":270,"props":1699,"children":1700},{"style":277},[1701],{"type":45,"value":1702},"  --flags",{"type":39,"tag":270,"props":1704,"children":1705},{"style":282},[1706],{"type":45,"value":1707}," ordered",{"type":39,"tag":270,"props":1709,"children":1710},{"style":282},[1711],{"type":45,"value":1712}," exact\n",{"type":39,"tag":270,"props":1714,"children":1715},{"class":272,"line":384},[1716,1721],{"type":39,"tag":270,"props":1717,"children":1718},{"style":277},[1719],{"type":45,"value":1720},"  --output",{"type":39,"tag":270,"props":1722,"children":1723},{"style":282},[1724],{"type":45,"value":1725}," architectures.jsonl\n",{"type":39,"tag":124,"props":1727,"children":1728},{},[1729],{"type":39,"tag":1066,"props":1730,"children":1731},{},[1732,1734,1740],{"type":45,"value":1733},"Note: This returns the architectures and their unique ",{"type":39,"tag":67,"props":1735,"children":1737},{"className":1736},[],[1738],{"type":45,"value":1739},"ida_id",{"type":45,"value":1741},"s, not all\nindividual proteins.",{"type":39,"tag":474,"props":1743,"children":1745},{"id":1744},"step-2-fetch-proteins-for-those-architectures-ida",[1746,1748,1754],{"type":45,"value":1747},"Step 2: Fetch proteins for those architectures (",{"type":39,"tag":67,"props":1749,"children":1751},{"className":1750},[],[1752],{"type":45,"value":1753},"ida",{"type":45,"value":621},{"type":39,"tag":124,"props":1756,"children":1757},{},[1758,1760,1765,1767,1773,1775,1780],{"type":45,"value":1759},"Once you have the ",{"type":39,"tag":67,"props":1761,"children":1763},{"className":1762},[],[1764],{"type":45,"value":1739},{"type":45,"value":1766},"s (e.g., ",{"type":39,"tag":67,"props":1768,"children":1770},{"className":1769},[],[1771],{"type":45,"value":1772},"619edbb...",{"type":45,"value":1774},") from Step 1, you can fetch all\nthe actual proteins that share that precise layout by filtering the ",{"type":39,"tag":67,"props":1776,"children":1778},{"className":1777},[],[1779],{"type":45,"value":770},{"type":45,"value":1781},"\nendpoint.",{"type":39,"tag":124,"props":1783,"children":1784},{},[1785,1789],{"type":39,"tag":63,"props":1786,"children":1787},{},[1788],{"type":45,"value":1556},{"type":45,"value":1790},":",{"type":39,"tag":142,"props":1792,"children":1793},{},[1794],{"type":39,"tag":59,"props":1795,"children":1796},{},[1797,1799,1804,1806,1812],{"type":45,"value":1798},"Valid on ",{"type":39,"tag":67,"props":1800,"children":1802},{"className":1801},[],[1803],{"type":45,"value":770},{"type":45,"value":1805}," and ",{"type":39,"tag":67,"props":1807,"children":1809},{"className":1808},[],[1810],{"type":45,"value":1811},"\u002Fentry\u002F{sourceDB}\u002F{accession}",{"type":45,"value":1813}," endpoints.",{"type":39,"tag":124,"props":1815,"children":1816},{},[1817,1821],{"type":39,"tag":63,"props":1818,"children":1819},{},[1820],{"type":45,"value":1084},{"type":45,"value":1822},": Fetch proteins matching one of the architecture IDs from Step 1:",{"type":39,"tag":259,"props":1824,"children":1826},{"className":261,"code":1825,"language":263,"meta":264,"style":264},"uv run scripts\u002Finterpro_client.py fetch protein\n  --source_db uniprot\n  --query_params ida=619edbb2b445bfa3ad51bd894e3c115b025a5f25\n  --output matching_proteins.jsonl\n",[1827],{"type":39,"tag":67,"props":1828,"children":1829},{"__ignoreMap":264},[1830,1854,1867,1879],{"type":39,"tag":270,"props":1831,"children":1832},{"class":272,"line":273},[1833,1837,1841,1845,1849],{"type":39,"tag":270,"props":1834,"children":1835},{"style":277},[1836],{"type":45,"value":72},{"type":39,"tag":270,"props":1838,"children":1839},{"style":282},[1840],{"type":45,"value":285},{"type":39,"tag":270,"props":1842,"children":1843},{"style":282},[1844],{"type":45,"value":1672},{"type":39,"tag":270,"props":1846,"children":1847},{"style":282},[1848],{"type":45,"value":295},{"type":39,"tag":270,"props":1850,"children":1851},{"style":282},[1852],{"type":45,"value":1853}," protein\n",{"type":39,"tag":270,"props":1855,"children":1856},{"class":272,"line":366},[1857,1862],{"type":39,"tag":270,"props":1858,"children":1859},{"style":277},[1860],{"type":45,"value":1861},"  --source_db",{"type":39,"tag":270,"props":1863,"children":1864},{"style":282},[1865],{"type":45,"value":1866}," uniprot\n",{"type":39,"tag":270,"props":1868,"children":1869},{"class":272,"line":375},[1870,1874],{"type":39,"tag":270,"props":1871,"children":1872},{"style":277},[1873],{"type":45,"value":1689},{"type":39,"tag":270,"props":1875,"children":1876},{"style":282},[1877],{"type":45,"value":1878}," ida=619edbb2b445bfa3ad51bd894e3c115b025a5f25\n",{"type":39,"tag":270,"props":1880,"children":1881},{"class":272,"line":384},[1882,1886],{"type":39,"tag":270,"props":1883,"children":1884},{"style":277},[1885],{"type":45,"value":1720},{"type":39,"tag":270,"props":1887,"children":1888},{"style":282},[1889],{"type":45,"value":1890}," matching_proteins.jsonl\n",{"type":39,"tag":124,"props":1892,"children":1893},{},[1894],{"type":39,"tag":1066,"props":1895,"children":1896},{},[1897,1899,1904],{"type":45,"value":1898},"(When building pipelines or querying comprehensively, you would loop through\nall the ",{"type":39,"tag":67,"props":1900,"children":1902},{"className":1901},[],[1903],{"type":45,"value":1739},{"type":45,"value":1905},"s from Step 1 and run Step 2 for each one).",{"type":39,"tag":48,"props":1907,"children":1909},{"id":1908},"interpro-entry-types",[1910],{"type":45,"value":1911},"InterPro Entry Types",{"type":39,"tag":124,"props":1913,"children":1914},{},[1915],{"type":45,"value":1916},"Each InterPro entry is assigned a type indicating what you can infer when a\nprotein matches the entry:",{"type":39,"tag":142,"props":1918,"children":1919},{},[1920,1943,1953,1963,1985],{"type":39,"tag":59,"props":1921,"children":1922},{},[1923,1928,1930,1935,1937,1942],{"type":39,"tag":63,"props":1924,"children":1925},{},[1926],{"type":45,"value":1927},"Domain",{"type":45,"value":1929},": Distinct functional, structural or sequence units that may exist\nin a variety of biological contexts. Example: ",{"type":39,"tag":1066,"props":1931,"children":1932},{},[1933],{"type":45,"value":1934},"PH domain",{"type":45,"value":1936}," or ",{"type":39,"tag":1066,"props":1938,"children":1939},{},[1940],{"type":45,"value":1941},"classical C2H2\nzinc finger",{"type":45,"value":758},{"type":39,"tag":59,"props":1944,"children":1945},{},[1946,1951],{"type":39,"tag":63,"props":1947,"children":1948},{},[1949],{"type":45,"value":1950},"Family",{"type":45,"value":1952},": A group of proteins sharing a common evolutionary origin\nreflected by related functions, sequence similarities, or\nprimary\u002Fsecondary\u002Ftertiary structures.",{"type":39,"tag":59,"props":1954,"children":1955},{},[1956,1961],{"type":39,"tag":63,"props":1957,"children":1958},{},[1959],{"type":45,"value":1960},"Homologous Superfamily",{"type":45,"value":1962},": Proteins sharing an evolutionary origin\nreflected by structural similarity but often displaying very low sequence\nsimilarity. Usually comprises signatures from the SUPERFAMILY and\nCATH-Gene3D databases.",{"type":39,"tag":59,"props":1964,"children":1965},{},[1966,1971,1973,1978,1979,1984],{"type":39,"tag":63,"props":1967,"children":1968},{},[1969],{"type":45,"value":1970},"Repeat",{"type":45,"value":1972},": A short sequence that is typically repeated within a protein,\noften \u003C50 amino acids long. Example: ",{"type":39,"tag":1066,"props":1974,"children":1975},{},[1976],{"type":45,"value":1977},"Leucine Rich Repeats",{"type":45,"value":1936},{"type":39,"tag":1066,"props":1980,"children":1981},{},[1982],{"type":45,"value":1983},"WD40\nrepeats",{"type":45,"value":758},{"type":39,"tag":59,"props":1986,"children":1987},{},[1988,1993,1995,2001,2003,2009],{"type":39,"tag":63,"props":1989,"children":1990},{},[1991],{"type":45,"value":1992},"Site",{"type":45,"value":1994},": Includes ",{"type":39,"tag":67,"props":1996,"children":1998},{"className":1997},[],[1999],{"type":45,"value":2000},"Active site",{"type":45,"value":2002}," (sequence containing conserved residues for\ncatalytic activity) and ",{"type":39,"tag":67,"props":2004,"children":2006},{"className":2005},[],[2007],{"type":45,"value":2008},"Binding site",{"type":45,"value":2010}," (sequence containing conserved\nresidues forming a protein interaction site).",{"type":39,"tag":48,"props":2012,"children":2014},{"id":2013},"interpro-n-predictions",[2015],{"type":45,"value":2016},"InterPro-N Predictions",{"type":39,"tag":124,"props":2018,"children":2019},{},[2020],{"type":45,"value":2021},"InterPro-N is a deep-learning-based extension of the standard InterPro database.\nIt utilizes an AI architecture inspired by computer vision to treat protein\nsequence annotation as a \"panoptic segmentation\" task, labeling residues and\ndistinguishing between domains.",{"type":39,"tag":474,"props":2023,"children":2025},{"id":2024},"when-to-use-interpro-n",[2026],{"type":45,"value":2027},"When to use InterPro-N",{"type":39,"tag":124,"props":2029,"children":2030},{},[2031],{"type":45,"value":2032},"Standard InterPro signatures are the \"gold standard\" and should not be discarded\nin favor of InterPro-N predictions. Use InterPro-N primarily to fill in gaps or\nrefine results.",{"type":39,"tag":124,"props":2034,"children":2035},{},[2036],{"type":39,"tag":63,"props":2037,"children":2038},{},[2039],{"type":45,"value":2040},"In addition to standard InterPro:",{"type":39,"tag":142,"props":2042,"children":2043},{},[2044,2054,2064],{"type":39,"tag":59,"props":2045,"children":2046},{},[2047,2052],{"type":39,"tag":63,"props":2048,"children":2049},{},[2050],{"type":45,"value":2051},"Analyzing \"Dark Matter\" (Uncharacterised Proteins)",{"type":45,"value":2053},": Use when a protein\nreturns no hits in standard InterPro. InterPro-N excels at identifying\nremote homologs.",{"type":39,"tag":59,"props":2055,"children":2056},{},[2057,2062],{"type":39,"tag":63,"props":2058,"children":2059},{},[2060],{"type":45,"value":2061},"Resolving Complex Repeats",{"type":45,"value":2063},": Use for proteins with multiple tandem repeats\n(e.g., TPR or WD40) where standard HMMs might merge or miss them.",{"type":39,"tag":59,"props":2065,"children":2066},{},[2067,2072],{"type":39,"tag":63,"props":2068,"children":2069},{},[2070],{"type":45,"value":2071},"Predicting Discontinuous Domains",{"type":45,"value":2073},": Use when a domain sequence is\ninterrupted by a completely different inserted sequence.",{"type":39,"tag":124,"props":2075,"children":2076},{},[2077],{"type":39,"tag":63,"props":2078,"children":2079},{},[2080],{"type":45,"value":2081},"Instead of standard InterPro (specific scenarios):",{"type":39,"tag":142,"props":2083,"children":2084},{},[2085,2095],{"type":39,"tag":59,"props":2086,"children":2087},{},[2088,2093],{"type":39,"tag":63,"props":2089,"children":2090},{},[2091],{"type":45,"value":2092},"Precise Boundary Delineation",{"type":45,"value":2094},": When you need more accurate start-and-stop\ncoordinates for a domain than fuzzy standard hits provide.",{"type":39,"tag":59,"props":2096,"children":2097},{},[2098,2103],{"type":39,"tag":63,"props":2099,"children":2100},{},[2101],{"type":45,"value":2102},"Large-Scale Metagenomic Screening",{"type":45,"value":2104},": For initial high-recovery screening\nof fragmented or highly divergent sequences.",{"type":39,"tag":474,"props":2106,"children":2108},{"id":2107},"fallback-strategy-checking-interpro-n",[2109],{"type":45,"value":2110},"Fallback Strategy: Checking InterPro-N",{"type":39,"tag":124,"props":2112,"children":2113},{},[2114,2116,2121],{"type":45,"value":2115},"When you are asked to find annotations for a protein and standard InterPro\nqueries return no results or no annotations, you ",{"type":39,"tag":63,"props":2117,"children":2118},{},[2119],{"type":45,"value":2120},"MUST",{"type":45,"value":2122}," check InterPro-N as a\nfallback.",{"type":39,"tag":124,"props":2124,"children":2125},{},[2126,2131,2133,2139],{"type":39,"tag":63,"props":2127,"children":2128},{},[2129],{"type":45,"value":2130},"Example Scenario:",{"type":45,"value":2132}," If a user asks to \"List the SSF annotations for protein X\"\nand the standard query returns no hits, you should retry the query with the\n",{"type":39,"tag":67,"props":2134,"children":2136},{"className":2135},[],[2137],{"type":45,"value":2138},"interpro_n",{"type":45,"value":2140}," flag.",{"type":39,"tag":124,"props":2142,"children":2143},{},[2144],{"type":45,"value":2145},"This fallback is crucial because InterPro-N can identify remote homologs and\ndomains in \"dark matter\" proteins that standard methods miss.",{"type":39,"tag":124,"props":2147,"children":2148},{},[2149,2151,2156],{"type":45,"value":2150},"If found, ",{"type":39,"tag":63,"props":2152,"children":2153},{},[2154],{"type":45,"value":2155},"ALWAYS",{"type":45,"value":2157}," report to the user that these annotations are deep learning\npredictions from InterPro-N.",{"type":39,"tag":474,"props":2159,"children":2161},{"id":2160},"how-to-use",[2162],{"type":45,"value":2163},"How to Use",{"type":39,"tag":124,"props":2165,"children":2166},{},[2167,2169,2174,2176,2182,2184,2189],{"type":45,"value":2168},"InterPro-N predictions are accessed by passing the ",{"type":39,"tag":67,"props":2170,"children":2172},{"className":2171},[],[2173],{"type":45,"value":2138},{"type":45,"value":2175}," flag to the\n",{"type":39,"tag":67,"props":2177,"children":2179},{"className":2178},[],[2180],{"type":45,"value":2181},"protein",{"type":45,"value":2183}," endpoint with ",{"type":39,"tag":67,"props":2185,"children":2187},{"className":2186},[],[2188],{"type":45,"value":778},{"type":45,"value":2190}," as the source database.",{"type":39,"tag":124,"props":2192,"children":2193},{},[2194],{"type":39,"tag":63,"props":2195,"children":2196},{},[2197],{"type":45,"value":2198},"Via CLI:",{"type":39,"tag":259,"props":2200,"children":2202},{"className":261,"code":2201,"language":263,"meta":264,"style":264},"uv run .\u002Fscripts\u002Finterpro_client.py fetch protein\n    --source_db uniprot\n    --accession A0A096LNN2\n    --flags interpro_n\n    --output A0A096LNN2_interpro_n.jsonl\n",[2203],{"type":39,"tag":67,"props":2204,"children":2205},{"__ignoreMap":264},[2206,2229,2241,2254,2267],{"type":39,"tag":270,"props":2207,"children":2208},{"class":272,"line":273},[2209,2213,2217,2221,2225],{"type":39,"tag":270,"props":2210,"children":2211},{"style":277},[2212],{"type":45,"value":72},{"type":39,"tag":270,"props":2214,"children":2215},{"style":282},[2216],{"type":45,"value":285},{"type":39,"tag":270,"props":2218,"children":2219},{"style":282},[2220],{"type":45,"value":290},{"type":39,"tag":270,"props":2222,"children":2223},{"style":282},[2224],{"type":45,"value":295},{"type":39,"tag":270,"props":2226,"children":2227},{"style":282},[2228],{"type":45,"value":1853},{"type":39,"tag":270,"props":2230,"children":2231},{"class":272,"line":366},[2232,2237],{"type":39,"tag":270,"props":2233,"children":2234},{"style":277},[2235],{"type":45,"value":2236},"    --source_db",{"type":39,"tag":270,"props":2238,"children":2239},{"style":282},[2240],{"type":45,"value":1866},{"type":39,"tag":270,"props":2242,"children":2243},{"class":272,"line":375},[2244,2249],{"type":39,"tag":270,"props":2245,"children":2246},{"style":277},[2247],{"type":45,"value":2248},"    --accession",{"type":39,"tag":270,"props":2250,"children":2251},{"style":282},[2252],{"type":45,"value":2253}," A0A096LNN2\n",{"type":39,"tag":270,"props":2255,"children":2256},{"class":272,"line":384},[2257,2262],{"type":39,"tag":270,"props":2258,"children":2259},{"style":277},[2260],{"type":45,"value":2261},"    --flags",{"type":39,"tag":270,"props":2263,"children":2264},{"style":282},[2265],{"type":45,"value":2266}," interpro_n\n",{"type":39,"tag":270,"props":2268,"children":2269},{"class":272,"line":393},[2270,2275],{"type":39,"tag":270,"props":2271,"children":2272},{"style":277},[2273],{"type":45,"value":2274},"    --output",{"type":39,"tag":270,"props":2276,"children":2277},{"style":282},[2278],{"type":45,"value":2279}," A0A096LNN2_interpro_n.jsonl\n",{"type":39,"tag":124,"props":2281,"children":2282},{},[2283],{"type":39,"tag":63,"props":2284,"children":2285},{},[2286],{"type":45,"value":2287},"Via Python Pipeline:",{"type":39,"tag":259,"props":2289,"children":2291},{"className":349,"code":2290,"language":351,"meta":264,"style":264},"results = fetch_interpro_data(\n    endpoint=\"protein\",\n    source_db=\"uniprot\",\n    accession=\"A0A096LNN2\",\n    flags=[\"interpro_n\"])\n",[2292],{"type":39,"tag":67,"props":2293,"children":2294},{"__ignoreMap":264},[2295,2302,2310,2318,2326],{"type":39,"tag":270,"props":2296,"children":2297},{"class":272,"line":273},[2298],{"type":39,"tag":270,"props":2299,"children":2300},{},[2301],{"type":45,"value":418},{"type":39,"tag":270,"props":2303,"children":2304},{"class":272,"line":366},[2305],{"type":39,"tag":270,"props":2306,"children":2307},{},[2308],{"type":45,"value":2309},"    endpoint=\"protein\",\n",{"type":39,"tag":270,"props":2311,"children":2312},{"class":272,"line":375},[2313],{"type":39,"tag":270,"props":2314,"children":2315},{},[2316],{"type":45,"value":2317},"    source_db=\"uniprot\",\n",{"type":39,"tag":270,"props":2319,"children":2320},{"class":272,"line":384},[2321],{"type":39,"tag":270,"props":2322,"children":2323},{},[2324],{"type":45,"value":2325},"    accession=\"A0A096LNN2\",\n",{"type":39,"tag":270,"props":2327,"children":2328},{"class":272,"line":393},[2329],{"type":39,"tag":270,"props":2330,"children":2331},{},[2332],{"type":45,"value":2333},"    flags=[\"interpro_n\"])\n",{"type":39,"tag":48,"props":2335,"children":2337},{"id":2336},"strict-lookup-rules",[2338],{"type":45,"value":2339},"Strict Lookup Rules",{"type":39,"tag":55,"props":2341,"children":2342},{},[2343,2369],{"type":39,"tag":59,"props":2344,"children":2345},{},[2346,2351,2353,2359,2361,2367],{"type":39,"tag":63,"props":2347,"children":2348},{},[2349],{"type":45,"value":2350},"Always Use UniProt Accessions, NEVER Gene Names:",{"type":45,"value":2352}," When looking up\nproteins in InterPro, you MUST use their UniProt Accessions (e.g. ",{"type":39,"tag":67,"props":2354,"children":2356},{"className":2355},[],[2357],{"type":45,"value":2358},"P04637",{"type":45,"value":2360},").\nInterPro does not natively support or reliably map gene names (e.g. ",{"type":39,"tag":67,"props":2362,"children":2364},{"className":2363},[],[2365],{"type":45,"value":2366},"TP53",{"type":45,"value":2368},").\nIf the user provides a gene name, you must use a database like Ensembl or\nUniProt first to resolve it to an accession.",{"type":39,"tag":59,"props":2370,"children":2371},{},[2372,2377,2379,2385,2387,2393,2395,2401,2403,2407,2409,2414,2415,2418,2422,2490,2493,2497,2550,2553,2555,2560,2562],{"type":39,"tag":63,"props":2373,"children":2374},{},[2375],{"type":45,"value":2376},"NEVER Iterate to Count:",{"type":45,"value":2378}," When asked for an aggregate count (e.g., \"How\nmany domains are there?\"), you MUST read the ",{"type":39,"tag":67,"props":2380,"children":2382},{"className":2381},[],[2383],{"type":45,"value":2384},"count",{"type":45,"value":2386}," field from the initial\nAPI JSON response using the ",{"type":39,"tag":67,"props":2388,"children":2390},{"className":2389},[],[2391],{"type":45,"value":2392},"get_interpro_count()",{"type":45,"value":2394}," helper. NEVER iterate\nover the ",{"type":39,"tag":67,"props":2396,"children":2398},{"className":2397},[],[2399],{"type":45,"value":2400},"fetch_interpro_data",{"type":45,"value":2402}," generator to tally elements. Iterating over\nan endpoint with 50,000+ entries just to count them silently hangs the agent\nand abuses the API. Every time. No exceptions.",{"type":39,"tag":2404,"props":2405,"children":2406},"br",{},[],{"type":45,"value":2408},"✅ ",{"type":39,"tag":63,"props":2410,"children":2411},{},[2412],{"type":45,"value":2413},"Correct",{"type":45,"value":1790},{"type":39,"tag":2404,"props":2416,"children":2417},{},[],{"type":39,"tag":63,"props":2419,"children":2420},{},[2421],{"type":45,"value":2198},{"type":39,"tag":259,"props":2423,"children":2425},{"className":261,"code":2424,"language":263,"meta":264,"style":264},"uv run .\u002Fscripts\u002Finterpro_client.py count entry\n    --source_db interpro\n    --query_params type=domain\n    --output count.json\n",[2426],{"type":39,"tag":67,"props":2427,"children":2428},{"__ignoreMap":264},[2429,2453,2465,2478],{"type":39,"tag":270,"props":2430,"children":2431},{"class":272,"line":273},[2432,2436,2440,2444,2449],{"type":39,"tag":270,"props":2433,"children":2434},{"style":277},[2435],{"type":45,"value":72},{"type":39,"tag":270,"props":2437,"children":2438},{"style":282},[2439],{"type":45,"value":285},{"type":39,"tag":270,"props":2441,"children":2442},{"style":282},[2443],{"type":45,"value":290},{"type":39,"tag":270,"props":2445,"children":2446},{"style":282},[2447],{"type":45,"value":2448}," count",{"type":39,"tag":270,"props":2450,"children":2451},{"style":282},[2452],{"type":45,"value":1681},{"type":39,"tag":270,"props":2454,"children":2455},{"class":272,"line":366},[2456,2460],{"type":39,"tag":270,"props":2457,"children":2458},{"style":277},[2459],{"type":45,"value":2236},{"type":39,"tag":270,"props":2461,"children":2462},{"style":282},[2463],{"type":45,"value":2464}," interpro\n",{"type":39,"tag":270,"props":2466,"children":2467},{"class":272,"line":375},[2468,2473],{"type":39,"tag":270,"props":2469,"children":2470},{"style":277},[2471],{"type":45,"value":2472},"    --query_params",{"type":39,"tag":270,"props":2474,"children":2475},{"style":282},[2476],{"type":45,"value":2477}," type=domain\n",{"type":39,"tag":270,"props":2479,"children":2480},{"class":272,"line":384},[2481,2485],{"type":39,"tag":270,"props":2482,"children":2483},{"style":277},[2484],{"type":45,"value":2274},{"type":39,"tag":270,"props":2486,"children":2487},{"style":282},[2488],{"type":45,"value":2489}," count.json\n",{"type":39,"tag":2404,"props":2491,"children":2492},{},[],{"type":39,"tag":63,"props":2494,"children":2495},{},[2496],{"type":45,"value":2287},{"type":39,"tag":259,"props":2498,"children":2500},{"className":349,"code":2499,"language":351,"meta":264,"style":264},"from interpro_client import get_interpro_count\ncnt = get_interpro_count(\n    endpoint=\"entry\",\n    source_db=\"interpro\",\n    query_params={\"type\": \"domain\"},\n)\n",[2501],{"type":39,"tag":67,"props":2502,"children":2503},{"__ignoreMap":264},[2504,2512,2520,2527,2535,2543],{"type":39,"tag":270,"props":2505,"children":2506},{"class":272,"line":273},[2507],{"type":39,"tag":270,"props":2508,"children":2509},{},[2510],{"type":45,"value":2511},"from interpro_client import get_interpro_count\n",{"type":39,"tag":270,"props":2513,"children":2514},{"class":272,"line":366},[2515],{"type":39,"tag":270,"props":2516,"children":2517},{},[2518],{"type":45,"value":2519},"cnt = get_interpro_count(\n",{"type":39,"tag":270,"props":2521,"children":2522},{"class":272,"line":375},[2523],{"type":39,"tag":270,"props":2524,"children":2525},{},[2526],{"type":45,"value":427},{"type":39,"tag":270,"props":2528,"children":2529},{"class":272,"line":384},[2530],{"type":39,"tag":270,"props":2531,"children":2532},{},[2533],{"type":45,"value":2534},"    source_db=\"interpro\",\n",{"type":39,"tag":270,"props":2536,"children":2537},{"class":272,"line":393},[2538],{"type":39,"tag":270,"props":2539,"children":2540},{},[2541],{"type":45,"value":2542},"    query_params={\"type\": \"domain\"},\n",{"type":39,"tag":270,"props":2544,"children":2545},{"class":272,"line":403},[2546],{"type":39,"tag":270,"props":2547,"children":2548},{},[2549],{"type":45,"value":454},{"type":39,"tag":2404,"props":2551,"children":2552},{},[],{"type":45,"value":2554},"❌ ",{"type":39,"tag":63,"props":2556,"children":2557},{},[2558],{"type":45,"value":2559},"Wrong",{"type":45,"value":2561}," (Iterating over fetch):",{"type":39,"tag":259,"props":2563,"children":2565},{"className":261,"code":2564,"language":263,"meta":264,"style":264},"# NEVER DO THIS:\nuv run .\u002Fscripts\u002Finterpro_client.py fetch entry\n    --source_db interpro\n    --query_params type=domain\n    --output output.jsonl\n    && wc -l output.jsonl\n",[2566],{"type":39,"tag":67,"props":2567,"children":2568},{"__ignoreMap":264},[2569,2578,2601,2612,2623,2635],{"type":39,"tag":270,"props":2570,"children":2571},{"class":272,"line":273},[2572],{"type":39,"tag":270,"props":2573,"children":2575},{"style":2574},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[2576],{"type":45,"value":2577},"# NEVER DO THIS:\n",{"type":39,"tag":270,"props":2579,"children":2580},{"class":272,"line":366},[2581,2585,2589,2593,2597],{"type":39,"tag":270,"props":2582,"children":2583},{"style":277},[2584],{"type":45,"value":72},{"type":39,"tag":270,"props":2586,"children":2587},{"style":282},[2588],{"type":45,"value":285},{"type":39,"tag":270,"props":2590,"children":2591},{"style":282},[2592],{"type":45,"value":290},{"type":39,"tag":270,"props":2594,"children":2595},{"style":282},[2596],{"type":45,"value":295},{"type":39,"tag":270,"props":2598,"children":2599},{"style":282},[2600],{"type":45,"value":1681},{"type":39,"tag":270,"props":2602,"children":2603},{"class":272,"line":375},[2604,2608],{"type":39,"tag":270,"props":2605,"children":2606},{"style":277},[2607],{"type":45,"value":2236},{"type":39,"tag":270,"props":2609,"children":2610},{"style":282},[2611],{"type":45,"value":2464},{"type":39,"tag":270,"props":2613,"children":2614},{"class":272,"line":384},[2615,2619],{"type":39,"tag":270,"props":2616,"children":2617},{"style":277},[2618],{"type":45,"value":2472},{"type":39,"tag":270,"props":2620,"children":2621},{"style":282},[2622],{"type":45,"value":2477},{"type":39,"tag":270,"props":2624,"children":2625},{"class":272,"line":393},[2626,2630],{"type":39,"tag":270,"props":2627,"children":2628},{"style":277},[2629],{"type":45,"value":2274},{"type":39,"tag":270,"props":2631,"children":2632},{"style":282},[2633],{"type":45,"value":2634}," output.jsonl\n",{"type":39,"tag":270,"props":2636,"children":2637},{"class":272,"line":403},[2638,2644,2649,2654],{"type":39,"tag":270,"props":2639,"children":2641},{"style":2640},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[2642],{"type":45,"value":2643},"    &&",{"type":39,"tag":270,"props":2645,"children":2646},{"style":277},[2647],{"type":45,"value":2648}," wc",{"type":39,"tag":270,"props":2650,"children":2651},{"style":282},[2652],{"type":45,"value":2653}," -l",{"type":39,"tag":270,"props":2655,"children":2656},{"style":282},[2657],{"type":45,"value":2634},{"type":39,"tag":48,"props":2659,"children":2661},{"id":2660},"quick-examples",[2662],{"type":45,"value":2663},"Quick examples",{"type":39,"tag":124,"props":2665,"children":2666},{},[2667,2679],{"type":39,"tag":63,"props":2668,"children":2669},{},[2670,2672,2678],{"type":45,"value":2671},"For detailed examples of the invocations and JSON output schemas returned by\nvarious endpoints, see the\n",{"type":39,"tag":100,"props":2673,"children":2675},{"href":2674},"references\u002Fexample_responses.tsv",[2676],{"type":45,"value":2677},"Example Responses Reference",{"type":45,"value":758},{"type":45,"value":2680}," This TSV\ncontains command-line calls, Python equivalents, and the corresponding JSON\npayload structures.",{"type":39,"tag":474,"props":2682,"children":2684},{"id":2683},"_1-determining-all-protein-domains",[2685],{"type":45,"value":2686},"1. Determining all protein domains",{"type":39,"tag":259,"props":2688,"children":2690},{"className":261,"code":2689,"language":263,"meta":264,"style":264},"# Fetches InterPro Entries within UniProt protein P04637\n# URL equivalent: \u002Fentry\u002Finterpro\u002Fprotein\u002Funiprot\u002FP04637\nuv run .\u002Fscripts\u002Finterpro_client.py fetch entry\n    --source_db interpro\n    --linked_endpoint protein\n    --linked_source_db uniprot\n    --linked_accession P04637\n    --output p04637_domains.jsonl\n",[2691],{"type":39,"tag":67,"props":2692,"children":2693},{"__ignoreMap":264},[2694,2702,2710,2733,2744,2756,2768,2781],{"type":39,"tag":270,"props":2695,"children":2696},{"class":272,"line":273},[2697],{"type":39,"tag":270,"props":2698,"children":2699},{"style":2574},[2700],{"type":45,"value":2701},"# Fetches InterPro Entries within UniProt protein P04637\n",{"type":39,"tag":270,"props":2703,"children":2704},{"class":272,"line":366},[2705],{"type":39,"tag":270,"props":2706,"children":2707},{"style":2574},[2708],{"type":45,"value":2709},"# URL equivalent: \u002Fentry\u002Finterpro\u002Fprotein\u002Funiprot\u002FP04637\n",{"type":39,"tag":270,"props":2711,"children":2712},{"class":272,"line":375},[2713,2717,2721,2725,2729],{"type":39,"tag":270,"props":2714,"children":2715},{"style":277},[2716],{"type":45,"value":72},{"type":39,"tag":270,"props":2718,"children":2719},{"style":282},[2720],{"type":45,"value":285},{"type":39,"tag":270,"props":2722,"children":2723},{"style":282},[2724],{"type":45,"value":290},{"type":39,"tag":270,"props":2726,"children":2727},{"style":282},[2728],{"type":45,"value":295},{"type":39,"tag":270,"props":2730,"children":2731},{"style":282},[2732],{"type":45,"value":1681},{"type":39,"tag":270,"props":2734,"children":2735},{"class":272,"line":384},[2736,2740],{"type":39,"tag":270,"props":2737,"children":2738},{"style":277},[2739],{"type":45,"value":2236},{"type":39,"tag":270,"props":2741,"children":2742},{"style":282},[2743],{"type":45,"value":2464},{"type":39,"tag":270,"props":2745,"children":2746},{"class":272,"line":393},[2747,2752],{"type":39,"tag":270,"props":2748,"children":2749},{"style":277},[2750],{"type":45,"value":2751},"    --linked_endpoint",{"type":39,"tag":270,"props":2753,"children":2754},{"style":282},[2755],{"type":45,"value":1853},{"type":39,"tag":270,"props":2757,"children":2758},{"class":272,"line":403},[2759,2764],{"type":39,"tag":270,"props":2760,"children":2761},{"style":277},[2762],{"type":45,"value":2763},"    --linked_source_db",{"type":39,"tag":270,"props":2765,"children":2766},{"style":282},[2767],{"type":45,"value":1866},{"type":39,"tag":270,"props":2769,"children":2770},{"class":272,"line":412},[2771,2776],{"type":39,"tag":270,"props":2772,"children":2773},{"style":277},[2774],{"type":45,"value":2775},"    --linked_accession",{"type":39,"tag":270,"props":2777,"children":2778},{"style":282},[2779],{"type":45,"value":2780}," P04637\n",{"type":39,"tag":270,"props":2782,"children":2783},{"class":272,"line":421},[2784,2788],{"type":39,"tag":270,"props":2785,"children":2786},{"style":277},[2787],{"type":45,"value":2274},{"type":39,"tag":270,"props":2789,"children":2790},{"style":282},[2791],{"type":45,"value":2792}," p04637_domains.jsonl\n",{"type":39,"tag":474,"props":2794,"children":2796},{"id":2795},"_2-fetching-all-pdb-structures-for-an-entry",[2797],{"type":45,"value":2798},"2. Fetching all PDB structures for an Entry",{"type":39,"tag":259,"props":2800,"children":2802},{"className":261,"code":2801,"language":263,"meta":264,"style":264},"# URL equivalent: \u002Fstructure\u002Fpdb\u002Fentry\u002Finterpro\u002FIPR011615\n# Only fetch the first 5 structures\nuv run .\u002Fscripts\u002Finterpro_client.py fetch structure\n    --source_db pdb\n    --linked_endpoint entry\n    --linked_source_db interpro\n    --linked_accession IPR011615\n    --output ipr011615_structures.jsonl\n",[2803],{"type":39,"tag":67,"props":2804,"children":2805},{"__ignoreMap":264},[2806,2814,2822,2846,2858,2869,2880,2892],{"type":39,"tag":270,"props":2807,"children":2808},{"class":272,"line":273},[2809],{"type":39,"tag":270,"props":2810,"children":2811},{"style":2574},[2812],{"type":45,"value":2813},"# URL equivalent: \u002Fstructure\u002Fpdb\u002Fentry\u002Finterpro\u002FIPR011615\n",{"type":39,"tag":270,"props":2815,"children":2816},{"class":272,"line":366},[2817],{"type":39,"tag":270,"props":2818,"children":2819},{"style":2574},[2820],{"type":45,"value":2821},"# Only fetch the first 5 structures\n",{"type":39,"tag":270,"props":2823,"children":2824},{"class":272,"line":375},[2825,2829,2833,2837,2841],{"type":39,"tag":270,"props":2826,"children":2827},{"style":277},[2828],{"type":45,"value":72},{"type":39,"tag":270,"props":2830,"children":2831},{"style":282},[2832],{"type":45,"value":285},{"type":39,"tag":270,"props":2834,"children":2835},{"style":282},[2836],{"type":45,"value":290},{"type":39,"tag":270,"props":2838,"children":2839},{"style":282},[2840],{"type":45,"value":295},{"type":39,"tag":270,"props":2842,"children":2843},{"style":282},[2844],{"type":45,"value":2845}," structure\n",{"type":39,"tag":270,"props":2847,"children":2848},{"class":272,"line":384},[2849,2853],{"type":39,"tag":270,"props":2850,"children":2851},{"style":277},[2852],{"type":45,"value":2236},{"type":39,"tag":270,"props":2854,"children":2855},{"style":282},[2856],{"type":45,"value":2857}," pdb\n",{"type":39,"tag":270,"props":2859,"children":2860},{"class":272,"line":393},[2861,2865],{"type":39,"tag":270,"props":2862,"children":2863},{"style":277},[2864],{"type":45,"value":2751},{"type":39,"tag":270,"props":2866,"children":2867},{"style":282},[2868],{"type":45,"value":1681},{"type":39,"tag":270,"props":2870,"children":2871},{"class":272,"line":403},[2872,2876],{"type":39,"tag":270,"props":2873,"children":2874},{"style":277},[2875],{"type":45,"value":2763},{"type":39,"tag":270,"props":2877,"children":2878},{"style":282},[2879],{"type":45,"value":2464},{"type":39,"tag":270,"props":2881,"children":2882},{"class":272,"line":412},[2883,2887],{"type":39,"tag":270,"props":2884,"children":2885},{"style":277},[2886],{"type":45,"value":2775},{"type":39,"tag":270,"props":2888,"children":2889},{"style":282},[2890],{"type":45,"value":2891}," IPR011615\n",{"type":39,"tag":270,"props":2893,"children":2894},{"class":272,"line":421},[2895,2899],{"type":39,"tag":270,"props":2896,"children":2897},{"style":277},[2898],{"type":45,"value":2274},{"type":39,"tag":270,"props":2900,"children":2901},{"style":282},[2902],{"type":45,"value":2903}," ipr011615_structures.jsonl\n",{"type":39,"tag":2905,"props":2906,"children":2907},"style",{},[2908],{"type":45,"value":2909},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2911,"total":3075},[2912,2927,2940,2960,2972,2987,3003,3016,3028,3043,3054,3064],{"slug":2913,"name":2913,"fn":2914,"description":2915,"org":2916,"tags":2917,"stars":22,"repoUrl":23,"updatedAt":2926},"alphafold-database-fetch-and-analyze","retrieve and analyze AlphaFold protein structures","Retrieve and analyze AlphaFold predicted structures for a protein. Use when the user provides a specific UniProt Accession ID and wants structural confidence metrics (pLDDT), domain boundary analysis, or disorder assessment. Do not use if the user only has a protein name, gene name, or amino acid sequence — ask for a UniProt ID first.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2918,2919,2922,2923],{"name":17,"slug":18,"type":15},{"name":2920,"slug":2921,"type":15},"Genomics","genomics",{"name":13,"slug":14,"type":15},{"name":2924,"slug":2925,"type":15},"Research","research","2026-07-12T07:51:51.827211",{"slug":2928,"name":2928,"fn":2929,"description":2930,"org":2931,"tags":2932,"stars":22,"repoUrl":23,"updatedAt":2939},"alphagenome-single-variant-analysis","analyze genetic variant effects with AlphaGenome","Analyzes genetic variant effects on gene expression (RNA-seq), chromatin accessibility (DNASE), histone marks (ChIP), and transcription factors using the AlphaGenome API. Use when the user asks about non-coding variant effects, pathogenicity, clinical significance, disease associations, functional effects, gene expression changes, splicing disruption, or regulatory effects in promoters and enhancers. Also use for resolving biological terms to tissue\u002Fcell-type ontologies (UBERON\u002FCL) or analyzing variants in chr:pos:ref>alt format.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2933,2934,2935,2936],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":2924,"slug":2925,"type":15},{"name":2937,"slug":2938,"type":15},"RNA-seq","rna-seq","2026-07-12T07:51:39.494803",{"slug":2941,"name":2941,"fn":2942,"description":2943,"org":2944,"tags":2945,"stars":22,"repoUrl":23,"updatedAt":2959},"chembl-database","query ChEMBL database for bioactive molecules","Query the ChEMBL database for bioactive molecules, drug targets, bioactivity data, approved drugs, and chemical structures. Use when the user asks about compounds, targets, IC50\u002FKi values, drug mechanisms, or structure searches.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2946,2949,2952,2955,2958],{"name":2947,"slug":2948,"type":15},"ChEMBL","chembl",{"name":2950,"slug":2951,"type":15},"Chemistry","chemistry",{"name":2953,"slug":2954,"type":15},"Database","database",{"name":2956,"slug":2957,"type":15},"Pharmacology","pharmacology",{"name":2924,"slug":2925,"type":15},"2026-07-12T07:51:35.544306",{"slug":2961,"name":2961,"fn":2962,"description":2963,"org":2964,"tags":2965,"stars":22,"repoUrl":23,"updatedAt":2971},"clinical-trials-database","query clinical trial data","Query ClinicalTrials.gov via APIv2. Use when you want to search for trials by condition, drug, location, status, or phase; retrieve trial details by NCT ID; check eligibility\u002Finclusion criteria; count trials across conditions or time periods; identify a sponsor's trial portfolio; find recruiting trials for patient matching.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2966,2969,2970],{"name":2967,"slug":2968,"type":15},"Clinical Trials","clinical-trials",{"name":13,"slug":14,"type":15},{"name":2924,"slug":2925,"type":15},"2026-07-12T07:52:06.846705",{"slug":2973,"name":2973,"fn":2974,"description":2975,"org":2976,"tags":2977,"stars":22,"repoUrl":23,"updatedAt":2986},"clinvar-database","retrieve clinical significance from ClinVar database","Use when needing clinical significance, pathogenicity classifications (e.g., Pathogenic, Benign, VUS), clinical evidence rationales, or finding \"hard positive\" benchmark controls for human genomic variants.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2978,2981,2982,2985],{"name":2979,"slug":2980,"type":15},"ClinVar","clinvar",{"name":20,"slug":21,"type":15},{"name":2983,"slug":2984,"type":15},"Healthcare","healthcare",{"name":2924,"slug":2925,"type":15},"2026-07-12T07:51:36.86094",{"slug":2988,"name":2988,"fn":2989,"description":2990,"org":2991,"tags":2992,"stars":22,"repoUrl":23,"updatedAt":3002},"credentials","manage and verify API credentials safely","Instructions for handling API keys and credentials safely, verifying their presence, and prompting the user to add them if missing using a safe protocol.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2993,2996,2999],{"name":2994,"slug":2995,"type":15},"Compliance","compliance",{"name":2997,"slug":2998,"type":15},"Operations","operations",{"name":3000,"slug":3001,"type":15},"Security","security","2026-07-12T07:52:17.355491",{"slug":3004,"name":3004,"fn":3005,"description":3006,"org":3007,"tags":3008,"stars":22,"repoUrl":23,"updatedAt":3015},"dbsnp-database","search genetic variants in dbSNP database","Use when you want to look up, map, and search for short genetic variants (SNPs, indels) in NCBI's dbSNP database. Resolves between rsIDs, genomic coordinates in VCF format, and HGVS strings. For an rsID, returns variant type, gene associations, clinical significance, allele frequencies, and genomic coordinates (GRCh38).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3009,3010,3011,3014],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":3012,"slug":3013,"type":15},"NCBI","ncbi",{"name":2924,"slug":2925,"type":15},"2026-07-12T07:51:33.054229",{"slug":3017,"name":3017,"fn":3018,"description":3019,"org":3020,"tags":3021,"stars":22,"repoUrl":23,"updatedAt":3027},"embl-ebi-ols","search biomedical ontologies in EMBL-EBI OLS","Query and search the EMBL-EBI Ontology Lookup Service (OLS) for biomedical ontology terms, definitions, and hierarchies across 250+ ontologies (e.g., GO, DOID, HP). Use when the user asks to search for terms, retrieve details, navigate hierarchies (parents, children, ancestors), look up properties and individuals, get autocomplete suggestions, or access ontology metadata and statistics.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3022,3023,3026],{"name":17,"slug":18,"type":15},{"name":3024,"slug":3025,"type":15},"Ontology","ontology",{"name":2924,"slug":2925,"type":15},"2026-07-12T07:51:59.368324",{"slug":3029,"name":3029,"fn":3030,"description":3031,"org":3032,"tags":3033,"stars":22,"repoUrl":23,"updatedAt":3042},"encode-ccres-database","query ENCODE regulatory and experimental data","Query the ENCODE Registry of cis-Regulatory Elements (cCREs) via the SCREEN GraphQL API, or make custom queries to the ENCODE Portal REST API for experiments and files (ChIP-seq peaks, etc.). Use when you want to query regulatory annotations or raw experimental data across human cell types.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3034,3035,3038,3039],{"name":17,"slug":18,"type":15},{"name":3036,"slug":3037,"type":15},"GraphQL","graphql",{"name":2924,"slug":2925,"type":15},{"name":3040,"slug":3041,"type":15},"REST API","rest-api","2026-07-12T07:52:10.597139",{"slug":3044,"name":3044,"fn":3045,"description":3046,"org":3047,"tags":3048,"stars":22,"repoUrl":23,"updatedAt":3053},"ensembl-database","query genomic and protein data from Ensembl","Query the Ensembl database to resolve gene, transcript, and protein IDs, fetch genomic or protein sequences, retrieve gene structures (exons), and get variant consequence and effect predictions (VEP). Use this skill as a primary ID translator, genomic sequence database and variant effect prediction tool.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3049,3050,3051,3052],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":2924,"slug":2925,"type":15},"2026-07-12T07:51:41.645835",{"slug":3055,"name":3055,"fn":3056,"description":3057,"org":3058,"tags":3059,"stars":22,"repoUrl":23,"updatedAt":3063},"foldseek-structural-search","perform 3D protein structural searches","Performs 3D structural searches of proteins against various databases (PDB, AlphaFold, CATH, MGnify, etc.) using the Foldseek API. Use ONLY when the user provides a physical 3D coordinate file (.cif, .mmcif, or .pdb) and wants to find structurally similar proteins. Do NOT use if the user only provides a protein sequence, gene name, or UniProt ID.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3060,3061,3062],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":2924,"slug":2925,"type":15},"2026-07-12T07:52:09.354992",{"slug":3065,"name":3065,"fn":3066,"description":3067,"org":3068,"tags":3069,"stars":22,"repoUrl":23,"updatedAt":3074},"gnomad-database","query genetic variant data from gnomAD","Query the Genome Aggregation Database (gnomAD). Use when determining the rarity or allele frequency of specific genetic variants, retrieving gene constraint metrics (pLI, LOEUF) to assess loss-of-function intolerance, finding variants in a genomic region or gene, or querying structural variants. Don't use for analyzing individual patient genomes, tracking somatic mutations in cancer (use COSMIC), or requesting raw sequencing reads (use ENA).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3070,3071,3072,3073],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},{"name":2924,"slug":2925,"type":15},"2026-07-12T07:51:38.213009",38,{"items":3077,"total":3075},[3078,3085,3092,3100,3106,3113,3119],{"slug":2913,"name":2913,"fn":2914,"description":2915,"org":3079,"tags":3080,"stars":22,"repoUrl":23,"updatedAt":2926},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3081,3082,3083,3084],{"name":17,"slug":18,"type":15},{"name":2920,"slug":2921,"type":15},{"name":13,"slug":14,"type":15},{"name":2924,"slug":2925,"type":15},{"slug":2928,"name":2928,"fn":2929,"description":2930,"org":3086,"tags":3087,"stars":22,"repoUrl":23,"updatedAt":2939},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3088,3089,3090,3091],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":2924,"slug":2925,"type":15},{"name":2937,"slug":2938,"type":15},{"slug":2941,"name":2941,"fn":2942,"description":2943,"org":3093,"tags":3094,"stars":22,"repoUrl":23,"updatedAt":2959},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3095,3096,3097,3098,3099],{"name":2947,"slug":2948,"type":15},{"name":2950,"slug":2951,"type":15},{"name":2953,"slug":2954,"type":15},{"name":2956,"slug":2957,"type":15},{"name":2924,"slug":2925,"type":15},{"slug":2961,"name":2961,"fn":2962,"description":2963,"org":3101,"tags":3102,"stars":22,"repoUrl":23,"updatedAt":2971},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3103,3104,3105],{"name":2967,"slug":2968,"type":15},{"name":13,"slug":14,"type":15},{"name":2924,"slug":2925,"type":15},{"slug":2973,"name":2973,"fn":2974,"description":2975,"org":3107,"tags":3108,"stars":22,"repoUrl":23,"updatedAt":2986},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3109,3110,3111,3112],{"name":2979,"slug":2980,"type":15},{"name":20,"slug":21,"type":15},{"name":2983,"slug":2984,"type":15},{"name":2924,"slug":2925,"type":15},{"slug":2988,"name":2988,"fn":2989,"description":2990,"org":3114,"tags":3115,"stars":22,"repoUrl":23,"updatedAt":3002},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3116,3117,3118],{"name":2994,"slug":2995,"type":15},{"name":2997,"slug":2998,"type":15},{"name":3000,"slug":3001,"type":15},{"slug":3004,"name":3004,"fn":3005,"description":3006,"org":3120,"tags":3121,"stars":22,"repoUrl":23,"updatedAt":3015},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3122,3123,3124,3125],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":3012,"slug":3013,"type":15},{"name":2924,"slug":2925,"type":15}]