Token导航 LogoToken导航TokenDH.com
研究检索只读github未标认证来源可访问许可证需确认审计通过

tooluniverse-phylogenetics工具宇宙系统发育学

Agent Skill

tooluniverse-phylogenetics 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

279

周安装

12

GitHub Stars

971

下载量

98
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:tooluniverse-phylogenetics(工具宇宙系统发育学)
来源仓库:https://github.com/wu-yc/labclaw
仓库路径:skills/tooluniverse-phylogenetics
安装命令:
npx skills add https://github.com/wu-yc/labclaw --skill tooluniverse-phylogenetics
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/wu-yc/labclaw --skill tooluniverse-phylogenetics

简介

用于系统发育学数据检索,支持在进化生物学中获取物种关系和保守序列信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中执行基因家族演化分析和分类树构建任务。
  • 通过 npx skills add 命令从 GitHub 安装,需确认仓库权限及是否涉及网络访问或外部 API 调用。
  • 建议在使用前核实数据来源更新频率,避免依赖过期或未经验证的信息。
  • 注意该技能主要用于信息检索,不直接提供分析结果,需结合上下文进行解读和应用。

SKILL.md

Phylogenetics and Sequence Analysis

Comprehensive phylogenetics and sequence analysis using PhyKIT, Biopython, and DendroPy. Designed for bioinformatics questions about multiple sequence alignments, phylogenetic trees, parsimony, molecular evolution, and comparative genomics.

IMPORTANT: This skill handles complex phylogenetic workflows. Most implementation details have been moved to references/ for progressive disclosure. This document focuses on high-level decision-making and workflow orchestration.


When to Use This Skill

Apply when users:

  • Have FASTA alignment files and ask about parsimony informative sites, gaps, or alignment quality
  • Have Newick tree files and ask about treeness, tree length, evolutionary rate, or DVMC
  • Ask about treeness/RCV, RCV, or relative composition variability
  • Need to compare phylogenetic metrics between groups (fungi vs animals, etc.)
  • Ask about PhyKIT functions (treeness, rcv, dvmc, evo_rate, parsimony_informative, tree_length)
  • Have gene family data with paired alignments and trees
  • Need Mann-Whitney U tests or other statistical comparisons of phylogenetic metrics
  • Ask about bootstrap support, branch lengths, or tree topology
  • Need to build trees (NJ, UPGMA, parsimony) from alignments
  • Ask about Robinson-Foulds distance or tree comparison

BixBench Coverage: 33 questions across 8 projects (bix-4, bix-11, bix-12, bix-25, bix-35, bix-38, bix-45, bix-60)

NOT for (use other skills instead):

  • Multiple sequence alignment generation → Use external tools (MUSCLE, MAFFT, ClustalW)
  • Maximum Likelihood tree construction → Use IQ-TREE, RAxML, or PhyML
  • Bayesian phylogenetics → Use MrBayes or BEAST
  • Ancestral state reconstruction → Use separate tools

Core Principles

  1. Data-first approach - Discover and validate all input files (alignments, trees) before any analysis
  2. PhyKIT-compatible - Use PhyKIT functions for treeness, RCV, DVMC, parsimony, evolutionary rate (matches BixBench expected outputs)
  3. Format-flexible - Support FASTA, PHYLIP, Nexus, Newick, and auto-detect formats
  4. Batch processing - Process hundreds of gene alignments/trees in a single analysis
  5. Statistical rigor - Mann-Whitney U, medians, percentiles, standard deviations with scipy.stats
  6. Precision awareness - Match rounding to 4 decimal places (PhyKIT default) or as requested
  7. Group comparison - Compare metrics between taxa groups (e.g., fungi vs animals)
  8. Question-driven - Parse exactly what is asked and return the specific number/statistic

Required Python Packages

# Core (MUST be installed)
import numpy as np
import pandas as pd
from scipy import stats
from Bio import AlignIO, Phylo, SeqIO
from Bio.Phylo.TreeConstruction import DistanceCalculator, DistanceTreeConstructor

# PhyKIT (primary computation engine)
from phykit.services.tree.treeness import Treeness
from phykit.services.tree.total_tree_length import TotalTreeLength
from phykit.services.tree.evolutionary_rate import EvolutionaryRate
from phykit.services.tree.dvmc import DVMC
from phykit.services.tree.treeness_over_rcv import TreenessOverRCV
from phykit.services.alignment.parsimony_informative_sites import ParsimonyInformative
from phykit.services.alignment.rcv import RelativeCompositionVariability

