[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-google-deepmind-human-protein-atlas-database":3,"mdc--7uvuji-key":36,"related-org-google-deepmind-human-protein-atlas-database":1084,"related-repo-google-deepmind-human-protein-atlas-database":1250},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"human-protein-atlas-database","retrieve protein expression data from HPA","Use when you want to retrieve semi-quantitative protein expression and spatial localisation data from the Human Protein Atlas (HPA).\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,22],{"name":13,"slug":14,"type":15},"Research","research","tag",{"name":17,"slug":18,"type":15},"Life Sciences","life-sciences",{"name":20,"slug":21,"type":15},"Bioinformatics","bioinformatics",{"name":23,"slug":24,"type":15},"Human Protein Atlas","human-protein-atlas",2333,"https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fscience-skills","2026-07-12T07:51:53.1321",null,234,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"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\u002Fhuman_protein_atlas_database","---\nname: human-protein-atlas-database\ndescription: >\n  Use when you want to retrieve semi-quantitative protein expression and\n  spatial localisation data from the Human Protein Atlas (HPA).\n---\n\n# Human Protein Atlas (HPA) Database Integration\n\nThis skill provides semi-quantitative protein expression and spatial\nlocalisation data from the Human Protein Atlas (HPA). While RNA-seq (e.g., GTEx)\ntells us if a gene is being transcribed, HPA confirms if the protein product\nactually exists, where it is located within the cell (e.g. nucleus vs\ncytoplasm), and its concentration in systemic blood circulation. The data is\nbased on Immunohistochemistry (IHC) across normal human tissues and cancer\ntypes.\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\u002Fhuman_protein_atlas_database_LICENSE.txt\n    does not already exist in the workspace root directory then (1) prominently\n    notify the user to check the terms at\n    https:\u002F\u002Fwww.proteinatlas.org\u002Fabout\u002Flicence, then (2) create the file\n    recording the notification text and timestamp.\n\n## When to Use\n\n**Use this skill when you need to:**\n\n-   Map a gene symbol to its Ensembl ID for HPA queries.\n-   Retrieve the semi-quantitative protein abundance in normal human tissues and\n    cancer types based on IHC staining (High, Medium, Low, or Not Detected).\n-   Find the specific organelles or subcellular structures where a protein has\n    been localized (e.g., nucleoplasm, mitochondria).\n-   Check the consistency\u002Fagreement between RNA-seq consensus and protein\n    expression levels.\n-   Search for genes based on specific protein expression criteria (e.g.,\n    \"elevated in amygdala\" or \"secreted proteins\").\n\n**Do NOT use when you need to:**\n\n-   Query eQTLs, pQTLs, or any variant-level associations. HPA provides\n    wild-type expression data and knows nothing about QTLs.\n-   Query gene expression in non-human species. HPA is strictly for human\n    proteins.\n-   Retrieve purely quantitative RNA expression without interest in the protein\n    product (consider using the GTEx skill instead).\n\n## Command Selection Guide\n\n**Pick the right command on the first try.** Match the user's input to the\ncorrect subcommand below.\n\n-   Map a gene symbol to Ensembl ID: `resolve-ensembl-id`\n-   Get tissue protein expression levels: `get-tissue-expression`\n-   Get subcellular location of a protein: `get-subcellular-location`\n-   Get the full HPA metadata entry for a gene: `get-atlas-entry`\n-   Search HPA for genes matching specific criteria: `search-hpa`\n\n## Quick Start\n\n```bash\n# Map the ERBB2 gene symbol to its Ensembl ID\nuv run scripts\u002Fhpa_cli.py resolve-ensembl-id ERBB2 --output \u002Ftmp\u002Ferbb2_id.json\n\n# Get subcellular location by Ensembl ID\nuv run scripts\u002Fhpa_cli.py get-subcellular-location ENSG00000141736 --output \u002Ftmp\u002Ferbb2_location.json\n```\n\nAll subcommands write JSON to disk. Always save output in the `\u002Ftmp\u002F` directory.\nThe default output file is `\u002Ftmp\u002Fhpa_output.json` if `--output` is not\nspecified.\n\n## Commands\n\n### 1. `resolve-ensembl-id` — Gene Symbol → Ensembl ID\n\nMaps a common gene symbol (e.g., \"TP53\", \"ERBB2\") to its Ensembl gene ID. HPA\nendpoints are strictly Ensembl-based.\n\n```bash\nuv run scripts\u002Fhpa_cli.py resolve-ensembl-id TP53 --output \u002Ftmp\u002Ftp53_id.json\n```\n\n*Arguments:*\n\n-   `gene_symbol` (positional): The standard gene symbol (e.g., \"TP53\").\n-   `--output`: Output file path (default: `\u002Ftmp\u002Fhpa_output.json`).\n\n### 2. `get-tissue-expression` — Get Tissue Protein Levels\n\nReturns a list of tissues and their corresponding protein expression levels\n(High, Medium, Low, or Not Detected) based on IHC staining.\n\n```bash\nuv run scripts\u002Fhpa_cli.py get-tissue-expression ENSG00000130234 \\\n  --tissues \"duodenum,thyroid gland\" --output \u002Ftmp\u002Ftissue_expr.json\n```\n\n*Arguments:*\n\n-   `ensembl_id` (positional): The Ensembl Gene ID.\n-   `--tissues`: Comma-separated list of tissues to filter by (optional,\n    defaults to all available tissues).\n-   `--output`: Output file path (default: `\u002Ftmp\u002Fhpa_output.json`).\n\n### 3. `get-subcellular-location` — Get Subcellular Location\n\nRetrieves the specific organelles or cellular structures where the protein has\nbeen localized.\n\n```bash\nuv run scripts\u002Fhpa_cli.py get-subcellular-location ENSG00000141736 \\\n  --output \u002Ftmp\u002Fsubcellular.json\n```\n\n*Arguments:*\n\n-   `ensembl_id` (positional): The Ensembl Gene ID.\n-   `--output`: Output file path.\n\n### 4. `get-atlas-entry` — Get Full HPA Entry\n\nFetches the full metadata for a gene, including IHC scores, RNA-seq consensus,\nand subcellular location.\n\n```bash\nuv run scripts\u002Fhpa_cli.py get-atlas-entry ENSG00000254647 \\\n  --output \u002Ftmp\u002Fins_entry.json\n```\n\n*Arguments:*\n\n-   `ensembl_id` (positional): The Ensembl Gene ID.\n-   `--format`: Format of the returned entry, e.g., json (default: `json`).\n-   `--output`: Output file path.\n\n### 5. `search-hpa` — Search by Attribute\n\nAllows filtering for genes based on specific criteria (e.g., \"elevated in\namygdala\").\n\n```bash\nuv run scripts\u002Fhpa_cli.py search-hpa \\\n  --query \"brain_category_rna:amygdala\" \\\n  --output \u002Ftmp\u002Fsearch_results.json\n```\n\n*Arguments:*\n\n-   `--query`: The search query string. Refer to references\u002Fsearch-api.md for\n    details.\n-   `--output`: Output file path.\n\n## Core Rules\n\n-   **Use the Wrapper**: ALWAYS execute the provided helper scripts to query the\n    database rather than accessing the database directly. The scripts\n    automatically enforce fair use and implement retry logic.\n-   **Notification**: If this skill is used, ensure this is mentioned in the\n    output.\n\n## API Versioning\n\nThe HPA website at `www.proteinatlas.org` always serves the **latest** data\nrelease. Older archived versions can be accessed via `vNN.proteinatlas.org`\n(e.g., `v24.proteinatlas.org`), while the current version's subdomain redirects\nto `www.proteinatlas.org`. This skill's scripts query the latest version by\ndefault.\n\n## Common Errors\n\n-   If no results are returned, confirm the query is detailed enough starting\n    with the api reference in references\u002Fsearch-api.md\n-   If you cannot find the results, search the web for example HPA queries and\n    use these to construct a better query.\n-   The output is usually large. Use jq or write your own python data parsing\n    library to process the search results. Never output to stdout, or cat the\n    output file.\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,50,56,63,118,124,132,161,169,187,193,203,261,267,384,413,419,433,438,478,487,518,531,536,607,614,654,667,672,719,726,748,761,766,814,821,860,873,878,946,953,976,982,1005,1011,1054,1060,1078],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"human-protein-atlas-hpa-database-integration",[47],{"type":48,"value":49},"text","Human Protein Atlas (HPA) Database Integration",{"type":42,"tag":51,"props":52,"children":53},"p",{},[54],{"type":48,"value":55},"This skill provides semi-quantitative protein expression and spatial\nlocalisation data from the Human Protein Atlas (HPA). While RNA-seq (e.g., GTEx)\ntells us if a gene is being transcribed, HPA confirms if the protein product\nactually exists, where it is located within the cell (e.g. nucleus vs\ncytoplasm), and its concentration in systemic blood circulation. The data is\nbased on Immunohistochemistry (IHC) across normal human tissues and cancer\ntypes.",{"type":42,"tag":57,"props":58,"children":60},"h2",{"id":59},"prerequisites",[61],{"type":48,"value":62},"Prerequisites",{"type":42,"tag":64,"props":65,"children":66},"ol",{},[67,98],{"type":42,"tag":68,"props":69,"children":70},"li",{},[71,82,84,89,91,96],{"type":42,"tag":72,"props":73,"children":74},"strong",{},[75],{"type":42,"tag":76,"props":77,"children":79},"code",{"className":78},[],[80],{"type":48,"value":81},"uv",{"type":48,"value":83},": Read the ",{"type":42,"tag":76,"props":85,"children":87},{"className":86},[],[88],{"type":48,"value":81},{"type":48,"value":90}," skill and follow its Setup instructions to ensure\n",{"type":42,"tag":76,"props":92,"children":94},{"className":93},[],[95],{"type":48,"value":81},{"type":48,"value":97}," is installed and on PATH.",{"type":42,"tag":68,"props":99,"children":100},{},[101,106,108,116],{"type":42,"tag":72,"props":102,"children":103},{},[104],{"type":48,"value":105},"User Notification",{"type":48,"value":107},": If .licenses\u002Fhuman_protein_atlas_database_LICENSE.txt\ndoes not already exist in the workspace root directory then (1) prominently\nnotify the user to check the terms at\n",{"type":42,"tag":109,"props":110,"children":114},"a",{"href":111,"rel":112},"https:\u002F\u002Fwww.proteinatlas.org\u002Fabout\u002Flicence",[113],"nofollow",[115],{"type":48,"value":111},{"type":48,"value":117},", then (2) create the file\nrecording the notification text and timestamp.",{"type":42,"tag":57,"props":119,"children":121},{"id":120},"when-to-use",[122],{"type":48,"value":123},"When to Use",{"type":42,"tag":51,"props":125,"children":126},{},[127],{"type":42,"tag":72,"props":128,"children":129},{},[130],{"type":48,"value":131},"Use this skill when you need to:",{"type":42,"tag":133,"props":134,"children":135},"ul",{},[136,141,146,151,156],{"type":42,"tag":68,"props":137,"children":138},{},[139],{"type":48,"value":140},"Map a gene symbol to its Ensembl ID for HPA queries.",{"type":42,"tag":68,"props":142,"children":143},{},[144],{"type":48,"value":145},"Retrieve the semi-quantitative protein abundance in normal human tissues and\ncancer types based on IHC staining (High, Medium, Low, or Not Detected).",{"type":42,"tag":68,"props":147,"children":148},{},[149],{"type":48,"value":150},"Find the specific organelles or subcellular structures where a protein has\nbeen localized (e.g., nucleoplasm, mitochondria).",{"type":42,"tag":68,"props":152,"children":153},{},[154],{"type":48,"value":155},"Check the consistency\u002Fagreement between RNA-seq consensus and protein\nexpression levels.",{"type":42,"tag":68,"props":157,"children":158},{},[159],{"type":48,"value":160},"Search for genes based on specific protein expression criteria (e.g.,\n\"elevated in amygdala\" or \"secreted proteins\").",{"type":42,"tag":51,"props":162,"children":163},{},[164],{"type":42,"tag":72,"props":165,"children":166},{},[167],{"type":48,"value":168},"Do NOT use when you need to:",{"type":42,"tag":133,"props":170,"children":171},{},[172,177,182],{"type":42,"tag":68,"props":173,"children":174},{},[175],{"type":48,"value":176},"Query eQTLs, pQTLs, or any variant-level associations. HPA provides\nwild-type expression data and knows nothing about QTLs.",{"type":42,"tag":68,"props":178,"children":179},{},[180],{"type":48,"value":181},"Query gene expression in non-human species. HPA is strictly for human\nproteins.",{"type":42,"tag":68,"props":183,"children":184},{},[185],{"type":48,"value":186},"Retrieve purely quantitative RNA expression without interest in the protein\nproduct (consider using the GTEx skill instead).",{"type":42,"tag":57,"props":188,"children":190},{"id":189},"command-selection-guide",[191],{"type":48,"value":192},"Command Selection Guide",{"type":42,"tag":51,"props":194,"children":195},{},[196,201],{"type":42,"tag":72,"props":197,"children":198},{},[199],{"type":48,"value":200},"Pick the right command on the first try.",{"type":48,"value":202}," Match the user's input to the\ncorrect subcommand below.",{"type":42,"tag":133,"props":204,"children":205},{},[206,217,228,239,250],{"type":42,"tag":68,"props":207,"children":208},{},[209,211],{"type":48,"value":210},"Map a gene symbol to Ensembl ID: ",{"type":42,"tag":76,"props":212,"children":214},{"className":213},[],[215],{"type":48,"value":216},"resolve-ensembl-id",{"type":42,"tag":68,"props":218,"children":219},{},[220,222],{"type":48,"value":221},"Get tissue protein expression levels: ",{"type":42,"tag":76,"props":223,"children":225},{"className":224},[],[226],{"type":48,"value":227},"get-tissue-expression",{"type":42,"tag":68,"props":229,"children":230},{},[231,233],{"type":48,"value":232},"Get subcellular location of a protein: ",{"type":42,"tag":76,"props":234,"children":236},{"className":235},[],[237],{"type":48,"value":238},"get-subcellular-location",{"type":42,"tag":68,"props":240,"children":241},{},[242,244],{"type":48,"value":243},"Get the full HPA metadata entry for a gene: ",{"type":42,"tag":76,"props":245,"children":247},{"className":246},[],[248],{"type":48,"value":249},"get-atlas-entry",{"type":42,"tag":68,"props":251,"children":252},{},[253,255],{"type":48,"value":254},"Search HPA for genes matching specific criteria: ",{"type":42,"tag":76,"props":256,"children":258},{"className":257},[],[259],{"type":48,"value":260},"search-hpa",{"type":42,"tag":57,"props":262,"children":264},{"id":263},"quick-start",[265],{"type":48,"value":266},"Quick Start",{"type":42,"tag":268,"props":269,"children":274},"pre",{"className":270,"code":271,"language":272,"meta":273,"style":273},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Map the ERBB2 gene symbol to its Ensembl ID\nuv run scripts\u002Fhpa_cli.py resolve-ensembl-id ERBB2 --output \u002Ftmp\u002Ferbb2_id.json\n\n# Get subcellular location by Ensembl ID\nuv run scripts\u002Fhpa_cli.py get-subcellular-location ENSG00000141736 --output \u002Ftmp\u002Ferbb2_location.json\n","bash","",[275],{"type":42,"tag":76,"props":276,"children":277},{"__ignoreMap":273},[278,290,330,340,349],{"type":42,"tag":279,"props":280,"children":283},"span",{"class":281,"line":282},"line",1,[284],{"type":42,"tag":279,"props":285,"children":287},{"style":286},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[288],{"type":48,"value":289},"# Map the ERBB2 gene symbol to its Ensembl ID\n",{"type":42,"tag":279,"props":291,"children":293},{"class":281,"line":292},2,[294,299,305,310,315,320,325],{"type":42,"tag":279,"props":295,"children":297},{"style":296},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[298],{"type":48,"value":81},{"type":42,"tag":279,"props":300,"children":302},{"style":301},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[303],{"type":48,"value":304}," run",{"type":42,"tag":279,"props":306,"children":307},{"style":301},[308],{"type":48,"value":309}," scripts\u002Fhpa_cli.py",{"type":42,"tag":279,"props":311,"children":312},{"style":301},[313],{"type":48,"value":314}," resolve-ensembl-id",{"type":42,"tag":279,"props":316,"children":317},{"style":301},[318],{"type":48,"value":319}," ERBB2",{"type":42,"tag":279,"props":321,"children":322},{"style":301},[323],{"type":48,"value":324}," --output",{"type":42,"tag":279,"props":326,"children":327},{"style":301},[328],{"type":48,"value":329}," \u002Ftmp\u002Ferbb2_id.json\n",{"type":42,"tag":279,"props":331,"children":333},{"class":281,"line":332},3,[334],{"type":42,"tag":279,"props":335,"children":337},{"emptyLinePlaceholder":336},true,[338],{"type":48,"value":339},"\n",{"type":42,"tag":279,"props":341,"children":343},{"class":281,"line":342},4,[344],{"type":42,"tag":279,"props":345,"children":346},{"style":286},[347],{"type":48,"value":348},"# Get subcellular location by Ensembl ID\n",{"type":42,"tag":279,"props":350,"children":352},{"class":281,"line":351},5,[353,357,361,365,370,375,379],{"type":42,"tag":279,"props":354,"children":355},{"style":296},[356],{"type":48,"value":81},{"type":42,"tag":279,"props":358,"children":359},{"style":301},[360],{"type":48,"value":304},{"type":42,"tag":279,"props":362,"children":363},{"style":301},[364],{"type":48,"value":309},{"type":42,"tag":279,"props":366,"children":367},{"style":301},[368],{"type":48,"value":369}," get-subcellular-location",{"type":42,"tag":279,"props":371,"children":372},{"style":301},[373],{"type":48,"value":374}," ENSG00000141736",{"type":42,"tag":279,"props":376,"children":377},{"style":301},[378],{"type":48,"value":324},{"type":42,"tag":279,"props":380,"children":381},{"style":301},[382],{"type":48,"value":383}," \u002Ftmp\u002Ferbb2_location.json\n",{"type":42,"tag":51,"props":385,"children":386},{},[387,389,395,397,403,405,411],{"type":48,"value":388},"All subcommands write JSON to disk. Always save output in the ",{"type":42,"tag":76,"props":390,"children":392},{"className":391},[],[393],{"type":48,"value":394},"\u002Ftmp\u002F",{"type":48,"value":396}," directory.\nThe default output file is ",{"type":42,"tag":76,"props":398,"children":400},{"className":399},[],[401],{"type":48,"value":402},"\u002Ftmp\u002Fhpa_output.json",{"type":48,"value":404}," if ",{"type":42,"tag":76,"props":406,"children":408},{"className":407},[],[409],{"type":48,"value":410},"--output",{"type":48,"value":412}," is not\nspecified.",{"type":42,"tag":57,"props":414,"children":416},{"id":415},"commands",[417],{"type":48,"value":418},"Commands",{"type":42,"tag":420,"props":421,"children":423},"h3",{"id":422},"_1-resolve-ensembl-id-gene-symbol-ensembl-id",[424,426,431],{"type":48,"value":425},"1. ",{"type":42,"tag":76,"props":427,"children":429},{"className":428},[],[430],{"type":48,"value":216},{"type":48,"value":432}," — Gene Symbol → Ensembl ID",{"type":42,"tag":51,"props":434,"children":435},{},[436],{"type":48,"value":437},"Maps a common gene symbol (e.g., \"TP53\", \"ERBB2\") to its Ensembl gene ID. HPA\nendpoints are strictly Ensembl-based.",{"type":42,"tag":268,"props":439,"children":441},{"className":270,"code":440,"language":272,"meta":273,"style":273},"uv run scripts\u002Fhpa_cli.py resolve-ensembl-id TP53 --output \u002Ftmp\u002Ftp53_id.json\n",[442],{"type":42,"tag":76,"props":443,"children":444},{"__ignoreMap":273},[445],{"type":42,"tag":279,"props":446,"children":447},{"class":281,"line":282},[448,452,456,460,464,469,473],{"type":42,"tag":279,"props":449,"children":450},{"style":296},[451],{"type":48,"value":81},{"type":42,"tag":279,"props":453,"children":454},{"style":301},[455],{"type":48,"value":304},{"type":42,"tag":279,"props":457,"children":458},{"style":301},[459],{"type":48,"value":309},{"type":42,"tag":279,"props":461,"children":462},{"style":301},[463],{"type":48,"value":314},{"type":42,"tag":279,"props":465,"children":466},{"style":301},[467],{"type":48,"value":468}," TP53",{"type":42,"tag":279,"props":470,"children":471},{"style":301},[472],{"type":48,"value":324},{"type":42,"tag":279,"props":474,"children":475},{"style":301},[476],{"type":48,"value":477}," \u002Ftmp\u002Ftp53_id.json\n",{"type":42,"tag":51,"props":479,"children":480},{},[481],{"type":42,"tag":482,"props":483,"children":484},"em",{},[485],{"type":48,"value":486},"Arguments:",{"type":42,"tag":133,"props":488,"children":489},{},[490,501],{"type":42,"tag":68,"props":491,"children":492},{},[493,499],{"type":42,"tag":76,"props":494,"children":496},{"className":495},[],[497],{"type":48,"value":498},"gene_symbol",{"type":48,"value":500}," (positional): The standard gene symbol (e.g., \"TP53\").",{"type":42,"tag":68,"props":502,"children":503},{},[504,509,511,516],{"type":42,"tag":76,"props":505,"children":507},{"className":506},[],[508],{"type":48,"value":410},{"type":48,"value":510},": Output file path (default: ",{"type":42,"tag":76,"props":512,"children":514},{"className":513},[],[515],{"type":48,"value":402},{"type":48,"value":517},").",{"type":42,"tag":420,"props":519,"children":521},{"id":520},"_2-get-tissue-expression-get-tissue-protein-levels",[522,524,529],{"type":48,"value":523},"2. ",{"type":42,"tag":76,"props":525,"children":527},{"className":526},[],[528],{"type":48,"value":227},{"type":48,"value":530}," — Get Tissue Protein Levels",{"type":42,"tag":51,"props":532,"children":533},{},[534],{"type":48,"value":535},"Returns a list of tissues and their corresponding protein expression levels\n(High, Medium, Low, or Not Detected) based on IHC staining.",{"type":42,"tag":268,"props":537,"children":539},{"className":270,"code":538,"language":272,"meta":273,"style":273},"uv run scripts\u002Fhpa_cli.py get-tissue-expression ENSG00000130234 \\\n  --tissues \"duodenum,thyroid gland\" --output \u002Ftmp\u002Ftissue_expr.json\n",[540],{"type":42,"tag":76,"props":541,"children":542},{"__ignoreMap":273},[543,574],{"type":42,"tag":279,"props":544,"children":545},{"class":281,"line":282},[546,550,554,558,563,568],{"type":42,"tag":279,"props":547,"children":548},{"style":296},[549],{"type":48,"value":81},{"type":42,"tag":279,"props":551,"children":552},{"style":301},[553],{"type":48,"value":304},{"type":42,"tag":279,"props":555,"children":556},{"style":301},[557],{"type":48,"value":309},{"type":42,"tag":279,"props":559,"children":560},{"style":301},[561],{"type":48,"value":562}," get-tissue-expression",{"type":42,"tag":279,"props":564,"children":565},{"style":301},[566],{"type":48,"value":567}," ENSG00000130234",{"type":42,"tag":279,"props":569,"children":571},{"style":570},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[572],{"type":48,"value":573}," \\\n",{"type":42,"tag":279,"props":575,"children":576},{"class":281,"line":292},[577,582,588,593,598,602],{"type":42,"tag":279,"props":578,"children":579},{"style":301},[580],{"type":48,"value":581},"  --tissues",{"type":42,"tag":279,"props":583,"children":585},{"style":584},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[586],{"type":48,"value":587}," \"",{"type":42,"tag":279,"props":589,"children":590},{"style":301},[591],{"type":48,"value":592},"duodenum,thyroid gland",{"type":42,"tag":279,"props":594,"children":595},{"style":584},[596],{"type":48,"value":597},"\"",{"type":42,"tag":279,"props":599,"children":600},{"style":301},[601],{"type":48,"value":324},{"type":42,"tag":279,"props":603,"children":604},{"style":301},[605],{"type":48,"value":606}," \u002Ftmp\u002Ftissue_expr.json\n",{"type":42,"tag":51,"props":608,"children":609},{},[610],{"type":42,"tag":482,"props":611,"children":612},{},[613],{"type":48,"value":486},{"type":42,"tag":133,"props":615,"children":616},{},[617,628,639],{"type":42,"tag":68,"props":618,"children":619},{},[620,626],{"type":42,"tag":76,"props":621,"children":623},{"className":622},[],[624],{"type":48,"value":625},"ensembl_id",{"type":48,"value":627}," (positional): The Ensembl Gene ID.",{"type":42,"tag":68,"props":629,"children":630},{},[631,637],{"type":42,"tag":76,"props":632,"children":634},{"className":633},[],[635],{"type":48,"value":636},"--tissues",{"type":48,"value":638},": Comma-separated list of tissues to filter by (optional,\ndefaults to all available tissues).",{"type":42,"tag":68,"props":640,"children":641},{},[642,647,648,653],{"type":42,"tag":76,"props":643,"children":645},{"className":644},[],[646],{"type":48,"value":410},{"type":48,"value":510},{"type":42,"tag":76,"props":649,"children":651},{"className":650},[],[652],{"type":48,"value":402},{"type":48,"value":517},{"type":42,"tag":420,"props":655,"children":657},{"id":656},"_3-get-subcellular-location-get-subcellular-location",[658,660,665],{"type":48,"value":659},"3. ",{"type":42,"tag":76,"props":661,"children":663},{"className":662},[],[664],{"type":48,"value":238},{"type":48,"value":666}," — Get Subcellular Location",{"type":42,"tag":51,"props":668,"children":669},{},[670],{"type":48,"value":671},"Retrieves the specific organelles or cellular structures where the protein has\nbeen localized.",{"type":42,"tag":268,"props":673,"children":675},{"className":270,"code":674,"language":272,"meta":273,"style":273},"uv run scripts\u002Fhpa_cli.py get-subcellular-location ENSG00000141736 \\\n  --output \u002Ftmp\u002Fsubcellular.json\n",[676],{"type":42,"tag":76,"props":677,"children":678},{"__ignoreMap":273},[679,706],{"type":42,"tag":279,"props":680,"children":681},{"class":281,"line":282},[682,686,690,694,698,702],{"type":42,"tag":279,"props":683,"children":684},{"style":296},[685],{"type":48,"value":81},{"type":42,"tag":279,"props":687,"children":688},{"style":301},[689],{"type":48,"value":304},{"type":42,"tag":279,"props":691,"children":692},{"style":301},[693],{"type":48,"value":309},{"type":42,"tag":279,"props":695,"children":696},{"style":301},[697],{"type":48,"value":369},{"type":42,"tag":279,"props":699,"children":700},{"style":301},[701],{"type":48,"value":374},{"type":42,"tag":279,"props":703,"children":704},{"style":570},[705],{"type":48,"value":573},{"type":42,"tag":279,"props":707,"children":708},{"class":281,"line":292},[709,714],{"type":42,"tag":279,"props":710,"children":711},{"style":301},[712],{"type":48,"value":713},"  --output",{"type":42,"tag":279,"props":715,"children":716},{"style":301},[717],{"type":48,"value":718}," \u002Ftmp\u002Fsubcellular.json\n",{"type":42,"tag":51,"props":720,"children":721},{},[722],{"type":42,"tag":482,"props":723,"children":724},{},[725],{"type":48,"value":486},{"type":42,"tag":133,"props":727,"children":728},{},[729,738],{"type":42,"tag":68,"props":730,"children":731},{},[732,737],{"type":42,"tag":76,"props":733,"children":735},{"className":734},[],[736],{"type":48,"value":625},{"type":48,"value":627},{"type":42,"tag":68,"props":739,"children":740},{},[741,746],{"type":42,"tag":76,"props":742,"children":744},{"className":743},[],[745],{"type":48,"value":410},{"type":48,"value":747},": Output file path.",{"type":42,"tag":420,"props":749,"children":751},{"id":750},"_4-get-atlas-entry-get-full-hpa-entry",[752,754,759],{"type":48,"value":753},"4. ",{"type":42,"tag":76,"props":755,"children":757},{"className":756},[],[758],{"type":48,"value":249},{"type":48,"value":760}," — Get Full HPA Entry",{"type":42,"tag":51,"props":762,"children":763},{},[764],{"type":48,"value":765},"Fetches the full metadata for a gene, including IHC scores, RNA-seq consensus,\nand subcellular location.",{"type":42,"tag":268,"props":767,"children":769},{"className":270,"code":768,"language":272,"meta":273,"style":273},"uv run scripts\u002Fhpa_cli.py get-atlas-entry ENSG00000254647 \\\n  --output \u002Ftmp\u002Fins_entry.json\n",[770],{"type":42,"tag":76,"props":771,"children":772},{"__ignoreMap":273},[773,802],{"type":42,"tag":279,"props":774,"children":775},{"class":281,"line":282},[776,780,784,788,793,798],{"type":42,"tag":279,"props":777,"children":778},{"style":296},[779],{"type":48,"value":81},{"type":42,"tag":279,"props":781,"children":782},{"style":301},[783],{"type":48,"value":304},{"type":42,"tag":279,"props":785,"children":786},{"style":301},[787],{"type":48,"value":309},{"type":42,"tag":279,"props":789,"children":790},{"style":301},[791],{"type":48,"value":792}," get-atlas-entry",{"type":42,"tag":279,"props":794,"children":795},{"style":301},[796],{"type":48,"value":797}," ENSG00000254647",{"type":42,"tag":279,"props":799,"children":800},{"style":570},[801],{"type":48,"value":573},{"type":42,"tag":279,"props":803,"children":804},{"class":281,"line":292},[805,809],{"type":42,"tag":279,"props":806,"children":807},{"style":301},[808],{"type":48,"value":713},{"type":42,"tag":279,"props":810,"children":811},{"style":301},[812],{"type":48,"value":813}," \u002Ftmp\u002Fins_entry.json\n",{"type":42,"tag":51,"props":815,"children":816},{},[817],{"type":42,"tag":482,"props":818,"children":819},{},[820],{"type":48,"value":486},{"type":42,"tag":133,"props":822,"children":823},{},[824,833,851],{"type":42,"tag":68,"props":825,"children":826},{},[827,832],{"type":42,"tag":76,"props":828,"children":830},{"className":829},[],[831],{"type":48,"value":625},{"type":48,"value":627},{"type":42,"tag":68,"props":834,"children":835},{},[836,842,844,850],{"type":42,"tag":76,"props":837,"children":839},{"className":838},[],[840],{"type":48,"value":841},"--format",{"type":48,"value":843},": Format of the returned entry, e.g., json (default: ",{"type":42,"tag":76,"props":845,"children":847},{"className":846},[],[848],{"type":48,"value":849},"json",{"type":48,"value":517},{"type":42,"tag":68,"props":852,"children":853},{},[854,859],{"type":42,"tag":76,"props":855,"children":857},{"className":856},[],[858],{"type":48,"value":410},{"type":48,"value":747},{"type":42,"tag":420,"props":861,"children":863},{"id":862},"_5-search-hpa-search-by-attribute",[864,866,871],{"type":48,"value":865},"5. ",{"type":42,"tag":76,"props":867,"children":869},{"className":868},[],[870],{"type":48,"value":260},{"type":48,"value":872}," — Search by Attribute",{"type":42,"tag":51,"props":874,"children":875},{},[876],{"type":48,"value":877},"Allows filtering for genes based on specific criteria (e.g., \"elevated in\namygdala\").",{"type":42,"tag":268,"props":879,"children":881},{"className":270,"code":880,"language":272,"meta":273,"style":273},"uv run scripts\u002Fhpa_cli.py search-hpa \\\n  --query \"brain_category_rna:amygdala\" \\\n  --output \u002Ftmp\u002Fsearch_results.json\n",[882],{"type":42,"tag":76,"props":883,"children":884},{"__ignoreMap":273},[885,909,934],{"type":42,"tag":279,"props":886,"children":887},{"class":281,"line":282},[888,892,896,900,905],{"type":42,"tag":279,"props":889,"children":890},{"style":296},[891],{"type":48,"value":81},{"type":42,"tag":279,"props":893,"children":894},{"style":301},[895],{"type":48,"value":304},{"type":42,"tag":279,"props":897,"children":898},{"style":301},[899],{"type":48,"value":309},{"type":42,"tag":279,"props":901,"children":902},{"style":301},[903],{"type":48,"value":904}," search-hpa",{"type":42,"tag":279,"props":906,"children":907},{"style":570},[908],{"type":48,"value":573},{"type":42,"tag":279,"props":910,"children":911},{"class":281,"line":292},[912,917,921,926,930],{"type":42,"tag":279,"props":913,"children":914},{"style":301},[915],{"type":48,"value":916},"  --query",{"type":42,"tag":279,"props":918,"children":919},{"style":584},[920],{"type":48,"value":587},{"type":42,"tag":279,"props":922,"children":923},{"style":301},[924],{"type":48,"value":925},"brain_category_rna:amygdala",{"type":42,"tag":279,"props":927,"children":928},{"style":584},[929],{"type":48,"value":597},{"type":42,"tag":279,"props":931,"children":932},{"style":570},[933],{"type":48,"value":573},{"type":42,"tag":279,"props":935,"children":936},{"class":281,"line":332},[937,941],{"type":42,"tag":279,"props":938,"children":939},{"style":301},[940],{"type":48,"value":713},{"type":42,"tag":279,"props":942,"children":943},{"style":301},[944],{"type":48,"value":945}," \u002Ftmp\u002Fsearch_results.json\n",{"type":42,"tag":51,"props":947,"children":948},{},[949],{"type":42,"tag":482,"props":950,"children":951},{},[952],{"type":48,"value":486},{"type":42,"tag":133,"props":954,"children":955},{},[956,967],{"type":42,"tag":68,"props":957,"children":958},{},[959,965],{"type":42,"tag":76,"props":960,"children":962},{"className":961},[],[963],{"type":48,"value":964},"--query",{"type":48,"value":966},": The search query string. Refer to references\u002Fsearch-api.md for\ndetails.",{"type":42,"tag":68,"props":968,"children":969},{},[970,975],{"type":42,"tag":76,"props":971,"children":973},{"className":972},[],[974],{"type":48,"value":410},{"type":48,"value":747},{"type":42,"tag":57,"props":977,"children":979},{"id":978},"core-rules",[980],{"type":48,"value":981},"Core Rules",{"type":42,"tag":133,"props":983,"children":984},{},[985,995],{"type":42,"tag":68,"props":986,"children":987},{},[988,993],{"type":42,"tag":72,"props":989,"children":990},{},[991],{"type":48,"value":992},"Use the Wrapper",{"type":48,"value":994},": ALWAYS execute the provided helper scripts to query the\ndatabase rather than accessing the database directly. The scripts\nautomatically enforce fair use and implement retry logic.",{"type":42,"tag":68,"props":996,"children":997},{},[998,1003],{"type":42,"tag":72,"props":999,"children":1000},{},[1001],{"type":48,"value":1002},"Notification",{"type":48,"value":1004},": If this skill is used, ensure this is mentioned in the\noutput.",{"type":42,"tag":57,"props":1006,"children":1008},{"id":1007},"api-versioning",[1009],{"type":48,"value":1010},"API Versioning",{"type":42,"tag":51,"props":1012,"children":1013},{},[1014,1016,1022,1024,1029,1031,1037,1039,1045,1047,1052],{"type":48,"value":1015},"The HPA website at ",{"type":42,"tag":76,"props":1017,"children":1019},{"className":1018},[],[1020],{"type":48,"value":1021},"www.proteinatlas.org",{"type":48,"value":1023}," always serves the ",{"type":42,"tag":72,"props":1025,"children":1026},{},[1027],{"type":48,"value":1028},"latest",{"type":48,"value":1030}," data\nrelease. Older archived versions can be accessed via ",{"type":42,"tag":76,"props":1032,"children":1034},{"className":1033},[],[1035],{"type":48,"value":1036},"vNN.proteinatlas.org",{"type":48,"value":1038},"\n(e.g., ",{"type":42,"tag":76,"props":1040,"children":1042},{"className":1041},[],[1043],{"type":48,"value":1044},"v24.proteinatlas.org",{"type":48,"value":1046},"), while the current version's subdomain redirects\nto ",{"type":42,"tag":76,"props":1048,"children":1050},{"className":1049},[],[1051],{"type":48,"value":1021},{"type":48,"value":1053},". This skill's scripts query the latest version by\ndefault.",{"type":42,"tag":57,"props":1055,"children":1057},{"id":1056},"common-errors",[1058],{"type":48,"value":1059},"Common Errors",{"type":42,"tag":133,"props":1061,"children":1062},{},[1063,1068,1073],{"type":42,"tag":68,"props":1064,"children":1065},{},[1066],{"type":48,"value":1067},"If no results are returned, confirm the query is detailed enough starting\nwith the api reference in references\u002Fsearch-api.md",{"type":42,"tag":68,"props":1069,"children":1070},{},[1071],{"type":48,"value":1072},"If you cannot find the results, search the web for example HPA queries and\nuse these to construct a better query.",{"type":42,"tag":68,"props":1074,"children":1075},{},[1076],{"type":48,"value":1077},"The output is usually large. Use jq or write your own python data parsing\nlibrary to process the search results. Never output to stdout, or cat the\noutput file.",{"type":42,"tag":1079,"props":1080,"children":1081},"style",{},[1082],{"type":48,"value":1083},"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":1085,"total":1249},[1086,1099,1114,1134,1146,1161,1177,1190,1202,1217,1228,1238],{"slug":1087,"name":1087,"fn":1088,"description":1089,"org":1090,"tags":1091,"stars":25,"repoUrl":26,"updatedAt":1098},"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},[1092,1093,1096,1097],{"name":20,"slug":21,"type":15},{"name":1094,"slug":1095,"type":15},"Genomics","genomics",{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-07-12T07:51:51.827211",{"slug":1100,"name":1100,"fn":1101,"description":1102,"org":1103,"tags":1104,"stars":25,"repoUrl":26,"updatedAt":1113},"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},[1105,1106,1109,1110],{"name":20,"slug":21,"type":15},{"name":1107,"slug":1108,"type":15},"Genetics","genetics",{"name":13,"slug":14,"type":15},{"name":1111,"slug":1112,"type":15},"RNA-seq","rna-seq","2026-07-12T07:51:39.494803",{"slug":1115,"name":1115,"fn":1116,"description":1117,"org":1118,"tags":1119,"stars":25,"repoUrl":26,"updatedAt":1133},"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},[1120,1123,1126,1129,1132],{"name":1121,"slug":1122,"type":15},"ChEMBL","chembl",{"name":1124,"slug":1125,"type":15},"Chemistry","chemistry",{"name":1127,"slug":1128,"type":15},"Database","database",{"name":1130,"slug":1131,"type":15},"Pharmacology","pharmacology",{"name":13,"slug":14,"type":15},"2026-07-12T07:51:35.544306",{"slug":1135,"name":1135,"fn":1136,"description":1137,"org":1138,"tags":1139,"stars":25,"repoUrl":26,"updatedAt":1145},"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},[1140,1143,1144],{"name":1141,"slug":1142,"type":15},"Clinical Trials","clinical-trials",{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-07-12T07:52:06.846705",{"slug":1147,"name":1147,"fn":1148,"description":1149,"org":1150,"tags":1151,"stars":25,"repoUrl":26,"updatedAt":1160},"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},[1152,1155,1156,1159],{"name":1153,"slug":1154,"type":15},"ClinVar","clinvar",{"name":1107,"slug":1108,"type":15},{"name":1157,"slug":1158,"type":15},"Healthcare","healthcare",{"name":13,"slug":14,"type":15},"2026-07-12T07:51:36.86094",{"slug":1162,"name":1162,"fn":1163,"description":1164,"org":1165,"tags":1166,"stars":25,"repoUrl":26,"updatedAt":1176},"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},[1167,1170,1173],{"name":1168,"slug":1169,"type":15},"Compliance","compliance",{"name":1171,"slug":1172,"type":15},"Operations","operations",{"name":1174,"slug":1175,"type":15},"Security","security","2026-07-12T07:52:17.355491",{"slug":1178,"name":1178,"fn":1179,"description":1180,"org":1181,"tags":1182,"stars":25,"repoUrl":26,"updatedAt":1189},"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},[1183,1184,1185,1188],{"name":20,"slug":21,"type":15},{"name":1107,"slug":1108,"type":15},{"name":1186,"slug":1187,"type":15},"NCBI","ncbi",{"name":13,"slug":14,"type":15},"2026-07-12T07:51:33.054229",{"slug":1191,"name":1191,"fn":1192,"description":1193,"org":1194,"tags":1195,"stars":25,"repoUrl":26,"updatedAt":1201},"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},[1196,1197,1200],{"name":20,"slug":21,"type":15},{"name":1198,"slug":1199,"type":15},"Ontology","ontology",{"name":13,"slug":14,"type":15},"2026-07-12T07:51:59.368324",{"slug":1203,"name":1203,"fn":1204,"description":1205,"org":1206,"tags":1207,"stars":25,"repoUrl":26,"updatedAt":1216},"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},[1208,1209,1212,1213],{"name":20,"slug":21,"type":15},{"name":1210,"slug":1211,"type":15},"GraphQL","graphql",{"name":13,"slug":14,"type":15},{"name":1214,"slug":1215,"type":15},"REST API","rest-api","2026-07-12T07:52:10.597139",{"slug":1218,"name":1218,"fn":1219,"description":1220,"org":1221,"tags":1222,"stars":25,"repoUrl":26,"updatedAt":1227},"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},[1223,1224,1225,1226],{"name":20,"slug":21,"type":15},{"name":1107,"slug":1108,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-07-12T07:51:41.645835",{"slug":1229,"name":1229,"fn":1230,"description":1231,"org":1232,"tags":1233,"stars":25,"repoUrl":26,"updatedAt":1237},"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},[1234,1235,1236],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-07-12T07:52:09.354992",{"slug":1239,"name":1239,"fn":1240,"description":1241,"org":1242,"tags":1243,"stars":25,"repoUrl":26,"updatedAt":1248},"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},[1244,1245,1246,1247],{"name":20,"slug":21,"type":15},{"name":1107,"slug":1108,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-07-12T07:51:38.213009",38,{"items":1251,"total":1249},[1252,1259,1266,1274,1280,1287,1293],{"slug":1087,"name":1087,"fn":1088,"description":1089,"org":1253,"tags":1254,"stars":25,"repoUrl":26,"updatedAt":1098},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1255,1256,1257,1258],{"name":20,"slug":21,"type":15},{"name":1094,"slug":1095,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":1100,"name":1100,"fn":1101,"description":1102,"org":1260,"tags":1261,"stars":25,"repoUrl":26,"updatedAt":1113},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1262,1263,1264,1265],{"name":20,"slug":21,"type":15},{"name":1107,"slug":1108,"type":15},{"name":13,"slug":14,"type":15},{"name":1111,"slug":1112,"type":15},{"slug":1115,"name":1115,"fn":1116,"description":1117,"org":1267,"tags":1268,"stars":25,"repoUrl":26,"updatedAt":1133},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1269,1270,1271,1272,1273],{"name":1121,"slug":1122,"type":15},{"name":1124,"slug":1125,"type":15},{"name":1127,"slug":1128,"type":15},{"name":1130,"slug":1131,"type":15},{"name":13,"slug":14,"type":15},{"slug":1135,"name":1135,"fn":1136,"description":1137,"org":1275,"tags":1276,"stars":25,"repoUrl":26,"updatedAt":1145},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1277,1278,1279],{"name":1141,"slug":1142,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":1147,"name":1147,"fn":1148,"description":1149,"org":1281,"tags":1282,"stars":25,"repoUrl":26,"updatedAt":1160},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1283,1284,1285,1286],{"name":1153,"slug":1154,"type":15},{"name":1107,"slug":1108,"type":15},{"name":1157,"slug":1158,"type":15},{"name":13,"slug":14,"type":15},{"slug":1162,"name":1162,"fn":1163,"description":1164,"org":1288,"tags":1289,"stars":25,"repoUrl":26,"updatedAt":1176},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1290,1291,1292],{"name":1168,"slug":1169,"type":15},{"name":1171,"slug":1172,"type":15},{"name":1174,"slug":1175,"type":15},{"slug":1178,"name":1178,"fn":1179,"description":1180,"org":1294,"tags":1295,"stars":25,"repoUrl":26,"updatedAt":1189},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1296,1297,1298,1299],{"name":20,"slug":21,"type":15},{"name":1107,"slug":1108,"type":15},{"name":1186,"slug":1187,"type":15},{"name":13,"slug":14,"type":15}]