mcpField
P
phylogenetics

phylogenetics

github.com/k-dense-aiデータ・データベース55.1k1.9k 回インストール2 日前に更新
リポジトリ

phylogenetics について

phylogenetics は、相同な遺伝子またはタンパク質配列を解析する研究者向けのワークフロースキルです。MAFFT、IQ-TREE、FastTree、ETE3 を組み合わせ、アラインメントから系統樹推定、支持度の確認、可視化まで行います。

主な機能

  1. 01MAFFT による配列アラインメント
  2. 02IQ-TREE または FastTree による樹形推定
  3. 03枝の支持度の計算
  4. 04樹形の枝統計の集計
  5. 05ETE3 による系統樹の描画

活用シーン

  1. 01相同配列からの遺伝子系統樹の作成
  2. 02IQ-TREE と FastTree の推定結果の比較
  3. 03枝の支持度の確認と樹形図の作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/k-dense-ai/scientific-agent-skills --skill phylogenetics

インストール後、Claude Code で/phylogeneticsを入力して読み込まれたか確認します。

同梱ファイルreferences/iqtree_inference.mdscripts/phylogenetic_analysis.py

詳細

系統解析

使用する場面

このワークフローは、相同な遺伝子座またはタンパク質のアラインメント、遺伝子系統樹、 分岐支持率、および解釈可能な系統樹図に使用します。マルチローカスの分割、 コンコーダンスファクター、祖先状態、および年代推定については、 IQ-TREE リファレンスで扱います。

遺伝子系統樹は、それ自体では種系統樹、伝播方向、または水平伝播を 証明するものではありません。サンプリング日だけでは分子時計を正当化できません。

バージョンとインストール

2026-10-01 時点の最新の公式ドキュメントに対して確認済みです。実行した スモークワークフローでは、Python 3.12 上で MAFFT 7.526、IQ-TREE 3.1.4、FastTree 2.2.0、 ETE3 3.1.3 を使用しました。ETE3 はこのヘルパーでは意図的に選択されています。ETE4 は 別の API であり、ドロップイン置換ではありません。ETE3 は cgi をインポートしますが、これは Python 3.13 で削除されました。ネイティブ実行ファイルは Python パッケージではありません。

インストールコマンドの例です。インストール後に実行ファイルのバージョンを確認してください:

conda create -n phylo -c conda-forge -c bioconda mafft iqtree fasttree trimal
conda activate phylo
uv venv --python 3.12 .venv-phylo
uv pip install --python .venv-phylo/bin/python ete3==3.1.3 numpy six
# Optional rendering backend; it can require a working Qt platform plugin.
uv pip install --python .venv-phylo/bin/python PyQt5

ヘルパーはデフォルトで iqtree3 と FastTree を使用します。既存の IQ-TREE 2 インストールを 使用する場合は --iqtree-bin iqtree2 を、インストール名がその場合は --fasttree-bin fasttree を 使用します。バージョン 2 の互換性はソースで確認済みであり、この更新では 実行時テストは行われていません。すべての解析はローカルです。このスキルは HTTP API や リモート推論エンドポイントを呼び出しません。

ワークフロー

1. 生物学的入力を確立する
  • 適切な分類群カバレッジを持つ相同配列を選択してください。単一の履歴がすべてのサイトを 説明すると仮定する前に、パラログ、コンタミネーション、および組換えを調査してください。
  • 一意で空白を含まない FASTA ID を使用し、別のサンプルメタデータテーブルを保持してください。 ヘルパーは空のレコードまたはすべて欠損のレコード、および ID 内の Newick 句読点を拒否します。
  • --type nt または --type aa を指定してください。ヘルパーは -st DNA または -st AA を IQ-TREE に送信し、ヌクレオチド/タンパク質の FastTree フラグを明示的に選択します。
  • コドンモデルを使用する場合、コーディング DNA にはコドンを考慮したアラインメントが必要です。 通常の MAFFT ヌクレオチドアラインメントはリーディングフレームを自動的に保持しません。
  • 元の配列、アクセッションバージョン、フィルター、アラインメント、および正確な コマンドを保持してください。アラインメントの長さ、ギャップ、組成、および分類群の同一性を確認してください。
2. アラインメントと検査

これらの MAFFT コマンドは、小さな合成 FASTA データで実行されました:

mafft --auto --thread 1 --inputorder sequences.fasta > aligned.fasta
# L-INS-i: locally alignable homologs, typically small datasets.
mafft --localpair --maxiterate 1000 --thread 1 --inputorder sequences.fasta > linsi.fasta
# E-INS-i: homologs with large internal gaps.
mafft --genafpair --maxiterate 1000 --thread 1 --inputorder sequences.fasta > einsi.fasta
# FFT-NS-i (two refinement cycles), then FFT-NS-2 (progressive).
mafft --retree 2 --maxiterate 2 --thread 1 --inputorder sequences.fasta > fftnsi.fasta
mafft --retree 2 --maxiterate 0 --thread 1 --inputorder sequences.fasta > fftns.fasta

auto は選択を MAFFT に委ねます。配列数だけが精度の基準ではありません。シングルスレッド実行は 再現性を簡素化します。マルチスレッドでの MAFFT 反復改善は、実行間で異なる結果を 生成する可能性があります。