# DendroPy (for advanced tree operations)
import dendropy

# ToolUniverse (for sequence retrieval)
from tooluniverse import ToolUniverse

Installation:

pip install phykit dendropy biopython pandas numpy scipy

High-Level Workflow Decision Tree

START: User question about phylogenetic data
│
├─ Q1: What type of analysis is needed?
│  │
│  ├─ ALIGNMENT ANALYSIS (FASTA/PHYLIP files)
│  │  ├─ Parsimony informative sites → phykit_parsimony_informative()
│  │  ├─ RCV score → phykit_rcv()
│  │  ├─ Gap percentage → alignment_gap_percentage()
│  │  ├─ GC content → alignment_statistics()
│  │  └─ See: references/sequence_alignment.md
│  │
│  ├─ TREE ANALYSIS (Newick files)
│  │  ├─ Treeness → phykit_treeness()
│  │  ├─ Tree length → phykit_tree_length()
│  │  ├─ Evolutionary rate → phykit_evolutionary_rate()
│  │  ├─ DVMC → phykit_dvmc()
│  │  ├─ Bootstrap support → extract_bootstrap_support()
│  │  └─ See: references/tree_building.md
│  │
│  ├─ COMBINED ANALYSIS (alignment + tree)
│  │  └─ Treeness/RCV → phykit_treeness_over_rcv()
│  │
│  ├─ TREE CONSTRUCTION (build from alignment)
│  │  ├─ Neighbor-Joining → build_nj_tree()
│  │  ├─ UPGMA → build_upgma_tree()
│  │  ├─ Parsimony → build_parsimony_tree()
│  │  └─ See: references/tree_building.md
│  │
│  ├─ GROUP COMPARISON (fungi vs animals, etc.)
│  │  ├─ Batch compute metrics per group
│  │  ├─ Mann-Whitney U test
│  │  ├─ Summary statistics (median, mean, percentiles)
│  │  └─ See: references/parsimony_analysis.md
│  │
│  └─ TREE COMPARISON
│     ├─ Robinson-Foulds distance → robinson_foulds_distance()
│     └─ Bootstrap consensus → bootstrap_analysis()
│
├─ Q2: What data format is available?
│  ├─ FASTA (.fa, .fasta, .faa, .fna)
│  ├─ PHYLIP (.phy, .phylip) - Use phylip-relaxed for long names
│  ├─ Nexus (.nex, .nexus)
│  ├─ Newick (.nwk, .newick, .tre, .tree)
│  └─ Auto-detect with load_alignment() or load_tree()
│
└─ Q3: Is this a batch analysis?
   ├─ Single gene → Run metric function once
   ├─ Multiple genes → Use batch_compute_metric()
   └─ Group comparison → Use discover_gene_files() + compare_groups()

Quick Reference: Common Metrics

MetricFunctionInputDescription
Treenessphykit_treeness(tree_file)NewickInternal branch length / Total branch length
RCVphykit_rcv(aln_file)FASTA/PHYLIPRelative Composition Variability
Treeness/RCVphykit_treeness_over_rcv(tree, aln)BothTreeness divided by RCV
Tree Lengthphykit_tree_length(tree_file)NewickSum of all branch lengths
Evolutionary Ratephykit_evolutionary_rate(tree_file)NewickTotal branch length / num terminals
DVMCphykit_dvmc(tree_file)NewickDegree of Violation of Molecular Clock
Parsimony Sitesphykit_parsimony_informative(aln_file)FASTA/PHYLIPSites with ≥2 chars appearing ≥2 times
Gap Percentagealignment_gap_percentage(aln_file)FASTA/PHYLIPPercentage of gap characters

See scripts/tree_statistics.py for implementation.


Common Analysis Patterns (BixBench)

Pattern 1: Single Metric Across Groups

Question: "What is the median DVMC for fungi vs animals?"

Workflow:

# 1. Discover files
fungi_genes = discover_gene_files("data/fungi")
animal_genes = discover_gene_files("data/animals")

# 2. Compute metric
fungi_dvmc = batch_dvmc(fungi_genes)
animal_dvmc = batch_dvmc(animal_genes)

