[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DANSQCQMDD0ZPM4ATAKMCF":3,"skill-same:01M6DANSQCQMDD0ZPM4ATAKMCF":53},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":28,"linkOnly":29,"markdownContent":30,"markdownBody":31,"frontMatter":32,"refName":33,"commitSha":34,"skillDirectory":35,"forksCount":14,"repositoryHtmlUrl":36,"repositoryHomepageUrl":6,"ownerHtmlUrl":37,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":38,"install":39,"resources":52},"01M6DANSQCQMDD0ZPM4ATAKMCF","tooluniverse-comparative-genomics",null,"Cross-species gene and sequence comparison, ortholog analysis, and evolutionary conservation assessment using ToolUniverse tools. Use when comparing genes across species, finding orthologs, analyzing evolutionary conservation, or performing comparative functional annotation.","Prekzursil\u002Fagent-skills-toolchain","Prekzursil","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54636077?v=4","01M6DACZ1PCQHD99SCR1YXG28B","Andrei Mihai Visalon","01M6DACZ670WZF535V3WYYSS4Z",0,"MIT","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Flibrary\u002Fskills\u002Ftooluniverse-comparative-genomics\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27],"genomics","tooluniverse comparative genomics","assessment","analyzing","Tools","analysis","use","across","conservation","2026-11-10 10:12:30",false,"---\nname: tooluniverse-comparative-genomics\ndescription: Cross-species gene and sequence comparison, ortholog analysis, and evolutionary conservation assessment using ToolUniverse tools. Use when comparing genes across species, finding orthologs, analyzing evolutionary conservation, or performing comparative functional annotation.\n---\n\n# Comparative Genomics & Ortholog Analysis\n\nCross-species gene comparison, ortholog identification, sequence retrieval, and functional conservation analysis integrating Ensembl Compara, NCBI, UniProt, OLS, Monarch, and OpenTargets.\n\n## LOOK UP, DON'T GUESS\nWhen uncertain about any scientific fact, SEARCH databases first (PubMed, UniProt, ChEMBL, ClinVar, etc.) rather than reasoning from memory. A database-verified answer is always more reliable than a guess.\n\n## COMPUTE, DON'T DESCRIBE\nWhen analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.\n\n## When to Use This Skill\n\n**Triggers**:\n- \"Find the mouse ortholog of [human gene]\"\n- \"Compare [gene] across species\"\n- \"Is [gene] conserved in [organism]?\"\n- \"What are the orthologs of [gene]?\"\n- \"Cross-species comparison of [gene\u002Fprotein]\"\n- \"Evolutionary conservation of [gene]\"\n- \"Compare GO annotations between human and mouse [gene]\"\n\n**Use Cases**:\n1. **Ortholog Discovery**: Find equivalent genes in other species for a human gene\n2. **Conservation Analysis**: Assess how conserved a gene is across evolutionary distance\n3. **Functional Comparison**: Compare GO terms, domains, and annotations across orthologs\n4. **Model Organism Selection**: Determine which model organism best recapitulates human gene function\n5. **Gene Tree Analysis**: Visualize evolutionary history of a gene family\n6. **Cross-Species Phenotype Bridging**: Link human disease phenotypes to model organism phenotypes via orthologs\n\n---\n\n## Conservation Reasoning Framework\n\nUnderstanding conservation requires distinguishing between types of evolutionary patterns and what they imply about function.\n\n**High conservation signals functional constraint.** When a gene is maintained as a 1:1 ortholog from yeast to humans, purifying selection has prevented sequence divergence — the gene's function is essential and cannot be easily altered. Highly conserved positions within a protein sequence (high PhastCons scores > 0.8, or GERP RS > 4) are under strong constraint; mutations at these positions are disproportionately pathogenic. For non-coding regions, conservation in mammals at PhastCons > 0.5 suggests a candidate regulatory element.\n\n**Low conservation in one lineage has two possible explanations: relaxed selection or positive selection.** Use the dN\u002FdS ratio (nonsynonymous to synonymous substitution rate) to distinguish them. A dN\u002FdS ratio near 1 suggests neutral evolution — the gene is no longer under purifying selection (relaxed constraint, possibly reflecting loss of function in that lineage). A dN\u002FdS ratio > 1 indicates positive selection — the gene is diverging faster than neutral expectation, often because it is adapting to a new environment or function. A dN\u002FdS ratio \u003C\u003C 1 is the signature of purifying selection (functional constraint). When a vertebrate gene shows high divergence in a specific branch of the tree, ask which explanation applies before concluding that function is lost.\n\n**Ortholog relationship type shapes interpretation.** A 1:1 ortholog (one gene in human, one in mouse) is the highest-confidence functional equivalent — it has not been duplicated in either lineage, so it most likely performs the same ancestral role. A 1:many relationship (one gene in human, multiple in mouse) means the target species has duplicated the gene; the copies may have subfunctionalized (each copy performs a subset of the original roles) or neofunctionalized (one copy gained a new role). Do not assume both copies retain full ancestral function. A many:many relationship reflects complex duplication history in both species and requires analyzing each paralog pair individually.\n\n**Conservation depth predicts essentiality.** A gene conserved across all vertebrates suggests a fundamental cellular process. A gene conserved only in mammals suggests a more specialized vertebrate innovation. A gene present only in primates or only in humans is likely a recent evolutionary acquisition, possibly involved in human-specific biology but often lacking the depth of functional characterization available for deeply conserved genes.\n\n**Absence of an ortholog is a finding, not an error.** Lineage-specific genes exist and are biologically meaningful. Before concluding a gene is lineage-specific, check: (1) whether BLAST with relaxed thresholds finds distant homologs, (2) whether a highly divergent ortholog exists that Ensembl Compara missed, and (3) whether the gene belongs to a rapidly evolving family (immune genes, olfactory receptors, reproductive proteins) where turnover is expected.\n\n---\n\n## Workflow Overview\n\n```\nInput (gene symbol\u002FID + reference species)\n  |\n  v\nPhase 1: Gene Identification & Validation\n  |\n  v\nPhase 2: Ortholog Discovery (Ensembl Compara + OpenTargets)\n  |\n  v\nPhase 3: Sequence Retrieval (NCBI + Ensembl)\n  |\n  v\nPhase 4: Functional Annotation Comparison (UniProt + OLS GO terms)\n  |\n  v\nPhase 5: Cross-Species Phenotype Bridging (Monarch)\n  |\n  v\nPhase 6: Gene Tree & Evolutionary Context (Ensembl Compara)\n  |\n  v\nReport: Conservation summary, ortholog evidence, functional comparison, phenotype bridging\n```\n\n---\n\n## Phase 1: Gene Identification & Validation\n\n`ensembl_lookup_gene` takes `gene_id` (symbol or Ensembl ID). The `species` parameter is REQUIRED when using gene symbols (e.g., `species=\"homo_sapiens\"`); omitting it causes errors. Extract the Ensembl gene ID, description, biotype, and chromosomal coordinates for downstream queries. For non-human references, adjust `species` accordingly (e.g., \"mus_musculus\", \"danio_rerio\").\n\n---\n\n## Phase 2: Ortholog Discovery\n\n`EnsemblCompara_get_orthologues` is the primary tool. It takes `gene` (symbol or Ensembl ID), `species` (source species, default \"human\"), and optionally `target_species` (e.g., \"mouse\", \"zebrafish\") or `target_taxon` (NCBI taxon ID). Omit `target_species` to get all orthologs across the tree; filter client-side for specific species. It returns homology type (one2one, one2many, many2many) and the taxonomy divergence level for each ortholog.\n\n`ensembl_get_homology` is the alternative when you need sequence-level data alongside the ortholog mapping. Use `sequence=\"protein\"` and `aligned=true` for aligned sequence comparison across species.\n\n`OpenTargets_get_target_homologues_by_ensemblID` (takes `ensemblId`) provides supplementary ortholog data from OpenTargets, which can add druggability context and cross-reference with model organism phenotype data.\n\n**Reasoning**: Prioritize 1:1 orthologs as high-confidence functional equivalents. For 1:many cases, report all copies and flag the need for paralog-specific functional analysis. If no Ensembl Compara entry exists, try BLAST as a last resort (note: BLAST protein search against swissprot is slow, 5-30 minutes; against nr may take longer).\n\nKey model organisms to check: mouse (taxon 10090), rat (10116), zebrafish (7955), fruit fly (7227), C. elegans (6239), S. cerevisiae (4932).\n\n---\n\n## Phase 3: Sequence Retrieval\n\nUse `NCBI_search_nucleotide` (takes `organism` as full name, e.g., \"Homo sapiens\"; `gene`; `seq_type` = \"mRNA\") to find sequence records, then `NCBI_fetch_accessions` to convert UIDs to accession numbers, then `NCBI_get_sequence` to retrieve FASTA data. Prefer RefSeq (NM_* for mRNA, NP_* for protein) over other accessions for canonical sequence.\n\nWhen aligned sequences are needed directly, `ensembl_get_homology` with `sequence=\"cdna\"` or `sequence=\"protein\"` is faster than running BLAST. Use BLAST only when Ensembl Compara does not find orthologs.\n\n---\n\n## Phase 4: Functional Annotation Comparison\n\n`UniProt_search` takes a query in UniProt syntax (e.g., `\"gene:TP53 AND organism_id:9606 AND reviewed:true\"`) and `fields` to retrieve specific annotation columns including GO terms. Use `reviewed:true` to restrict to Swiss-Prot curated entries.\n\n`UniProt_get_function_by_accession` takes a UniProt accession and returns a list of function description strings (not a dict).\n\nFor each species being compared, retrieve GO terms and group them by Biological Process (BP), Molecular Function (MF), and Cellular Component (CC). Shared GO terms indicate conserved function; terms present in human but absent in the ortholog may reflect annotation bias (less-studied organisms have fewer GO annotations) rather than true functional divergence. Focus conservation claims on shared terms.\n\n**Reasoning about annotation gaps**: If a mouse ortholog lacks a GO term present in the human protein, consider that this may reflect incomplete annotation of the mouse gene rather than functional divergence. The inverse — a GO term in mouse that is absent in human — is less common but can indicate diverged or acquired function.\n\n---\n\n## Phase 5: Cross-Species Phenotype Bridging\n\n`Monarch_search_gene` (takes `query` as gene symbol) returns gene CURIEs needed for Monarch queries. `Monarch_get_gene_phenotypes` and `Monarch_get_gene_diseases` take a gene CURIE (e.g., \"HGNC:11998\") and return phenotype\u002Fdisease associations spanning multiple species.\n\nPhenotype ontologies by species: Human = HP (HPO), Mouse = MP (Mammalian Phenotype), Zebrafish = ZP, Fly = FBcv. Monarch integrates across species; compare phenotype themes (e.g., \"tumor susceptibility\" in human and \"increased tumor incidence\" in mouse) rather than requiring exact term matches.\n\n**Reasoning for model organism selection**: A mouse ortholog that has a 1:1 relationship AND shows phenotypes in Monarch that recapitulate the human disease is a strong disease model candidate. If the mouse phenotype diverges significantly from the human disease phenotype, this is worth flagging — it could indicate species-specific function or a limitation of the model.\n\n---\n\n## Phase 6: Gene Tree & Evolutionary Context\n\n`EnsemblCompara_get_gene_tree` (takes `gene`, `species`) returns the gene tree members, species distribution, and speciation vs. duplication events. `EnsemblCompara_get_paralogues` returns all paralogs in the source species.\n\nFrom the gene tree, assess: (1) how many species contain a member of this gene family; (2) when gene duplication events occurred (ancient vs. recent); (3) whether the gene family expanded in particular lineages. A gene present in a single copy across all vertebrates (deep conservation, no duplication) is likely under strong selective constraint.\n\n---\n\n## Synthesis Questions\n\nWhen interpreting the assembled evidence, work through these questions:\n\n1. Is the ortholog relationship 1:1 or has duplication created paralogs that may have diverged in function? This determines how directly findings in the model organism translate to the human gene.\n2. Do orthologs share conserved GO terms (especially Biological Process), or are there lineage-specific functional annotations suggesting divergence?\n3. For disease gene studies, does the model organism ortholog recapitulate relevant human phenotypes (via Monarch), supporting its use as a disease model?\n4. Are non-coding regulatory regions around the gene also conserved (PhastCons\u002FGERP from OpenCRAVAT), suggesting conservation of gene regulation beyond protein function?\n5. If no ortholog is found, is the gene truly lineage-specific, or might a highly divergent homolog exist that is only detectable by sensitive sequence methods?\n\n---\n\n## Fallback Strategies\n\n- **Ortholog not found in Ensembl Compara**: Try `ensembl_get_homology`, then `OpenTargets_get_target_homologues_by_ensemblID`, then BLAST as last resort\n- **Sequence retrieval fails**: Use `ensembl_get_homology` with `sequence=\"cdna\"` as alternative to NCBI\n- **UniProt returns empty with reviewed:true**: Try without that filter; organism may have only TrEMBL entries\n- **Monarch returns no data**: Use `MonarchV3_get_associations` with `category=\"biolink:GeneToPhenotypicFeatureAssociation\"` as alternative\n- **Gene symbol ambiguous across species**: Use Ensembl IDs throughout to avoid symbol confusion (e.g., \"p53\" vs \"tp53\" in zebrafish)\n\n---\n\n## Limitations\n\n- **Ensembl Compara**: Best for vertebrates; invertebrate and plant coverage is limited for some gene families\n- **BLAST_protein_search**: Very slow (5-30 min); use only as last resort for ortholog discovery\n- **Monarch**: Phenotype coverage varies by organism; mouse and zebrafish are best covered; fly and worm data are sparser\n- **UniProt GO annotations**: Bias toward well-studied organisms; absence of annotation does not mean absence of function\n- **NCBI_search_nucleotide**: May return many isoforms; filter for RefSeq (NM_*) for canonical transcripts\n- **Conservation does not equal essentiality**: Some highly conserved genes are dispensable in specific organisms\n","# Comparative Genomics & Ortholog Analysis\n\nCross-species gene comparison, ortholog identification, sequence retrieval, and functional conservation analysis integrating Ensembl Compara, NCBI, UniProt, OLS, Monarch, and OpenTargets.\n\n## LOOK UP, DON'T GUESS\nWhen uncertain about any scientific fact, SEARCH databases first (PubMed, UniProt, ChEMBL, ClinVar, etc.) rather than reasoning from memory. A database-verified answer is always more reliable than a guess.\n\n## COMPUTE, DON'T DESCRIBE\nWhen analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.\n\n## When to Use This Skill\n\n**Triggers**:\n- \"Find the mouse ortholog of [human gene]\"\n- \"Compare [gene] across species\"\n- \"Is [gene] conserved in [organism]?\"\n- \"What are the orthologs of [gene]?\"\n- \"Cross-species comparison of [gene\u002Fprotein]\"\n- \"Evolutionary conservation of [gene]\"\n- \"Compare GO annotations between human and mouse [gene]\"\n\n**Use Cases**:\n1. **Ortholog Discovery**: Find equivalent genes in other species for a human gene\n2. **Conservation Analysis**: Assess how conserved a gene is across evolutionary distance\n3. **Functional Comparison**: Compare GO terms, domains, and annotations across orthologs\n4. **Model Organism Selection**: Determine which model organism best recapitulates human gene function\n5. **Gene Tree Analysis**: Visualize evolutionary history of a gene family\n6. **Cross-Species Phenotype Bridging**: Link human disease phenotypes to model organism phenotypes via orthologs\n\n---\n\n## Conservation Reasoning Framework\n\nUnderstanding conservation requires distinguishing between types of evolutionary patterns and what they imply about function.\n\n**High conservation signals functional constraint.** When a gene is maintained as a 1:1 ortholog from yeast to humans, purifying selection has prevented sequence divergence — the gene's function is essential and cannot be easily altered. Highly conserved positions within a protein sequence (high PhastCons scores > 0.8, or GERP RS > 4) are under strong constraint; mutations at these positions are disproportionately pathogenic. For non-coding regions, conservation in mammals at PhastCons > 0.5 suggests a candidate regulatory element.\n\n**Low conservation in one lineage has two possible explanations: relaxed selection or positive selection.** Use the dN\u002FdS ratio (nonsynonymous to synonymous substitution rate) to distinguish them. A dN\u002FdS ratio near 1 suggests neutral evolution — the gene is no longer under purifying selection (relaxed constraint, possibly reflecting loss of function in that lineage). A dN\u002FdS ratio > 1 indicates positive selection — the gene is diverging faster than neutral expectation, often because it is adapting to a new environment or function. A dN\u002FdS ratio \u003C\u003C 1 is the signature of purifying selection (functional constraint). When a vertebrate gene shows high divergence in a specific branch of the tree, ask which explanation applies before concluding that function is lost.\n\n**Ortholog relationship type shapes interpretation.** A 1:1 ortholog (one gene in human, one in mouse) is the highest-confidence functional equivalent — it has not been duplicated in either lineage, so it most likely performs the same ancestral role. A 1:many relationship (one gene in human, multiple in mouse) means the target species has duplicated the gene; the copies may have subfunctionalized (each copy performs a subset of the original roles) or neofunctionalized (one copy gained a new role). Do not assume both copies retain full ancestral function. A many:many relationship reflects complex duplication history in both species and requires analyzing each paralog pair individually.\n\n**Conservation depth predicts essentiality.** A gene conserved across all vertebrates suggests a fundamental cellular process. A gene conserved only in mammals suggests a more specialized vertebrate innovation. A gene present only in primates or only in humans is likely a recent evolutionary acquisition, possibly involved in human-specific biology but often lacking the depth of functional characterization available for deeply conserved genes.\n\n**Absence of an ortholog is a finding, not an error.** Lineage-specific genes exist and are biologically meaningful. Before concluding a gene is lineage-specific, check: (1) whether BLAST with relaxed thresholds finds distant homologs, (2) whether a highly divergent ortholog exists that Ensembl Compara missed, and (3) whether the gene belongs to a rapidly evolving family (immune genes, olfactory receptors, reproductive proteins) where turnover is expected.\n\n---\n\n## Workflow Overview\n\n```\nInput (gene symbol\u002FID + reference species)\n  |\n  v\nPhase 1: Gene Identification & Validation\n  |\n  v\nPhase 2: Ortholog Discovery (Ensembl Compara + OpenTargets)\n  |\n  v\nPhase 3: Sequence Retrieval (NCBI + Ensembl)\n  |\n  v\nPhase 4: Functional Annotation Comparison (UniProt + OLS GO terms)\n  |\n  v\nPhase 5: Cross-Species Phenotype Bridging (Monarch)\n  |\n  v\nPhase 6: Gene Tree & Evolutionary Context (Ensembl Compara)\n  |\n  v\nReport: Conservation summary, ortholog evidence, functional comparison, phenotype bridging\n```\n\n---\n\n## Phase 1: Gene Identification & Validation\n\n`ensembl_lookup_gene` takes `gene_id` (symbol or Ensembl ID). The `species` parameter is REQUIRED when using gene symbols (e.g., `species=\"homo_sapiens\"`); omitting it causes errors. Extract the Ensembl gene ID, description, biotype, and chromosomal coordinates for downstream queries. For non-human references, adjust `species` accordingly (e.g., \"mus_musculus\", \"danio_rerio\").\n\n---\n\n## Phase 2: Ortholog Discovery\n\n`EnsemblCompara_get_orthologues` is the primary tool. It takes `gene` (symbol or Ensembl ID), `species` (source species, default \"human\"), and optionally `target_species` (e.g., \"mouse\", \"zebrafish\") or `target_taxon` (NCBI taxon ID). Omit `target_species` to get all orthologs across the tree; filter client-side for specific species. It returns homology type (one2one, one2many, many2many) and the taxonomy divergence level for each ortholog.\n\n`ensembl_get_homology` is the alternative when you need sequence-level data alongside the ortholog mapping. Use `sequence=\"protein\"` and `aligned=true` for aligned sequence comparison across species.\n\n`OpenTargets_get_target_homologues_by_ensemblID` (takes `ensemblId`) provides supplementary ortholog data from OpenTargets, which can add druggability context and cross-reference with model organism phenotype data.\n\n**Reasoning**: Prioritize 1:1 orthologs as high-confidence functional equivalents. For 1:many cases, report all copies and flag the need for paralog-specific functional analysis. If no Ensembl Compara entry exists, try BLAST as a last resort (note: BLAST protein search against swissprot is slow, 5-30 minutes; against nr may take longer).\n\nKey model organisms to check: mouse (taxon 10090), rat (10116), zebrafish (7955), fruit fly (7227), C. elegans (6239), S. cerevisiae (4932).\n\n---\n\n## Phase 3: Sequence Retrieval\n\nUse `NCBI_search_nucleotide` (takes `organism` as full name, e.g., \"Homo sapiens\"; `gene`; `seq_type` = \"mRNA\") to find sequence records, then `NCBI_fetch_accessions` to convert UIDs to accession numbers, then `NCBI_get_sequence` to retrieve FASTA data. Prefer RefSeq (NM_* for mRNA, NP_* for protein) over other accessions for canonical sequence.\n\nWhen aligned sequences are needed directly, `ensembl_get_homology` with `sequence=\"cdna\"` or `sequence=\"protein\"` is faster than running BLAST. Use BLAST only when Ensembl Compara does not find orthologs.\n\n---\n\n## Phase 4: Functional Annotation Comparison\n\n`UniProt_search` takes a query in UniProt syntax (e.g., `\"gene:TP53 AND organism_id:9606 AND reviewed:true\"`) and `fields` to retrieve specific annotation columns including GO terms. Use `reviewed:true` to restrict to Swiss-Prot curated entries.\n\n`UniProt_get_function_by_accession` takes a UniProt accession and returns a list of function description strings (not a dict).\n\nFor each species being compared, retrieve GO terms and group them by Biological Process (BP), Molecular Function (MF), and Cellular Component (CC). Shared GO terms indicate conserved function; terms present in human but absent in the ortholog may reflect annotation bias (less-studied organisms have fewer GO annotations) rather than true functional divergence. Focus conservation claims on shared terms.\n\n**Reasoning about annotation gaps**: If a mouse ortholog lacks a GO term present in the human protein, consider that this may reflect incomplete annotation of the mouse gene rather than functional divergence. The inverse — a GO term in mouse that is absent in human — is less common but can indicate diverged or acquired function.\n\n---\n\n## Phase 5: Cross-Species Phenotype Bridging\n\n`Monarch_search_gene` (takes `query` as gene symbol) returns gene CURIEs needed for Monarch queries. `Monarch_get_gene_phenotypes` and `Monarch_get_gene_diseases` take a gene CURIE (e.g., \"HGNC:11998\") and return phenotype\u002Fdisease associations spanning multiple species.\n\nPhenotype ontologies by species: Human = HP (HPO), Mouse = MP (Mammalian Phenotype), Zebrafish = ZP, Fly = FBcv. Monarch integrates across species; compare phenotype themes (e.g., \"tumor susceptibility\" in human and \"increased tumor incidence\" in mouse) rather than requiring exact term matches.\n\n**Reasoning for model organism selection**: A mouse ortholog that has a 1:1 relationship AND shows phenotypes in Monarch that recapitulate the human disease is a strong disease model candidate. If the mouse phenotype diverges significantly from the human disease phenotype, this is worth flagging — it could indicate species-specific function or a limitation of the model.\n\n---\n\n## Phase 6: Gene Tree & Evolutionary Context\n\n`EnsemblCompara_get_gene_tree` (takes `gene`, `species`) returns the gene tree members, species distribution, and speciation vs. duplication events. `EnsemblCompara_get_paralogues` returns all paralogs in the source species.\n\nFrom the gene tree, assess: (1) how many species contain a member of this gene family; (2) when gene duplication events occurred (ancient vs. recent); (3) whether the gene family expanded in particular lineages. A gene present in a single copy across all vertebrates (deep conservation, no duplication) is likely under strong selective constraint.\n\n---\n\n## Synthesis Questions\n\nWhen interpreting the assembled evidence, work through these questions:\n\n1. Is the ortholog relationship 1:1 or has duplication created paralogs that may have diverged in function? This determines how directly findings in the model organism translate to the human gene.\n2. Do orthologs share conserved GO terms (especially Biological Process), or are there lineage-specific functional annotations suggesting divergence?\n3. For disease gene studies, does the model organism ortholog recapitulate relevant human phenotypes (via Monarch), supporting its use as a disease model?\n4. Are non-coding regulatory regions around the gene also conserved (PhastCons\u002FGERP from OpenCRAVAT), suggesting conservation of gene regulation beyond protein function?\n5. If no ortholog is found, is the gene truly lineage-specific, or might a highly divergent homolog exist that is only detectable by sensitive sequence methods?\n\n---\n\n## Fallback Strategies\n\n- **Ortholog not found in Ensembl Compara**: Try `ensembl_get_homology`, then `OpenTargets_get_target_homologues_by_ensemblID`, then BLAST as last resort\n- **Sequence retrieval fails**: Use `ensembl_get_homology` with `sequence=\"cdna\"` as alternative to NCBI\n- **UniProt returns empty with reviewed:true**: Try without that filter; organism may have only TrEMBL entries\n- **Monarch returns no data**: Use `MonarchV3_get_associations` with `category=\"biolink:GeneToPhenotypicFeatureAssociation\"` as alternative\n- **Gene symbol ambiguous across species**: Use Ensembl IDs throughout to avoid symbol confusion (e.g., \"p53\" vs \"tp53\" in zebrafish)\n\n---\n\n## Limitations\n\n- **Ensembl Compara**: Best for vertebrates; invertebrate and plant coverage is limited for some gene families\n- **BLAST_protein_search**: Very slow (5-30 min); use only as last resort for ortholog discovery\n- **Monarch**: Phenotype coverage varies by organism; mouse and zebrafish are best covered; fly and worm data are sparser\n- **UniProt GO annotations**: Bias toward well-studied organisms; absence of annotation does not mean absence of function\n- **NCBI_search_nucleotide**: May return many isoforms; filter for RefSeq (NM_*) for canonical transcripts\n- **Conservation does not equal essentiality**: Some highly conserved genes are dispensable in specific organisms\n",{"name":5,"description":7},"main","a298c929b6cbd662e1fce54302ce520d5ceea1a5",".agents\u002Flibrary\u002Fskills\u002Ftooluniverse-comparative-genomics","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain","https:\u002F\u002Fgithub.com\u002FPrekzursil","2026-11-02 14:30:57",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add Prekzursil\u002Fagent-skills-toolchain --skill tooluniverse-comparative-genomics",{"tool":45,"command":46},"bunx","bunx skills add Prekzursil\u002Fagent-skills-toolchain --skill tooluniverse-comparative-genomics",{"tool":48,"command":49},"pnpm","pnpm dlx skills add Prekzursil\u002Fagent-skills-toolchain --skill tooluniverse-comparative-genomics","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Flibrary\u002Fskills\u002Ftooluniverse-comparative-genomics\u002FSKILL.md",true,[],[54,75,106,133,147,163],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":28},"01M6DF7D7478R55P46REYH4QAC","clarify-requirements","Resolve genuine pre-execution ambiguity by scanning repo context, generating 1-6 grounded options, and asking 1-3 focused questions via AskUserQuestion. NOT for mid-task use (injection risk); NOT when the goal is already unambiguous; use to disambiguate vague prompts before any file edits.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fworkspace-hooks\u002Fskills\u002Fclarify-requirements\u002FSKILL.md",[],[61,62,63,64,65,66,67,68,69,25,70,71,72,73,74],"clarify requirements","clarify","requirements","risk","options","task","prompts","goal","scanning","context","repo","injection","execution","file",{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":86,"publishedAt":28},"01M6DF79CA4BHJS66J8EZDBPWJ","openmm-md","Run FREE, open-source, Windows-native GPU molecular dynamics via the openmm-md MCP (OpenMM + CUDA on the local NVIDIA GPU). Use for protein \u002F protein-ligand MD when you want a free stack or are on Windows without a Schrodinger license. Covers the full workflow (prepare, solvate, minimize, equilibrate, production, analyze, mmgbsa) AND an honest decision guide vs Schrodinger Desmond, including how to run Desmond legitimately on Linux or a cloud GPU with a real license. This is a deliberately LESSER free alternative and does NOT replace the schrodinger MCP tools. Do NOT use it to pick a free tool when a validated FEP+, WaterMap, IFD-MD, or Prime MM-GBSA result is actually required.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fmcp\u002Fopenmm-md-mcp\u002Fskill\u002Fopenmm-md\u002FSKILL.md",[81],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[87,88,89,90,91,92,93,94,95,96,97,98,99,100,25,101,102,103,104,105],"openmm md","how","decision","pick","linux","analyze","tool","stack","open","NVIDIA","gpu","license","workflow","windows","free","molecular dynamics","local","do","MCP",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":118,"publishedAt":28},"01M6DF76C1MG85VEWP8VZCBNMN","visual-review","Take screenshots of web pages and UI using Playwright for visual review and iteration","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fvisual-review\u002FSKILL.md",[112,115],{"categoryNo":113,"categoryName":114,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":116,"categoryName":117,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000008","测试与质量",[119,120,121,122,123,124,125,126,127,128,88,129,130,131,132],"review","visual","visual review","pages","web","false","iteration","take","check","slides","ui","screenshot","playwright","screenshots",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":28},"01M6DF73AQVCBZKEN0YXEX9FXP","status","Diagnostic status report — shows metaswarm installation state, project setup, and potential issues","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstatus\u002FSKILL.md",[],[135,140,141,142,143,144,145,146],"setup","report","project","installation","project setup","issues","state",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":154,"publishedAt":28},"01M6DF6X6C2XB0P6GX76P7TTYV","start","Use when starting work on any task, when the user mentions metaswarm, or when the user wants to begin tracked development work","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstart\u002FSKILL.md",[153],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},[149,155,66,156,157,158,25,159,160,161,162],"start issue","issue","ready","work on issue","user","work","work on","development",{"skillNo":164,"name":140,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":168,"publishedAt":28},"01M6DF6QMJ9AJKFKHHKRT005PQ","Interactive project setup — detects your project, configures metaswarm, writes project-local files","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fsetup\u002FSKILL.md",[],[140,142,103,169,144,170],"files","interactive"]