[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-google-deepmind-ensembl-database":3,"mdc-fvoeku-key":36,"related-repo-google-deepmind-ensembl-database":1373,"related-org-google-deepmind-ensembl-database":1478},{"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},"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},"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},"Genetics","genetics",2333,"https:\u002F\u002Fgithub.com\u002Fgoogle-deepmind\u002Fscience-skills","2026-07-12T07:51:41.645835",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\u002Fensembl_database","---\nname: ensembl-database\ndescription: >\n  Query the Ensembl database to resolve gene, transcript, and protein IDs,\n  fetch genomic or protein sequences, retrieve gene structures (exons), and\n  get variant consequence and effect predictions (VEP). Use this skill as a\n  primary ID translator, genomic sequence database and variant effect prediction\n  tool.\n---\n\n# Ensembl Database: ID Mapping and Genomic Features\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\u002Fensembl_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\u002Fuseast.ensembl.org\u002Findex.html and\n    https:\u002F\u002Fgithub.com\u002FEnsembl\u002Fensembl-rest\u002Fwiki, then (2) create the file\n    recording the notification text and timestamp.\n\n## Overview\n\nThe Ensembl database is a resource for genome annotation. This skill allows you\nto interact with the Ensembl REST API to resolve ambiguous symbols,\ncross-reference IDs (RefSeq, HGNC, UniProt, ENSG), fetch raw sequences, and\nretrieve detailed transcript structures.\n\n**Key Concepts:**\n\n-   **ENSG (Gene):** Stable identifier for a human gene. Other species will have\n    different three-letter species codes.\n-   **ENST (Transcript):** Stable identifier for a transcript (splicing\n    isoform).\n-   **ENSP (Protein):** Stable identifier for a translated protein.\n-   **MANE Select:** The consensus primary transcript agreed upon by Ensembl and\n    NCBI.\n-   **Canonical:** Ensembl's representative transcript (used if MANE is not\n    available or non-human).\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 the required rate limit gracefully.\n-   **Default Species:** If the species is absent or ambiguous in the prompt,\n    default to `\"human\"`. You MUST explicitly flag this default to the user to\n    ensure they are aware.\n-   **Primary Transcripts:** When listing transcripts for a gene, only return\n    the MANE Select transcript (for human) or the Canonical transcript (for\n    others) unless the user explicitly asks for all alternative isoforms. You\n    MUST flag to the user when multiple transcripts are available and you are\n    defaulting to the primary one.\n-   **Assembly Handling:** The default assembly is GRCh38. For GRCh37 requests,\n    you MUST use the `--assembly GRCh37` flag. You MUST explicitly flag to the\n    user when a non-default assembly is being used.\n-   **Output Location:** The script writes full JSON\u002FFASTA output to temporary\n    files in `\u002Ftmp` by default, or to a user-specified file using the `--output`\n    flag. It also prints a concise summary to stdout.\n-   **Notification**: If this skill is used, ensure this is mentioned in the\n    output.\n\n### Available Commands\n\n**1. Resolve Gene ID** — Resolve a symbol, alias, or RefSeq ID to ENSG ID(s).\nAutomatically falls back to resolving synonyms if primary symbol is not found.\n\n```bash\nuv run scripts\u002Fensembl_api.py resolve-gene TP53 --species human --output tp53.json\nuv run scripts\u002Fensembl_api.py resolve-gene PCL2 --output pcl2.json # Falls back to synonym resolution\n```\n\n**2. Map ID to External Database** — Cross-reference an Ensembl ID to UniProt,\nHGNC, RefSeq, etc.\n\n```bash\nuv run scripts\u002Fensembl_api.py map-id ENSG00000141510 --external-db UniProt --output uniprot_map.json\nuv run scripts\u002Fensembl_api.py map-id ENST00000269305 --external-db RefSeq_mRNA --output refseq_map.json\n```\n\n**3. Get Genomic Sequence** — Fetch raw DNA for a coordinate window. Supports\nGRCh37 via `--assembly GRCh37`.\n\n```bash\nuv run scripts\u002Fensembl_api.py get-sequence 17:7661779-7687550 --species human --output seq.txt\nuv run scripts\u002Fensembl_api.py get-sequence chr9:21971100-21971200 --assembly GRCh37 --output seq_grch37.txt\n```\n\n**4. Gene Summary** — High-level metadata: symbol, biotype, description,\nchromosomal location.\n\n```bash\nuv run scripts\u002Fensembl_api.py gene-summary ENSG00000141510 --output gene_summary.json\n```\n\n**5. List Transcripts** — All transcripts for a gene, with optional\n`--only-mane` or `--only-canonical` filters. Output includes Transcript Support\nLevel (TSL).\n\n```bash\nuv run scripts\u002Fensembl_api.py transcripts ENSG00000141510 --only-mane --output transcripts_mane.json\nuv run scripts\u002Fensembl_api.py transcripts ENSG00000141510 --only-canonical --output transcripts_canonical.json\nuv run scripts\u002Fensembl_api.py transcripts ENSG00000141510 --output transcripts_all.json\n```\n\n**5b. Canonical TSS** — Get the single coordinate of the Transcription Start\nSite (TSS) for the canonical transcript of a gene.\n\n> [!NOTE] Unlike the standard `transcripts` command, `canonical-tss` accepts\n> both symbols (e.g., `TP53`) and Ensembl IDs, and automatically resolves them.\n> It also does the math for strand orientation (TSS is `Start` for `+` strand\n> and `End` for `-` strand), outputting the single integer coordinate directly.\n\n```bash\nuv run scripts\u002Fensembl_api.py canonical-tss TP53 --output tp53_tss.json\nuv run scripts\u002Fensembl_api.py canonical-tss ENSG00000141510 --output tss.json\n```\n\n**6. Transcript Structure** — Exon coordinates, CDS boundaries, and computed\n5'\u002F3' UTR regions for a transcript.\n\n```bash\nuv run scripts\u002Fensembl_api.py transcript-structure ENST00000269305 --output structure.json\n```\n\n**7. Protein Info** — ENSP ID and sequence length for a transcript.\n\n```bash\nuv run scripts\u002Fensembl_api.py protein-info ENST00000269305 --output protein_info.json\n```\n\n**8. Protein Sequence** — Amino acid FASTA for a transcript (ENST) or protein\n(ENSP) ID.\n\n```bash\nuv run scripts\u002Fensembl_api.py protein-sequence ENST00000269305 --output protein.fasta\nuv run scripts\u002Fensembl_api.py protein-sequence ENSP00000269305 --output protein_ensp.fasta\n```\n\n**9. Variant Consequence (VEP)** — Predict molecular consequences for a genomic\nvariant. Includes open-licensed plugins: AlphaMissense, Conservation,\nDosageSensitivity, IntAct, MaveDB, OpenTargets, LoF (Loftee), NMD, UTRAnnotator,\nmutfunc, LOEUF.\n\n```bash\nuv run scripts\u002Fensembl_api.py vep 9:21971147:T:C --species human --output vep.json\nuv run scripts\u002Fensembl_api.py vep rs699 --species human --output vep_rs699.json\n```\n\nExample VEP stdout output:\n\n```\n[*] Variant: 9:21971147:T>C\n[*] Most severe consequence: missense_variant\n[*] Found 15 transcript consequences.\n\n[*] VEP Predictions:\n\n  - ENST00000304494 (CDKN2A): Consequence = missense_variant\n  - ENST00000304494 (CDKN2A): Amino Acids = N\u002FS\n  - ENST00000304494 (CDKN2A): SIFT = deleterious (0.01)\n  - ENST00000304494 (CDKN2A): AlphaMissense Class = likely_benign\n  - ENST00000304494 (CDKN2A): AlphaMissense Pathogenicity = 0.2129\n  - ENST00000304494 (CDKN2A): Conservation = 2.05\n  - ENST00000304494 (CDKN2A): Dosage Sensitivity (Haplo) = 0.889228328567991\n  - ENST00000304494 (CDKN2A): Dosage Sensitivity (Triplo) = 0.135514349094646\n  - ENST00000304494 (CDKN2A): Loss of Function (LOEUF) = 0.791\n```\n\n**Presenting VEP Results:** After running the VEP command, you MUST present the\nfull VEP Predictions list from stdout to the user. This list contains both\nstandard VEP predictions (Consequence, Amino Acids, SIFT, PolyPhen) and\nopen-license plugin results (AlphaMissense, Conservation, Dosage Sensitivity,\nLOEUF, Loftee LoF, NMD, UTRAnnotator, Mutfunc). Do NOT just summarize — show the\ncomplete list so the user can see all predictions. If the list is very long\n(many transcripts), show the MANE Select \u002F canonical transcript rows in full and\nnote that the complete data is in the JSON output.\n\n## Parsing Outputs\n\nIf the user needs detailed, nested structural data (like the precise integer\ncoordinates of Exon 2 of a transcript) that isn't summarized in stdout:\n\n1.  Locate the JSON file (either specified via `--output` or the temporary file\n    path printed by the script).\n2.  Use terminal tools like `jq` or write a quick, disposable python snippet to\n    extract the specific data point requested. Do **not** attempt to read the\n    entire JSON file into your context if it is very large.\n\n## Custom Queries\n\nIf you need to make an API call that the script does not support (e.g., fetching\nprotein domain annotations, coordinate mapping between assemblies, homology\nsearches, linkage disequilibrium, or phenotype lookups), read\n`references\u002Fensembl_rest_api_reference.md` for a complete reference of available\nendpoints, parameters, and response fields.\n\n**CRITICAL:** When writing custom scripts or using alternatives to the provided\nscripts, you **MUST** respect the Ensembl REST API rate limits (maximum 15\nrequests per second) and handle `429 Too Many Requests` errors gracefully (e.g.,\nwith exponential backoff).\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,50,57,120,126,132,140,194,200,295,302,312,415,425,518,535,627,637,677,703,818,828,897,969,979,1019,1029,1069,1079,1152,1162,1252,1257,1267,1277,1283,1288,1323,1329,1342,1367],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"ensembl-database-id-mapping-and-genomic-features",[47],{"type":48,"value":49},"text","Ensembl Database: ID Mapping and Genomic Features",{"type":42,"tag":51,"props":52,"children":54},"h2",{"id":53},"prerequisites",[55],{"type":48,"value":56},"Prerequisites",{"type":42,"tag":58,"props":59,"children":60},"ol",{},[61,92],{"type":42,"tag":62,"props":63,"children":64},"li",{},[65,76,78,83,85,90],{"type":42,"tag":66,"props":67,"children":68},"strong",{},[69],{"type":42,"tag":70,"props":71,"children":73},"code",{"className":72},[],[74],{"type":48,"value":75},"uv",{"type":48,"value":77},": Read the ",{"type":42,"tag":70,"props":79,"children":81},{"className":80},[],[82],{"type":48,"value":75},{"type":48,"value":84}," skill and follow its Setup instructions to ensure\n",{"type":42,"tag":70,"props":86,"children":88},{"className":87},[],[89],{"type":48,"value":75},{"type":48,"value":91}," is installed and on PATH.",{"type":42,"tag":62,"props":93,"children":94},{},[95,100,102,110,112,118],{"type":42,"tag":66,"props":96,"children":97},{},[98],{"type":48,"value":99},"User Notification",{"type":48,"value":101},": If .licenses\u002Fensembl_database_LICENSE.txt does not\nalready exist in the workspace root directory then (1) prominently notify\nthe user to check the terms at ",{"type":42,"tag":103,"props":104,"children":108},"a",{"href":105,"rel":106},"https:\u002F\u002Fuseast.ensembl.org\u002Findex.html",[107],"nofollow",[109],{"type":48,"value":105},{"type":48,"value":111}," and\n",{"type":42,"tag":103,"props":113,"children":116},{"href":114,"rel":115},"https:\u002F\u002Fgithub.com\u002FEnsembl\u002Fensembl-rest\u002Fwiki",[107],[117],{"type":48,"value":114},{"type":48,"value":119},", then (2) create the file\nrecording the notification text and timestamp.",{"type":42,"tag":51,"props":121,"children":123},{"id":122},"overview",[124],{"type":48,"value":125},"Overview",{"type":42,"tag":127,"props":128,"children":129},"p",{},[130],{"type":48,"value":131},"The Ensembl database is a resource for genome annotation. This skill allows you\nto interact with the Ensembl REST API to resolve ambiguous symbols,\ncross-reference IDs (RefSeq, HGNC, UniProt, ENSG), fetch raw sequences, and\nretrieve detailed transcript structures.",{"type":42,"tag":127,"props":133,"children":134},{},[135],{"type":42,"tag":66,"props":136,"children":137},{},[138],{"type":48,"value":139},"Key Concepts:",{"type":42,"tag":141,"props":142,"children":143},"ul",{},[144,154,164,174,184],{"type":42,"tag":62,"props":145,"children":146},{},[147,152],{"type":42,"tag":66,"props":148,"children":149},{},[150],{"type":48,"value":151},"ENSG (Gene):",{"type":48,"value":153}," Stable identifier for a human gene. Other species will have\ndifferent three-letter species codes.",{"type":42,"tag":62,"props":155,"children":156},{},[157,162],{"type":42,"tag":66,"props":158,"children":159},{},[160],{"type":48,"value":161},"ENST (Transcript):",{"type":48,"value":163}," Stable identifier for a transcript (splicing\nisoform).",{"type":42,"tag":62,"props":165,"children":166},{},[167,172],{"type":42,"tag":66,"props":168,"children":169},{},[170],{"type":48,"value":171},"ENSP (Protein):",{"type":48,"value":173}," Stable identifier for a translated protein.",{"type":42,"tag":62,"props":175,"children":176},{},[177,182],{"type":42,"tag":66,"props":178,"children":179},{},[180],{"type":48,"value":181},"MANE Select:",{"type":48,"value":183}," The consensus primary transcript agreed upon by Ensembl and\nNCBI.",{"type":42,"tag":62,"props":185,"children":186},{},[187,192],{"type":42,"tag":66,"props":188,"children":189},{},[190],{"type":48,"value":191},"Canonical:",{"type":48,"value":193}," Ensembl's representative transcript (used if MANE is not\navailable or non-human).",{"type":42,"tag":51,"props":195,"children":197},{"id":196},"core-rules",[198],{"type":48,"value":199},"Core Rules",{"type":42,"tag":141,"props":201,"children":202},{},[203,213,231,241,259,285],{"type":42,"tag":62,"props":204,"children":205},{},[206,211],{"type":42,"tag":66,"props":207,"children":208},{},[209],{"type":48,"value":210},"Use the Wrapper",{"type":48,"value":212},": ALWAYS execute the provided helper scripts to query the\ndatabase rather than accessing the database directly. The scripts\nautomatically enforce the required rate limit gracefully.",{"type":42,"tag":62,"props":214,"children":215},{},[216,221,223,229],{"type":42,"tag":66,"props":217,"children":218},{},[219],{"type":48,"value":220},"Default Species:",{"type":48,"value":222}," If the species is absent or ambiguous in the prompt,\ndefault to ",{"type":42,"tag":70,"props":224,"children":226},{"className":225},[],[227],{"type":48,"value":228},"\"human\"",{"type":48,"value":230},". You MUST explicitly flag this default to the user to\nensure they are aware.",{"type":42,"tag":62,"props":232,"children":233},{},[234,239],{"type":42,"tag":66,"props":235,"children":236},{},[237],{"type":48,"value":238},"Primary Transcripts:",{"type":48,"value":240}," When listing transcripts for a gene, only return\nthe MANE Select transcript (for human) or the Canonical transcript (for\nothers) unless the user explicitly asks for all alternative isoforms. You\nMUST flag to the user when multiple transcripts are available and you are\ndefaulting to the primary one.",{"type":42,"tag":62,"props":242,"children":243},{},[244,249,251,257],{"type":42,"tag":66,"props":245,"children":246},{},[247],{"type":48,"value":248},"Assembly Handling:",{"type":48,"value":250}," The default assembly is GRCh38. For GRCh37 requests,\nyou MUST use the ",{"type":42,"tag":70,"props":252,"children":254},{"className":253},[],[255],{"type":48,"value":256},"--assembly GRCh37",{"type":48,"value":258}," flag. You MUST explicitly flag to the\nuser when a non-default assembly is being used.",{"type":42,"tag":62,"props":260,"children":261},{},[262,267,269,275,277,283],{"type":42,"tag":66,"props":263,"children":264},{},[265],{"type":48,"value":266},"Output Location:",{"type":48,"value":268}," The script writes full JSON\u002FFASTA output to temporary\nfiles in ",{"type":42,"tag":70,"props":270,"children":272},{"className":271},[],[273],{"type":48,"value":274},"\u002Ftmp",{"type":48,"value":276}," by default, or to a user-specified file using the ",{"type":42,"tag":70,"props":278,"children":280},{"className":279},[],[281],{"type":48,"value":282},"--output",{"type":48,"value":284},"\nflag. It also prints a concise summary to stdout.",{"type":42,"tag":62,"props":286,"children":287},{},[288,293],{"type":42,"tag":66,"props":289,"children":290},{},[291],{"type":48,"value":292},"Notification",{"type":48,"value":294},": If this skill is used, ensure this is mentioned in the\noutput.",{"type":42,"tag":296,"props":297,"children":299},"h3",{"id":298},"available-commands",[300],{"type":48,"value":301},"Available Commands",{"type":42,"tag":127,"props":303,"children":304},{},[305,310],{"type":42,"tag":66,"props":306,"children":307},{},[308],{"type":48,"value":309},"1. Resolve Gene ID",{"type":48,"value":311}," — Resolve a symbol, alias, or RefSeq ID to ENSG ID(s).\nAutomatically falls back to resolving synonyms if primary symbol is not found.",{"type":42,"tag":313,"props":314,"children":319},"pre",{"className":315,"code":316,"language":317,"meta":318,"style":318},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","uv run scripts\u002Fensembl_api.py resolve-gene TP53 --species human --output tp53.json\nuv run scripts\u002Fensembl_api.py resolve-gene PCL2 --output pcl2.json # Falls back to synonym resolution\n","bash","",[320],{"type":42,"tag":70,"props":321,"children":322},{"__ignoreMap":318},[323,375],{"type":42,"tag":324,"props":325,"children":328},"span",{"class":326,"line":327},"line",1,[329,334,340,345,350,355,360,365,370],{"type":42,"tag":324,"props":330,"children":332},{"style":331},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[333],{"type":48,"value":75},{"type":42,"tag":324,"props":335,"children":337},{"style":336},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[338],{"type":48,"value":339}," run",{"type":42,"tag":324,"props":341,"children":342},{"style":336},[343],{"type":48,"value":344}," scripts\u002Fensembl_api.py",{"type":42,"tag":324,"props":346,"children":347},{"style":336},[348],{"type":48,"value":349}," resolve-gene",{"type":42,"tag":324,"props":351,"children":352},{"style":336},[353],{"type":48,"value":354}," TP53",{"type":42,"tag":324,"props":356,"children":357},{"style":336},[358],{"type":48,"value":359}," --species",{"type":42,"tag":324,"props":361,"children":362},{"style":336},[363],{"type":48,"value":364}," human",{"type":42,"tag":324,"props":366,"children":367},{"style":336},[368],{"type":48,"value":369}," --output",{"type":42,"tag":324,"props":371,"children":372},{"style":336},[373],{"type":48,"value":374}," tp53.json\n",{"type":42,"tag":324,"props":376,"children":378},{"class":326,"line":377},2,[379,383,387,391,395,400,404,409],{"type":42,"tag":324,"props":380,"children":381},{"style":331},[382],{"type":48,"value":75},{"type":42,"tag":324,"props":384,"children":385},{"style":336},[386],{"type":48,"value":339},{"type":42,"tag":324,"props":388,"children":389},{"style":336},[390],{"type":48,"value":344},{"type":42,"tag":324,"props":392,"children":393},{"style":336},[394],{"type":48,"value":349},{"type":42,"tag":324,"props":396,"children":397},{"style":336},[398],{"type":48,"value":399}," PCL2",{"type":42,"tag":324,"props":401,"children":402},{"style":336},[403],{"type":48,"value":369},{"type":42,"tag":324,"props":405,"children":406},{"style":336},[407],{"type":48,"value":408}," pcl2.json",{"type":42,"tag":324,"props":410,"children":412},{"style":411},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[413],{"type":48,"value":414}," # Falls back to synonym resolution\n",{"type":42,"tag":127,"props":416,"children":417},{},[418,423],{"type":42,"tag":66,"props":419,"children":420},{},[421],{"type":48,"value":422},"2. Map ID to External Database",{"type":48,"value":424}," — Cross-reference an Ensembl ID to UniProt,\nHGNC, RefSeq, etc.",{"type":42,"tag":313,"props":426,"children":428},{"className":315,"code":427,"language":317,"meta":318,"style":318},"uv run scripts\u002Fensembl_api.py map-id ENSG00000141510 --external-db UniProt --output uniprot_map.json\nuv run scripts\u002Fensembl_api.py map-id ENST00000269305 --external-db RefSeq_mRNA --output refseq_map.json\n",[429],{"type":42,"tag":70,"props":430,"children":431},{"__ignoreMap":318},[432,476],{"type":42,"tag":324,"props":433,"children":434},{"class":326,"line":327},[435,439,443,447,452,457,462,467,471],{"type":42,"tag":324,"props":436,"children":437},{"style":331},[438],{"type":48,"value":75},{"type":42,"tag":324,"props":440,"children":441},{"style":336},[442],{"type":48,"value":339},{"type":42,"tag":324,"props":444,"children":445},{"style":336},[446],{"type":48,"value":344},{"type":42,"tag":324,"props":448,"children":449},{"style":336},[450],{"type":48,"value":451}," map-id",{"type":42,"tag":324,"props":453,"children":454},{"style":336},[455],{"type":48,"value":456}," ENSG00000141510",{"type":42,"tag":324,"props":458,"children":459},{"style":336},[460],{"type":48,"value":461}," --external-db",{"type":42,"tag":324,"props":463,"children":464},{"style":336},[465],{"type":48,"value":466}," UniProt",{"type":42,"tag":324,"props":468,"children":469},{"style":336},[470],{"type":48,"value":369},{"type":42,"tag":324,"props":472,"children":473},{"style":336},[474],{"type":48,"value":475}," uniprot_map.json\n",{"type":42,"tag":324,"props":477,"children":478},{"class":326,"line":377},[479,483,487,491,495,500,504,509,513],{"type":42,"tag":324,"props":480,"children":481},{"style":331},[482],{"type":48,"value":75},{"type":42,"tag":324,"props":484,"children":485},{"style":336},[486],{"type":48,"value":339},{"type":42,"tag":324,"props":488,"children":489},{"style":336},[490],{"type":48,"value":344},{"type":42,"tag":324,"props":492,"children":493},{"style":336},[494],{"type":48,"value":451},{"type":42,"tag":324,"props":496,"children":497},{"style":336},[498],{"type":48,"value":499}," ENST00000269305",{"type":42,"tag":324,"props":501,"children":502},{"style":336},[503],{"type":48,"value":461},{"type":42,"tag":324,"props":505,"children":506},{"style":336},[507],{"type":48,"value":508}," RefSeq_mRNA",{"type":42,"tag":324,"props":510,"children":511},{"style":336},[512],{"type":48,"value":369},{"type":42,"tag":324,"props":514,"children":515},{"style":336},[516],{"type":48,"value":517}," refseq_map.json\n",{"type":42,"tag":127,"props":519,"children":520},{},[521,526,528,533],{"type":42,"tag":66,"props":522,"children":523},{},[524],{"type":48,"value":525},"3. Get Genomic Sequence",{"type":48,"value":527}," — Fetch raw DNA for a coordinate window. Supports\nGRCh37 via ",{"type":42,"tag":70,"props":529,"children":531},{"className":530},[],[532],{"type":48,"value":256},{"type":48,"value":534},".",{"type":42,"tag":313,"props":536,"children":538},{"className":315,"code":537,"language":317,"meta":318,"style":318},"uv run scripts\u002Fensembl_api.py get-sequence 17:7661779-7687550 --species human --output seq.txt\nuv run scripts\u002Fensembl_api.py get-sequence chr9:21971100-21971200 --assembly GRCh37 --output seq_grch37.txt\n",[539],{"type":42,"tag":70,"props":540,"children":541},{"__ignoreMap":318},[542,584],{"type":42,"tag":324,"props":543,"children":544},{"class":326,"line":327},[545,549,553,557,562,567,571,575,579],{"type":42,"tag":324,"props":546,"children":547},{"style":331},[548],{"type":48,"value":75},{"type":42,"tag":324,"props":550,"children":551},{"style":336},[552],{"type":48,"value":339},{"type":42,"tag":324,"props":554,"children":555},{"style":336},[556],{"type":48,"value":344},{"type":42,"tag":324,"props":558,"children":559},{"style":336},[560],{"type":48,"value":561}," get-sequence",{"type":42,"tag":324,"props":563,"children":564},{"style":336},[565],{"type":48,"value":566}," 17:7661779-7687550",{"type":42,"tag":324,"props":568,"children":569},{"style":336},[570],{"type":48,"value":359},{"type":42,"tag":324,"props":572,"children":573},{"style":336},[574],{"type":48,"value":364},{"type":42,"tag":324,"props":576,"children":577},{"style":336},[578],{"type":48,"value":369},{"type":42,"tag":324,"props":580,"children":581},{"style":336},[582],{"type":48,"value":583}," seq.txt\n",{"type":42,"tag":324,"props":585,"children":586},{"class":326,"line":377},[587,591,595,599,603,608,613,618,622],{"type":42,"tag":324,"props":588,"children":589},{"style":331},[590],{"type":48,"value":75},{"type":42,"tag":324,"props":592,"children":593},{"style":336},[594],{"type":48,"value":339},{"type":42,"tag":324,"props":596,"children":597},{"style":336},[598],{"type":48,"value":344},{"type":42,"tag":324,"props":600,"children":601},{"style":336},[602],{"type":48,"value":561},{"type":42,"tag":324,"props":604,"children":605},{"style":336},[606],{"type":48,"value":607}," chr9:21971100-21971200",{"type":42,"tag":324,"props":609,"children":610},{"style":336},[611],{"type":48,"value":612}," --assembly",{"type":42,"tag":324,"props":614,"children":615},{"style":336},[616],{"type":48,"value":617}," GRCh37",{"type":42,"tag":324,"props":619,"children":620},{"style":336},[621],{"type":48,"value":369},{"type":42,"tag":324,"props":623,"children":624},{"style":336},[625],{"type":48,"value":626}," seq_grch37.txt\n",{"type":42,"tag":127,"props":628,"children":629},{},[630,635],{"type":42,"tag":66,"props":631,"children":632},{},[633],{"type":48,"value":634},"4. Gene Summary",{"type":48,"value":636}," — High-level metadata: symbol, biotype, description,\nchromosomal location.",{"type":42,"tag":313,"props":638,"children":640},{"className":315,"code":639,"language":317,"meta":318,"style":318},"uv run scripts\u002Fensembl_api.py gene-summary ENSG00000141510 --output gene_summary.json\n",[641],{"type":42,"tag":70,"props":642,"children":643},{"__ignoreMap":318},[644],{"type":42,"tag":324,"props":645,"children":646},{"class":326,"line":327},[647,651,655,659,664,668,672],{"type":42,"tag":324,"props":648,"children":649},{"style":331},[650],{"type":48,"value":75},{"type":42,"tag":324,"props":652,"children":653},{"style":336},[654],{"type":48,"value":339},{"type":42,"tag":324,"props":656,"children":657},{"style":336},[658],{"type":48,"value":344},{"type":42,"tag":324,"props":660,"children":661},{"style":336},[662],{"type":48,"value":663}," gene-summary",{"type":42,"tag":324,"props":665,"children":666},{"style":336},[667],{"type":48,"value":456},{"type":42,"tag":324,"props":669,"children":670},{"style":336},[671],{"type":48,"value":369},{"type":42,"tag":324,"props":673,"children":674},{"style":336},[675],{"type":48,"value":676}," gene_summary.json\n",{"type":42,"tag":127,"props":678,"children":679},{},[680,685,687,693,695,701],{"type":42,"tag":66,"props":681,"children":682},{},[683],{"type":48,"value":684},"5. List Transcripts",{"type":48,"value":686}," — All transcripts for a gene, with optional\n",{"type":42,"tag":70,"props":688,"children":690},{"className":689},[],[691],{"type":48,"value":692},"--only-mane",{"type":48,"value":694}," or ",{"type":42,"tag":70,"props":696,"children":698},{"className":697},[],[699],{"type":48,"value":700},"--only-canonical",{"type":48,"value":702}," filters. Output includes Transcript Support\nLevel (TSL).",{"type":42,"tag":313,"props":704,"children":706},{"className":315,"code":705,"language":317,"meta":318,"style":318},"uv run scripts\u002Fensembl_api.py transcripts ENSG00000141510 --only-mane --output transcripts_mane.json\nuv run scripts\u002Fensembl_api.py transcripts ENSG00000141510 --only-canonical --output transcripts_canonical.json\nuv run scripts\u002Fensembl_api.py transcripts ENSG00000141510 --output transcripts_all.json\n",[707],{"type":42,"tag":70,"props":708,"children":709},{"__ignoreMap":318},[710,748,785],{"type":42,"tag":324,"props":711,"children":712},{"class":326,"line":327},[713,717,721,725,730,734,739,743],{"type":42,"tag":324,"props":714,"children":715},{"style":331},[716],{"type":48,"value":75},{"type":42,"tag":324,"props":718,"children":719},{"style":336},[720],{"type":48,"value":339},{"type":42,"tag":324,"props":722,"children":723},{"style":336},[724],{"type":48,"value":344},{"type":42,"tag":324,"props":726,"children":727},{"style":336},[728],{"type":48,"value":729}," transcripts",{"type":42,"tag":324,"props":731,"children":732},{"style":336},[733],{"type":48,"value":456},{"type":42,"tag":324,"props":735,"children":736},{"style":336},[737],{"type":48,"value":738}," --only-mane",{"type":42,"tag":324,"props":740,"children":741},{"style":336},[742],{"type":48,"value":369},{"type":42,"tag":324,"props":744,"children":745},{"style":336},[746],{"type":48,"value":747}," transcripts_mane.json\n",{"type":42,"tag":324,"props":749,"children":750},{"class":326,"line":377},[751,755,759,763,767,771,776,780],{"type":42,"tag":324,"props":752,"children":753},{"style":331},[754],{"type":48,"value":75},{"type":42,"tag":324,"props":756,"children":757},{"style":336},[758],{"type":48,"value":339},{"type":42,"tag":324,"props":760,"children":761},{"style":336},[762],{"type":48,"value":344},{"type":42,"tag":324,"props":764,"children":765},{"style":336},[766],{"type":48,"value":729},{"type":42,"tag":324,"props":768,"children":769},{"style":336},[770],{"type":48,"value":456},{"type":42,"tag":324,"props":772,"children":773},{"style":336},[774],{"type":48,"value":775}," --only-canonical",{"type":42,"tag":324,"props":777,"children":778},{"style":336},[779],{"type":48,"value":369},{"type":42,"tag":324,"props":781,"children":782},{"style":336},[783],{"type":48,"value":784}," transcripts_canonical.json\n",{"type":42,"tag":324,"props":786,"children":788},{"class":326,"line":787},3,[789,793,797,801,805,809,813],{"type":42,"tag":324,"props":790,"children":791},{"style":331},[792],{"type":48,"value":75},{"type":42,"tag":324,"props":794,"children":795},{"style":336},[796],{"type":48,"value":339},{"type":42,"tag":324,"props":798,"children":799},{"style":336},[800],{"type":48,"value":344},{"type":42,"tag":324,"props":802,"children":803},{"style":336},[804],{"type":48,"value":729},{"type":42,"tag":324,"props":806,"children":807},{"style":336},[808],{"type":48,"value":456},{"type":42,"tag":324,"props":810,"children":811},{"style":336},[812],{"type":48,"value":369},{"type":42,"tag":324,"props":814,"children":815},{"style":336},[816],{"type":48,"value":817}," transcripts_all.json\n",{"type":42,"tag":127,"props":819,"children":820},{},[821,826],{"type":42,"tag":66,"props":822,"children":823},{},[824],{"type":48,"value":825},"5b. Canonical TSS",{"type":48,"value":827}," — Get the single coordinate of the Transcription Start\nSite (TSS) for the canonical transcript of a gene.",{"type":42,"tag":829,"props":830,"children":831},"blockquote",{},[832],{"type":42,"tag":127,"props":833,"children":834},{},[835,840,842,848,850,856,858,864,866,872,874,880,882,888,889,895],{"type":42,"tag":324,"props":836,"children":837},{},[838],{"type":48,"value":839},"!NOTE",{"type":48,"value":841}," Unlike the standard ",{"type":42,"tag":70,"props":843,"children":845},{"className":844},[],[846],{"type":48,"value":847},"transcripts",{"type":48,"value":849}," command, ",{"type":42,"tag":70,"props":851,"children":853},{"className":852},[],[854],{"type":48,"value":855},"canonical-tss",{"type":48,"value":857}," accepts\nboth symbols (e.g., ",{"type":42,"tag":70,"props":859,"children":861},{"className":860},[],[862],{"type":48,"value":863},"TP53",{"type":48,"value":865},") and Ensembl IDs, and automatically resolves them.\nIt also does the math for strand orientation (TSS is ",{"type":42,"tag":70,"props":867,"children":869},{"className":868},[],[870],{"type":48,"value":871},"Start",{"type":48,"value":873}," for ",{"type":42,"tag":70,"props":875,"children":877},{"className":876},[],[878],{"type":48,"value":879},"+",{"type":48,"value":881}," strand\nand ",{"type":42,"tag":70,"props":883,"children":885},{"className":884},[],[886],{"type":48,"value":887},"End",{"type":48,"value":873},{"type":42,"tag":70,"props":890,"children":892},{"className":891},[],[893],{"type":48,"value":894},"-",{"type":48,"value":896}," strand), outputting the single integer coordinate directly.",{"type":42,"tag":313,"props":898,"children":900},{"className":315,"code":899,"language":317,"meta":318,"style":318},"uv run scripts\u002Fensembl_api.py canonical-tss TP53 --output tp53_tss.json\nuv run scripts\u002Fensembl_api.py canonical-tss ENSG00000141510 --output tss.json\n",[901],{"type":42,"tag":70,"props":902,"children":903},{"__ignoreMap":318},[904,937],{"type":42,"tag":324,"props":905,"children":906},{"class":326,"line":327},[907,911,915,919,924,928,932],{"type":42,"tag":324,"props":908,"children":909},{"style":331},[910],{"type":48,"value":75},{"type":42,"tag":324,"props":912,"children":913},{"style":336},[914],{"type":48,"value":339},{"type":42,"tag":324,"props":916,"children":917},{"style":336},[918],{"type":48,"value":344},{"type":42,"tag":324,"props":920,"children":921},{"style":336},[922],{"type":48,"value":923}," canonical-tss",{"type":42,"tag":324,"props":925,"children":926},{"style":336},[927],{"type":48,"value":354},{"type":42,"tag":324,"props":929,"children":930},{"style":336},[931],{"type":48,"value":369},{"type":42,"tag":324,"props":933,"children":934},{"style":336},[935],{"type":48,"value":936}," tp53_tss.json\n",{"type":42,"tag":324,"props":938,"children":939},{"class":326,"line":377},[940,944,948,952,956,960,964],{"type":42,"tag":324,"props":941,"children":942},{"style":331},[943],{"type":48,"value":75},{"type":42,"tag":324,"props":945,"children":946},{"style":336},[947],{"type":48,"value":339},{"type":42,"tag":324,"props":949,"children":950},{"style":336},[951],{"type":48,"value":344},{"type":42,"tag":324,"props":953,"children":954},{"style":336},[955],{"type":48,"value":923},{"type":42,"tag":324,"props":957,"children":958},{"style":336},[959],{"type":48,"value":456},{"type":42,"tag":324,"props":961,"children":962},{"style":336},[963],{"type":48,"value":369},{"type":42,"tag":324,"props":965,"children":966},{"style":336},[967],{"type":48,"value":968}," tss.json\n",{"type":42,"tag":127,"props":970,"children":971},{},[972,977],{"type":42,"tag":66,"props":973,"children":974},{},[975],{"type":48,"value":976},"6. Transcript Structure",{"type":48,"value":978}," — Exon coordinates, CDS boundaries, and computed\n5'\u002F3' UTR regions for a transcript.",{"type":42,"tag":313,"props":980,"children":982},{"className":315,"code":981,"language":317,"meta":318,"style":318},"uv run scripts\u002Fensembl_api.py transcript-structure ENST00000269305 --output structure.json\n",[983],{"type":42,"tag":70,"props":984,"children":985},{"__ignoreMap":318},[986],{"type":42,"tag":324,"props":987,"children":988},{"class":326,"line":327},[989,993,997,1001,1006,1010,1014],{"type":42,"tag":324,"props":990,"children":991},{"style":331},[992],{"type":48,"value":75},{"type":42,"tag":324,"props":994,"children":995},{"style":336},[996],{"type":48,"value":339},{"type":42,"tag":324,"props":998,"children":999},{"style":336},[1000],{"type":48,"value":344},{"type":42,"tag":324,"props":1002,"children":1003},{"style":336},[1004],{"type":48,"value":1005}," transcript-structure",{"type":42,"tag":324,"props":1007,"children":1008},{"style":336},[1009],{"type":48,"value":499},{"type":42,"tag":324,"props":1011,"children":1012},{"style":336},[1013],{"type":48,"value":369},{"type":42,"tag":324,"props":1015,"children":1016},{"style":336},[1017],{"type":48,"value":1018}," structure.json\n",{"type":42,"tag":127,"props":1020,"children":1021},{},[1022,1027],{"type":42,"tag":66,"props":1023,"children":1024},{},[1025],{"type":48,"value":1026},"7. Protein Info",{"type":48,"value":1028}," — ENSP ID and sequence length for a transcript.",{"type":42,"tag":313,"props":1030,"children":1032},{"className":315,"code":1031,"language":317,"meta":318,"style":318},"uv run scripts\u002Fensembl_api.py protein-info ENST00000269305 --output protein_info.json\n",[1033],{"type":42,"tag":70,"props":1034,"children":1035},{"__ignoreMap":318},[1036],{"type":42,"tag":324,"props":1037,"children":1038},{"class":326,"line":327},[1039,1043,1047,1051,1056,1060,1064],{"type":42,"tag":324,"props":1040,"children":1041},{"style":331},[1042],{"type":48,"value":75},{"type":42,"tag":324,"props":1044,"children":1045},{"style":336},[1046],{"type":48,"value":339},{"type":42,"tag":324,"props":1048,"children":1049},{"style":336},[1050],{"type":48,"value":344},{"type":42,"tag":324,"props":1052,"children":1053},{"style":336},[1054],{"type":48,"value":1055}," protein-info",{"type":42,"tag":324,"props":1057,"children":1058},{"style":336},[1059],{"type":48,"value":499},{"type":42,"tag":324,"props":1061,"children":1062},{"style":336},[1063],{"type":48,"value":369},{"type":42,"tag":324,"props":1065,"children":1066},{"style":336},[1067],{"type":48,"value":1068}," protein_info.json\n",{"type":42,"tag":127,"props":1070,"children":1071},{},[1072,1077],{"type":42,"tag":66,"props":1073,"children":1074},{},[1075],{"type":48,"value":1076},"8. Protein Sequence",{"type":48,"value":1078}," — Amino acid FASTA for a transcript (ENST) or protein\n(ENSP) ID.",{"type":42,"tag":313,"props":1080,"children":1082},{"className":315,"code":1081,"language":317,"meta":318,"style":318},"uv run scripts\u002Fensembl_api.py protein-sequence ENST00000269305 --output protein.fasta\nuv run scripts\u002Fensembl_api.py protein-sequence ENSP00000269305 --output protein_ensp.fasta\n",[1083],{"type":42,"tag":70,"props":1084,"children":1085},{"__ignoreMap":318},[1086,1119],{"type":42,"tag":324,"props":1087,"children":1088},{"class":326,"line":327},[1089,1093,1097,1101,1106,1110,1114],{"type":42,"tag":324,"props":1090,"children":1091},{"style":331},[1092],{"type":48,"value":75},{"type":42,"tag":324,"props":1094,"children":1095},{"style":336},[1096],{"type":48,"value":339},{"type":42,"tag":324,"props":1098,"children":1099},{"style":336},[1100],{"type":48,"value":344},{"type":42,"tag":324,"props":1102,"children":1103},{"style":336},[1104],{"type":48,"value":1105}," protein-sequence",{"type":42,"tag":324,"props":1107,"children":1108},{"style":336},[1109],{"type":48,"value":499},{"type":42,"tag":324,"props":1111,"children":1112},{"style":336},[1113],{"type":48,"value":369},{"type":42,"tag":324,"props":1115,"children":1116},{"style":336},[1117],{"type":48,"value":1118}," protein.fasta\n",{"type":42,"tag":324,"props":1120,"children":1121},{"class":326,"line":377},[1122,1126,1130,1134,1138,1143,1147],{"type":42,"tag":324,"props":1123,"children":1124},{"style":331},[1125],{"type":48,"value":75},{"type":42,"tag":324,"props":1127,"children":1128},{"style":336},[1129],{"type":48,"value":339},{"type":42,"tag":324,"props":1131,"children":1132},{"style":336},[1133],{"type":48,"value":344},{"type":42,"tag":324,"props":1135,"children":1136},{"style":336},[1137],{"type":48,"value":1105},{"type":42,"tag":324,"props":1139,"children":1140},{"style":336},[1141],{"type":48,"value":1142}," ENSP00000269305",{"type":42,"tag":324,"props":1144,"children":1145},{"style":336},[1146],{"type":48,"value":369},{"type":42,"tag":324,"props":1148,"children":1149},{"style":336},[1150],{"type":48,"value":1151}," protein_ensp.fasta\n",{"type":42,"tag":127,"props":1153,"children":1154},{},[1155,1160],{"type":42,"tag":66,"props":1156,"children":1157},{},[1158],{"type":48,"value":1159},"9. Variant Consequence (VEP)",{"type":48,"value":1161}," — Predict molecular consequences for a genomic\nvariant. Includes open-licensed plugins: AlphaMissense, Conservation,\nDosageSensitivity, IntAct, MaveDB, OpenTargets, LoF (Loftee), NMD, UTRAnnotator,\nmutfunc, LOEUF.",{"type":42,"tag":313,"props":1163,"children":1165},{"className":315,"code":1164,"language":317,"meta":318,"style":318},"uv run scripts\u002Fensembl_api.py vep 9:21971147:T:C --species human --output vep.json\nuv run scripts\u002Fensembl_api.py vep rs699 --species human --output vep_rs699.json\n",[1166],{"type":42,"tag":70,"props":1167,"children":1168},{"__ignoreMap":318},[1169,1211],{"type":42,"tag":324,"props":1170,"children":1171},{"class":326,"line":327},[1172,1176,1180,1184,1189,1194,1198,1202,1206],{"type":42,"tag":324,"props":1173,"children":1174},{"style":331},[1175],{"type":48,"value":75},{"type":42,"tag":324,"props":1177,"children":1178},{"style":336},[1179],{"type":48,"value":339},{"type":42,"tag":324,"props":1181,"children":1182},{"style":336},[1183],{"type":48,"value":344},{"type":42,"tag":324,"props":1185,"children":1186},{"style":336},[1187],{"type":48,"value":1188}," vep",{"type":42,"tag":324,"props":1190,"children":1191},{"style":336},[1192],{"type":48,"value":1193}," 9:21971147:T:C",{"type":42,"tag":324,"props":1195,"children":1196},{"style":336},[1197],{"type":48,"value":359},{"type":42,"tag":324,"props":1199,"children":1200},{"style":336},[1201],{"type":48,"value":364},{"type":42,"tag":324,"props":1203,"children":1204},{"style":336},[1205],{"type":48,"value":369},{"type":42,"tag":324,"props":1207,"children":1208},{"style":336},[1209],{"type":48,"value":1210}," vep.json\n",{"type":42,"tag":324,"props":1212,"children":1213},{"class":326,"line":377},[1214,1218,1222,1226,1230,1235,1239,1243,1247],{"type":42,"tag":324,"props":1215,"children":1216},{"style":331},[1217],{"type":48,"value":75},{"type":42,"tag":324,"props":1219,"children":1220},{"style":336},[1221],{"type":48,"value":339},{"type":42,"tag":324,"props":1223,"children":1224},{"style":336},[1225],{"type":48,"value":344},{"type":42,"tag":324,"props":1227,"children":1228},{"style":336},[1229],{"type":48,"value":1188},{"type":42,"tag":324,"props":1231,"children":1232},{"style":336},[1233],{"type":48,"value":1234}," rs699",{"type":42,"tag":324,"props":1236,"children":1237},{"style":336},[1238],{"type":48,"value":359},{"type":42,"tag":324,"props":1240,"children":1241},{"style":336},[1242],{"type":48,"value":364},{"type":42,"tag":324,"props":1244,"children":1245},{"style":336},[1246],{"type":48,"value":369},{"type":42,"tag":324,"props":1248,"children":1249},{"style":336},[1250],{"type":48,"value":1251}," vep_rs699.json\n",{"type":42,"tag":127,"props":1253,"children":1254},{},[1255],{"type":48,"value":1256},"Example VEP stdout output:",{"type":42,"tag":313,"props":1258,"children":1262},{"className":1259,"code":1261,"language":48},[1260],"language-text","[*] Variant: 9:21971147:T>C\n[*] Most severe consequence: missense_variant\n[*] Found 15 transcript consequences.\n\n[*] VEP Predictions:\n\n  - ENST00000304494 (CDKN2A): Consequence = missense_variant\n  - ENST00000304494 (CDKN2A): Amino Acids = N\u002FS\n  - ENST00000304494 (CDKN2A): SIFT = deleterious (0.01)\n  - ENST00000304494 (CDKN2A): AlphaMissense Class = likely_benign\n  - ENST00000304494 (CDKN2A): AlphaMissense Pathogenicity = 0.2129\n  - ENST00000304494 (CDKN2A): Conservation = 2.05\n  - ENST00000304494 (CDKN2A): Dosage Sensitivity (Haplo) = 0.889228328567991\n  - ENST00000304494 (CDKN2A): Dosage Sensitivity (Triplo) = 0.135514349094646\n  - ENST00000304494 (CDKN2A): Loss of Function (LOEUF) = 0.791\n",[1263],{"type":42,"tag":70,"props":1264,"children":1265},{"__ignoreMap":318},[1266],{"type":48,"value":1261},{"type":42,"tag":127,"props":1268,"children":1269},{},[1270,1275],{"type":42,"tag":66,"props":1271,"children":1272},{},[1273],{"type":48,"value":1274},"Presenting VEP Results:",{"type":48,"value":1276}," After running the VEP command, you MUST present the\nfull VEP Predictions list from stdout to the user. This list contains both\nstandard VEP predictions (Consequence, Amino Acids, SIFT, PolyPhen) and\nopen-license plugin results (AlphaMissense, Conservation, Dosage Sensitivity,\nLOEUF, Loftee LoF, NMD, UTRAnnotator, Mutfunc). Do NOT just summarize — show the\ncomplete list so the user can see all predictions. If the list is very long\n(many transcripts), show the MANE Select \u002F canonical transcript rows in full and\nnote that the complete data is in the JSON output.",{"type":42,"tag":51,"props":1278,"children":1280},{"id":1279},"parsing-outputs",[1281],{"type":48,"value":1282},"Parsing Outputs",{"type":42,"tag":127,"props":1284,"children":1285},{},[1286],{"type":48,"value":1287},"If the user needs detailed, nested structural data (like the precise integer\ncoordinates of Exon 2 of a transcript) that isn't summarized in stdout:",{"type":42,"tag":58,"props":1289,"children":1290},{},[1291,1303],{"type":42,"tag":62,"props":1292,"children":1293},{},[1294,1296,1301],{"type":48,"value":1295},"Locate the JSON file (either specified via ",{"type":42,"tag":70,"props":1297,"children":1299},{"className":1298},[],[1300],{"type":48,"value":282},{"type":48,"value":1302}," or the temporary file\npath printed by the script).",{"type":42,"tag":62,"props":1304,"children":1305},{},[1306,1308,1314,1316,1321],{"type":48,"value":1307},"Use terminal tools like ",{"type":42,"tag":70,"props":1309,"children":1311},{"className":1310},[],[1312],{"type":48,"value":1313},"jq",{"type":48,"value":1315}," or write a quick, disposable python snippet to\nextract the specific data point requested. Do ",{"type":42,"tag":66,"props":1317,"children":1318},{},[1319],{"type":48,"value":1320},"not",{"type":48,"value":1322}," attempt to read the\nentire JSON file into your context if it is very large.",{"type":42,"tag":51,"props":1324,"children":1326},{"id":1325},"custom-queries",[1327],{"type":48,"value":1328},"Custom Queries",{"type":42,"tag":127,"props":1330,"children":1331},{},[1332,1334,1340],{"type":48,"value":1333},"If you need to make an API call that the script does not support (e.g., fetching\nprotein domain annotations, coordinate mapping between assemblies, homology\nsearches, linkage disequilibrium, or phenotype lookups), read\n",{"type":42,"tag":70,"props":1335,"children":1337},{"className":1336},[],[1338],{"type":48,"value":1339},"references\u002Fensembl_rest_api_reference.md",{"type":48,"value":1341}," for a complete reference of available\nendpoints, parameters, and response fields.",{"type":42,"tag":127,"props":1343,"children":1344},{},[1345,1350,1352,1357,1359,1365],{"type":42,"tag":66,"props":1346,"children":1347},{},[1348],{"type":48,"value":1349},"CRITICAL:",{"type":48,"value":1351}," When writing custom scripts or using alternatives to the provided\nscripts, you ",{"type":42,"tag":66,"props":1353,"children":1354},{},[1355],{"type":48,"value":1356},"MUST",{"type":48,"value":1358}," respect the Ensembl REST API rate limits (maximum 15\nrequests per second) and handle ",{"type":42,"tag":70,"props":1360,"children":1362},{"className":1361},[],[1363],{"type":48,"value":1364},"429 Too Many Requests",{"type":48,"value":1366}," errors gracefully (e.g.,\nwith exponential backoff).",{"type":42,"tag":1368,"props":1369,"children":1370},"style",{},[1371],{"type":48,"value":1372},"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":1374,"total":1477},[1375,1388,1401,1421,1433,1448,1464],{"slug":1376,"name":1376,"fn":1377,"description":1378,"org":1379,"tags":1380,"stars":25,"repoUrl":26,"updatedAt":1387},"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},[1381,1382,1385,1386],{"name":20,"slug":21,"type":15},{"name":1383,"slug":1384,"type":15},"Genomics","genomics",{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-07-12T07:51:51.827211",{"slug":1389,"name":1389,"fn":1390,"description":1391,"org":1392,"tags":1393,"stars":25,"repoUrl":26,"updatedAt":1400},"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},[1394,1395,1396,1397],{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"name":1398,"slug":1399,"type":15},"RNA-seq","rna-seq","2026-07-12T07:51:39.494803",{"slug":1402,"name":1402,"fn":1403,"description":1404,"org":1405,"tags":1406,"stars":25,"repoUrl":26,"updatedAt":1420},"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},[1407,1410,1413,1416,1419],{"name":1408,"slug":1409,"type":15},"ChEMBL","chembl",{"name":1411,"slug":1412,"type":15},"Chemistry","chemistry",{"name":1414,"slug":1415,"type":15},"Database","database",{"name":1417,"slug":1418,"type":15},"Pharmacology","pharmacology",{"name":13,"slug":14,"type":15},"2026-07-12T07:51:35.544306",{"slug":1422,"name":1422,"fn":1423,"description":1424,"org":1425,"tags":1426,"stars":25,"repoUrl":26,"updatedAt":1432},"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},[1427,1430,1431],{"name":1428,"slug":1429,"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":1434,"name":1434,"fn":1435,"description":1436,"org":1437,"tags":1438,"stars":25,"repoUrl":26,"updatedAt":1447},"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},[1439,1442,1443,1446],{"name":1440,"slug":1441,"type":15},"ClinVar","clinvar",{"name":23,"slug":24,"type":15},{"name":1444,"slug":1445,"type":15},"Healthcare","healthcare",{"name":13,"slug":14,"type":15},"2026-07-12T07:51:36.86094",{"slug":1449,"name":1449,"fn":1450,"description":1451,"org":1452,"tags":1453,"stars":25,"repoUrl":26,"updatedAt":1463},"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},[1454,1457,1460],{"name":1455,"slug":1456,"type":15},"Compliance","compliance",{"name":1458,"slug":1459,"type":15},"Operations","operations",{"name":1461,"slug":1462,"type":15},"Security","security","2026-07-12T07:52:17.355491",{"slug":1465,"name":1465,"fn":1466,"description":1467,"org":1468,"tags":1469,"stars":25,"repoUrl":26,"updatedAt":1476},"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},[1470,1471,1472,1475],{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":1473,"slug":1474,"type":15},"NCBI","ncbi",{"name":13,"slug":14,"type":15},"2026-07-12T07:51:33.054229",38,{"items":1479,"total":1477},[1480,1487,1494,1502,1508,1515,1521,1528,1540,1555,1562,1572],{"slug":1376,"name":1376,"fn":1377,"description":1378,"org":1481,"tags":1482,"stars":25,"repoUrl":26,"updatedAt":1387},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1483,1484,1485,1486],{"name":20,"slug":21,"type":15},{"name":1383,"slug":1384,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":1389,"name":1389,"fn":1390,"description":1391,"org":1488,"tags":1489,"stars":25,"repoUrl":26,"updatedAt":1400},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1490,1491,1492,1493],{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"name":1398,"slug":1399,"type":15},{"slug":1402,"name":1402,"fn":1403,"description":1404,"org":1495,"tags":1496,"stars":25,"repoUrl":26,"updatedAt":1420},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1497,1498,1499,1500,1501],{"name":1408,"slug":1409,"type":15},{"name":1411,"slug":1412,"type":15},{"name":1414,"slug":1415,"type":15},{"name":1417,"slug":1418,"type":15},{"name":13,"slug":14,"type":15},{"slug":1422,"name":1422,"fn":1423,"description":1424,"org":1503,"tags":1504,"stars":25,"repoUrl":26,"updatedAt":1432},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1505,1506,1507],{"name":1428,"slug":1429,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":1434,"name":1434,"fn":1435,"description":1436,"org":1509,"tags":1510,"stars":25,"repoUrl":26,"updatedAt":1447},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1511,1512,1513,1514],{"name":1440,"slug":1441,"type":15},{"name":23,"slug":24,"type":15},{"name":1444,"slug":1445,"type":15},{"name":13,"slug":14,"type":15},{"slug":1449,"name":1449,"fn":1450,"description":1451,"org":1516,"tags":1517,"stars":25,"repoUrl":26,"updatedAt":1463},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1518,1519,1520],{"name":1455,"slug":1456,"type":15},{"name":1458,"slug":1459,"type":15},{"name":1461,"slug":1462,"type":15},{"slug":1465,"name":1465,"fn":1466,"description":1467,"org":1522,"tags":1523,"stars":25,"repoUrl":26,"updatedAt":1476},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1524,1525,1526,1527],{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":1473,"slug":1474,"type":15},{"name":13,"slug":14,"type":15},{"slug":1529,"name":1529,"fn":1530,"description":1531,"org":1532,"tags":1533,"stars":25,"repoUrl":26,"updatedAt":1539},"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},[1534,1535,1538],{"name":20,"slug":21,"type":15},{"name":1536,"slug":1537,"type":15},"Ontology","ontology",{"name":13,"slug":14,"type":15},"2026-07-12T07:51:59.368324",{"slug":1541,"name":1541,"fn":1542,"description":1543,"org":1544,"tags":1545,"stars":25,"repoUrl":26,"updatedAt":1554},"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},[1546,1547,1550,1551],{"name":20,"slug":21,"type":15},{"name":1548,"slug":1549,"type":15},"GraphQL","graphql",{"name":13,"slug":14,"type":15},{"name":1552,"slug":1553,"type":15},"REST API","rest-api","2026-07-12T07:52:10.597139",{"slug":4,"name":4,"fn":5,"description":6,"org":1556,"tags":1557,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1558,1559,1560,1561],{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":1563,"name":1563,"fn":1564,"description":1565,"org":1566,"tags":1567,"stars":25,"repoUrl":26,"updatedAt":1571},"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},[1568,1569,1570],{"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":1573,"name":1573,"fn":1574,"description":1575,"org":1576,"tags":1577,"stars":25,"repoUrl":26,"updatedAt":1582},"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},[1578,1579,1580,1581],{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},"2026-07-12T07:51:38.213009"]