# 3. Compare
fungi_values = list(fungi_dvmc.values())
animal_values = list(animal_dvmc.values())

print(f"Fungi median DVMC: {np.median(fungi_values):.4f}")
print(f"Animal median DVMC: {np.median(animal_values):.4f}")

See: references/parsimony_analysis.md for full implementation

Pattern 2: Statistical Comparison

Question: "What is the Mann-Whitney U statistic comparing treeness between groups?"

Workflow:

from scipy import stats

# Compute treeness for both groups
group1_treeness = batch_treeness(group1_genes)
group2_treeness = batch_treeness(group2_genes)

# Mann-Whitney U test (two-sided)
u_stat, p_value = stats.mannwhitneyu(
    list(group1_treeness.values()),
    list(group2_treeness.values()),
    alternative='two-sided'
)

print(f"U statistic: {u_stat:.0f}")
print(f"P-value: {p_value:.4e}")

Pattern 3: Filtering + Metric

Question: "What is the treeness/RCV for alignments with <5% gaps?"

Workflow:

# 1. Filter by gap percentage
valid_genes = []
for entry in gene_files:
    if 'aln_file' in entry:
        gap_pct = alignment_gap_percentage(entry['aln_file'])
        if gap_pct < 5.0:
            valid_genes.append(entry)

# 2. Compute metric on filtered set
results = batch_treeness_over_rcv(valid_genes)

# 3. Report
values = [r[0] for r in results.values()]  # treeness/rcv ratio
print(f"Median treeness/RCV: {np.median(values):.4f}")

Pattern 4: Specific Gene Lookup

Question: "What is the evolutionary rate for gene X?"

Workflow:

# Find gene file
gene_files = discover_gene_files("data/")
gene_entry = [g for g in gene_files if g['gene_id'] == 'X'][0]

# Compute metric
evo_rate = phykit_evolutionary_rate(gene_entry['tree_file'])

print(f"Evolutionary rate for gene X: {evo_rate:.4f}")

Choosing Methods: When to Use What

Alignment Methods

When building alignments (use external tools, not this skill):

MethodSpeedAccuracyUse Case
ClustalWSlowMediumSmall datasets (<100 sequences), educational
MUSCLEFastHighMedium datasets (100-1000 sequences)
MAFFTVery FastVery HighRecommended - Large datasets (>1000 sequences)

For this skill: Work with pre-aligned sequences. Use load_alignment() to read any format.

Tree Building Methods

When to use which tree method:

MethodSpeedAccuracyUse Case
Neighbor-JoiningFastMediumQuick trees, large datasets, exploratory
UPGMAFastLowAssumes molecular clock, special cases only
Maximum ParsimonyMediumMediumSmall datasets, discrete characters
Maximum LikelihoodSlowHighUse external tools (IQ-TREE, RAxML) for production

Implementation in this skill:

# Fast distance-based trees
tree = build_nj_tree("alignment.fa")  # Neighbor-Joining
tree = build_upgma_tree("alignment.fa")  # UPGMA

# Parsimony (for small alignments)
tree = build_parsimony_tree("alignment.fa")

For production ML trees: Use IQ-TREE or RAxML externally, then analyze with this skill.

See references/tree_building.md for detailed implementations.


Batch Processing

Discovering Gene Files

# Auto-discover paired alignment + tree files
gene_files = discover_gene_files("data/")

# Result: list of dicts with 'gene_id', 'aln_file', 'tree_file'
# [
#   {'gene_id': 'gene1', 'aln_file': 'gene1.fa', 'tree_file': 'gene1.nwk'},
#   {'gene_id': 'gene2', 'aln_file': 'gene2.fa', 'tree_file': 'gene2.nwk'},
#   ...
# ]

Computing Metrics in Batch

# Tree metrics
treeness_results = batch_treeness(gene_files)
tree_length_results = batch_tree_length(gene_files)
dvmc_results = batch_dvmc(gene_files)
evo_rate_results = batch_evolutionary_rate(gene_files)

# Alignment metrics
rcv_results = batch_rcv(gene_files)
pi_results = batch_parsimony_informative(gene_files)
gap_results = batch_gap_percentage(gene_files)

# Combined metrics
treeness_rcv_results = batch_treeness_over_rcv(gene_files)

# All return dict: {gene_id: value}

Statistical Analysis