トリミングはオプションであり、すべての系統樹を改善すると仮定するのではなく、 アラインメント品質によって正当化される必要があります。以下の trimAl コマンドは ドキュメントで確認された例です。trimAl はこのレビューではインストールされていません:

trimal -in aligned.fasta -out trimmed.fasta -automated1 -fasta

保持されたカラム/分類群を記録し、トリミングに対する感度を比較してください。失敗したトリムは トリミングステップを停止する必要があります。「トリミング済み」ファイル名で未トリミングの 入力を黙ってコピーしないでください。バンドルされたヘルパーは自動的にトリミングしません。

3. 系統樹を推論する

サブプロセスラッパーを再作成する代わりに、保守されているヘルパーを使用してください。スキル ディレクトリから、実行ファイル名が PATH にある状態で:

python scripts/phylogenetic_analysis.py sequences.fasta --type nt --threads 1 \
  --bootstrap 1000 --seed 42 --output-dir results --no-visualization
# Use a reviewed alignment (including any explicit trimming) without realigning.
python scripts/phylogenetic_analysis.py aligned.fasta --aligned --type nt \
  --threads 1 --output-dir reviewed --no-visualization
# Protein FastTree alternative; --threads applies to MAFFT/IQ-TREE, not FastTree.
python scripts/phylogenetic_analysis.py proteins.fasta --type aa --fasttree \
  --threads 1 --output-dir fast_protein --no-visualization

標準的な IQ-TREE コマンドは -m MFP(FreeRate モデルを含む ModelFinder)、 -B 1000(UFBoot)、および --alrt 1000 を使用します。-m TEST は引き続きサポートされていますが、 より狭いモデルセットを検索します。科学的に正当化された固定モデルには --model を 使用してください。IQ-TREE チェックポイントは保持されます。--redo は明示的に再起動し、 結果を置き換えます。データまたはモデルの仮定が変更された場合は、新しい出力プレフィックスを 使用してください。

FastTree は DNA には -nt -gtr -gamma を、タンパク質には -lg -gamma を使用します。その検索は Gamma20 再スケーリングの前に CAT 近似を使用します。完全な Gamma モデル ML 検索ではありません。JTT は FastTree のタンパク質デフォルトです(-jtt フラグなし)。 ヌクレオチド JC は -gtr なしの -nt で選択されます。FastTree はデフォルトで SH ライクなローカル支持率を 0〜1 の範囲で使用し、UFBoot パーセンテージではありません。 推論ツールを選択するには、普遍的な分類群しきい値ではなく、ワークロードベースの ベンチマークを使用してください。

4. サポート、ルート、出力の解釈

画像だけでなく、.iqtree と .log も読み取ってください。デフォルトの統合テストでは、 IQ-TREE はスラッシュ区切りの SH-aLRT/UFBoot ラベルを書き出すため、レポート内でその順序を確認してください。 UFBoot >=95 および SH-aLRT >=80 は一般的なスクリーニングのしきい値であり、正確性の証明や事後確率ではありません。 UFBoot に標準ブートストラップの 70% ルールを適用しないでください。モデルの誤指定、アラインメントの誤り、サンプリングによって、 強く支持された誤った分岐が生じることがあります。モデル違反と UFBoot の過大評価を評価する際は -bnni を検討してください。

可逆置換モデルは進化的ルートを推定しません。ヘルパーは、明示的な --outgroup または --midpoint の表示選択が行われない限り、提供されたツリーの向きを保持します。外群は生物学的に選択してください。 midpoint ルーティングは十分に時計のような経路長を仮定しており、単なるヒューリスティックです。 --outgroup は 1 つの分類群を IQ-TREE に渡し、それが存在することを検証します。表示上の再ルーティングは、 その分岐上のサポートラベルを保持します。どちらの表示オプションも、日付付き系統樹を作成したり、 元の推定ツリーを上書きしたりしません。

主要な出力は <prefix>.treefile (IQ-TREE) または <prefix>.tree (FastTree)、 アラインメント、および IQ-TREE の .iqtree、.log、.ckp.gz、さらにオプションのサポート ファイルです。.model.gz はモデル選択の作業をキャッシュします; これは推定されたモデル パラメータのレポートではありません。これらの成果物は一緒に保管してください。

5. 要約と可視化

ETE は統合された IQ-TREE ラベルを format=1 の内部 names として読み取る必要があります; そのデフォルトの数値サポートパーサーは 95.2/99 を解析できません。ヘルパーは ETE のデフォルトのサポート値ではなく、元のテキストラベルをレンダリングします。分岐統計は、 再ルーティングせずに、ゼロ長のエッジを含むすべての元の非ルートエッジを使用します。

# Run from the skill directory in the ETE3 environment.
import sys
sys.path.insert(0, "scripts")
from phylogenetic_analysis import load_tree, tree_summary

tree = load_tree("results/sequences.treefile")
print(tree.get_leaf_names())
print(tree_summary("results/sequences.treefile"))

レンダリングを要求するには、--no-visualization を省略してください。ETE3 には PyQt5 が必要です; ヘッドレス ホストでは、適切な Qt プラットフォームプラグインが利用可能でなければなりません。レンダリング サポートが欠けている場合、推定ツリーはそのまま残り、明示的に報告されます。Qt レンダリング はこのレビューでは実行されませんでした。FigTree または iTOL も Newick を表示できます; ビューアが サポートラベルと分岐長スケールを保持していることを確認してください。

公式リファレンス

コメント