# Summary statistics
stats = summary_stats(list(treeness_results.values()))
# Returns: {'mean': ..., 'median': ..., 'std': ..., 'min': ..., 'max': ...}

# Group comparison
comparison = compare_groups(
    list(fungi_treeness.values()),
    list(animal_treeness.values()),
    group1_name="Fungi",
    group2_name="Animals"
)
# Returns: {'u_statistic': ..., 'p_value': ..., 'Fungi': {...}, 'Animals': {...}}

See references/parsimony_analysis.md for full workflow.


Answer Extraction for BixBench

Question PatternExtraction Method
"What is the median X?"np.median(values)
"What is the maximum X?"np.max(values)
"What is the difference between median X for A vs B?"abs(np.median(a) - np.median(b))
"What percentage of X have Y above Z?"sum(v > Z for v in values) / len(values) * 100
"What is the Mann-Whitney U statistic?"stats.mannwhitneyu(a, b)[0]
"What is the p-value?"stats.mannwhitneyu(a, b)[1]
"What is the X value for gene Y?"results[gene_id]
"What is the fold-change in median X?"np.median(a) / np.median(b)
"multiplied by 1000"round(value * 1000)

Rounding Rules

  • PhyKIT default: 4 decimal places
  • Percentages: Match question format (e.g., "35%" → integer, "3.5%" → 1 decimal)
  • P-values: Scientific notation for very small values
  • U statistics: Integer (no decimals)
  • Always check question wording: "rounded to 3 decimal places" overrides defaults

BixBench Question Coverage

ProjectQuestionsMetrics
bix-47DVMC analysis (fungi vs animals)
bix-116Treeness analysis (median, percentages, Mann-Whitney U)
bix-125Parsimony informative sites (counts, percentages, ratios)
bix-252Treeness/RCV with gap filtering
bix-354Evolutionary rate (specific genes, comparisons)
bix-385Tree length (fold-change, variance, paired ratios)
bix-454RCV (Mann-Whitney U, medians, paired differences)
bix-601Average treeness across multiple trees

ToolUniverse Integration

Sequence Retrieval

from tooluniverse import ToolUniverse

tu = ToolUniverse()
tu.load_tools()

# Get sequences from NCBI
result = tu.tools.NCBI_get_sequence(accession="NP_000546")

# Get gene tree from Ensembl
tree_result = tu.tools.EnsemblCompara_get_gene_tree(gene="ENSG00000141510")

# Get species tree from OpenTree
tree_result = tu.tools.OpenTree_get_induced_subtree(ott_ids="770315,770319")

File Structure

tooluniverse-phylogenetics/
├── SKILL.md                           # This file (workflow orchestration)
├── QUICK_START.md                     # Quick reference
├── test_phylogenetics.py             # Comprehensive test suite
├── references/
│   ├── sequence_alignment.md         # Alignment analysis details
│   ├── tree_building.md              # Tree construction methods
│   ├── parsimony_analysis.md         # Statistical comparison workflows
│   └── troubleshooting.md            # Common issues and solutions
└── scripts/
    ├── format_alignment.py           # Alignment format conversion
    └── tree_statistics.py            # Core metric implementations

Completeness Checklist

Before returning your answer, verify:

  • Identified all input files (alignments and/or trees)
  • Detected group structure (fungi/animals/etc.) if applicable
  • Used correct PhyKIT function for the requested metric
  • Processed ALL genes in each group (not just a sample)
  • Applied correct statistical test if comparison requested
  • Used correct rounding (4 decimals default, or as specified)
  • Returned the specific statistic asked for (median, max, U stat, p-value, etc.)
  • For percentage questions, confirmed whether answer is integer or decimal
  • For "difference" questions, confirmed direction (A - B vs abs difference)
  • For Mann-Whitney U, used alternative='two-sided' (default in scipy)

Next Steps

  • For detailed alignment analysis workflows → See references/sequence_alignment.md
  • For tree construction methods → See references/tree_building.md
  • For statistical comparison examples → See references/parsimony_analysis.md
  • For common errors and solutions → See references/troubleshooting.md
  • For script implementations → See scripts/tree_statistics.py

Support

For issues with:

License

Same as ToolUniverse framework license.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

37.11%
按下载量换算36

Claude

29.8%
按下载量换算29

Cursor

19.93%
按下载量换算20

Gemini CLI

10.52%
按下载量换算10

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills