scikit-bio
生物学的データ解析ツールキット。塩基配列解析・アライメント・系統樹構築・多様性指標(アルファ/ベータ、UniFrac)・序列化(PCoA)・PERMANOVA・FASTA/Newick形式の入出力など、マイクロバイオーム解析に必要な機能を幅広く提供します。
description の原文を見る
Biological data toolkit. Sequence analysis, alignments, phylogenetic trees, diversity metrics (alpha/beta, UniFrac), ordination (PCoA), PERMANOVA, FASTA/Newick I/O, for microbiome analysis.
SKILL.md 本文
scikit-bio
概要
scikit-bioは、生物学的データを扱うための包括的なPythonライブラリです。配列操作、アラインメント、系統遺伝学、微生物生態学、多変量統計にまたがるバイオインフォマティクス解析に本スキルを適用してください。
このスキルを使用する場合
以下の場合にこのスキルを使用してください:
- 生物学的配列(DNA、RNA、タンパク質)を扱う
- 生物学的ファイル形式(FASTA、FASTQ、GenBank、Newick、BIOM等)の読み書きが必要
- 配列アラインメントやモチーフ検索を実行する
- 系統樹を構築または解析する
- 多様性指標(アルファ/ベータ多様性、UniFrac距離)を計算する
- 序列化解析(PCoA、CCA、RDA)を実行する
- 生物学的/生態学的データに対する統計検定を実行する(PERMANOVA、ANOSIM、Mantel)
- マイクロバイオームまたはコミュニティー生態学データを解析する
- 言語モデルからのタンパク質埋め込みを扱う
- 生物学的データテーブルを操作する必要がある
コア機能
1. 配列操作
DNA、RNA、タンパク質データ用の特殊なクラスを使用して生物学的配列を操作します。
主要な操作:
- FASTA、FASTQ、GenBank、EMBL形式での配列の読み書き
- 配列のスライシング、連結、検索
- 逆補鎖、転写(DNA→RNA)、翻訳(RNA→タンパク質)
- 正規表現を使用したモチーフとパターンの検出
- 距離の計算(ハミング、k-mer ベース)
- 配列品質スコアとメタデータの処理
一般的なパターン:
import skbio
# ファイルから配列を読み込む
seq = skbio.DNA.read('input.fasta')
# 配列操作
rc = seq.reverse_complement()
rna = seq.transcribe()
protein = rna.translate()
# モチーフを検出
motif_positions = seq.find_with_regex('ATG[ACGT]{3}')
# プロパティを確認
has_degens = seq.has_degenerates()
seq_no_gaps = seq.degap()
重要な注釈:
- 検証付きのグラマー配列には
DNA、RNA、Proteinクラスを使用 - アルファベット制限なしの汎用配列には
Sequenceクラスを使用 - 品質スコアは FASTQ ファイルから位置メタデータに自動的に読み込まれる
- メタデータ型:配列レベル(ID、説明)、位置レベル(ベースごと)、区間(領域/機能)
2. 配列アラインメント
動的計画法アルゴリズムを使用してペアワイズおよび複数配列アラインメントを実行します。
主要な機能:
- グローバルアラインメント(セミグローバルバリアント付きNeedleman-Wunsch)
- ローカルアラインメント(Smith-Waterman)
- 設定可能なスコアリング方式(マッチ/ミスマッチ、ギャップペナルティ、置換行列)
- CIGAR文字列への変換
TabularMSAを使用した複数配列アラインメントの保存と操作
一般的なパターン:
from skbio.alignment import local_pairwise_align_ssw, TabularMSA
# ペアワイズアラインメント
alignment = local_pairwise_align_ssw(seq1, seq2)
# アラインされた配列にアクセス
msa = alignment.aligned_sequences
# ファイルから複数アラインメントを読み込む
msa = TabularMSA.read('alignment.fasta', constructor=skbio.DNA)
# コンセンサスを計算
consensus = msa.consensus()
重要な注釈:
- ローカルアラインメントには
local_pairwise_align_sswを使用(高速、SSWベース) - タンパク質アラインメントには
StripedSmithWatermanを使用 - 生物学的配列にはアフィンギャップペナルティを推奨
- scikit-bio、BioPython、Biotiteアラインメント形式間での変換が可能
3. 系統樹
進化関係を表す系統樹の構築、操作、解析を行います。
主要な機能:
- 距離行列からの樹構築(UPGMA、WPGMA、近傍結合、GME、BME)
- 樹操作(剪定、再根付け、走査)
- 距離計算(パトリスティック、樹形距離、Robinson-Foulds)
- ASCII可視化
- Newick形式I/O
一般的なパターン:
from skbio import TreeNode
from skbio.tree import nj
# ファイルから樹を読み込む
tree = TreeNode.read('tree.nwk')
# 距離行列から樹を構築
tree = nj(distance_matrix)
# 樹操作
subtree = tree.shear(['taxon1', 'taxon2', 'taxon3'])
tips = [node for node in tree.tips()]
lca = tree.lowest_common_ancestor(['taxon1', 'taxon2'])
# 距離を計算
patristic_dist = tree.find('taxon1').distance(tree.find('taxon2'))
cophenetic_matrix = tree.cophenetic_matrix()
# 樹を比較
rf_distance = tree.robinson_foulds(other_tree)
重要な注釈:
- 近傍結合には
nj()を使用(古典的な系統遺伝学的手法) - UPGMA には
upgma()を使用(分子時計を仮定) - GME と BME は大規模な樹に対して高度にスケーラブル
- 樹は根付きまたは根なしが可能;一部のメトリクスは特定の根付けが必要
4. 多様性解析
微生物生態学およびコミュニティー解析用のアルファおよびベータ多様性指標を計算します。
主要な機能:
- アルファ多様性:豊かさ、Shannon エントロピー、Simpson 指数、Faith's PD、Pielou's evenness
- ベータ多様性:Bray-Curtis、Jaccard、重み付き/重み付けなし UniFrac、ユークリッド距離
- 系統学的多様性指標(樹入力が必要)
- レアファクション およびサブサンプリング
- 序列化および統計検定との統合
一般的なパターン:
from skbio.diversity import alpha_diversity, beta_diversity
import skbio
# アルファ多様性
alpha = alpha_diversity('shannon', counts_matrix, ids=sample_ids)
faith_pd = alpha_diversity('faith_pd', counts_matrix, ids=sample_ids,
tree=tree, otu_ids=feature_ids)
# ベータ多様性
bc_dm = beta_diversity('braycurtis', counts_matrix, ids=sample_ids)
unifrac_dm = beta_diversity('unweighted_unifrac', counts_matrix,
ids=sample_ids, tree=tree, otu_ids=feature_ids)
# 利用可能なメトリクスを取得
from skbio.diversity import get_alpha_diversity_metrics
print(get_alpha_diversity_metrics())
重要な注釈:
- カウントは相対度数ではなく豊度を表す整数である必要があります
- 系統学的メトリクス(Faith's PD、UniFrac)には樹と OTU ID マッピングが必要
- 特定のサンプルペアのみを計算するには
partial_beta_diversity()を使用 - アルファ多様性は Series を返し、ベータ多様性は DistanceMatrix を返す
5. 序列化方法
高次元生物学的データを視覚化可能な低次元空間に削減します。
主要な機能:
- PCoA(主座標分析)距離行列から
- CA(対応分析)分割表用
- CCA(正準対応分析)環境制約付き
- RDA(冗長性分析)線形関係用
- バイプロット投影による機能解釈
一般的なパターン:
from skbio.stats.ordination import pcoa, cca
# 距離行列から PCoA
pcoa_results = pcoa(distance_matrix)
pc1 = pcoa_results.samples['PC1']
pc2 = pcoa_results.samples['PC2']
# 環境変数を使用した CCA
cca_results = cca(species_matrix, environmental_matrix)
# 序列化結果を保存/読み込む
pcoa_results.write('ordination.txt')
results = skbio.OrdinationResults.read('ordination.txt')
重要な注釈:
- PCoA はあらゆる距離/非相似性行列で機能
- CCA はコミュニティー構成の環境要因を明らかにする
- 序列化結果には固有値、説明比率、サンプル/機能座標が含まれる
- 結果はプロットライブラリ(matplotlib、seaborn、plotly)と統合される
6. 統計検定
生態学的および生物学的データに固有の仮説検定を実行します。
主要な機能:
- PERMANOVA:距離行列を使用したグループ間差異の検定
- ANOSIM:グループ間差異の代替検定
- PERMDISP:グループ分散の均一性検定
- Mantel 検定:距離行列間の相関
- Bioenv:距離と相関する環境変数の検出
一般的なパターン:
from skbio.stats.distance import permanova, anosim, mantel
# グループが有意に異なるかテスト
permanova_results = permanova(distance_matrix, grouping, permutations=999)
print(f"p-value: {permanova_results['p-value']}")
# ANOSIM 検定
anosim_results = anosim(distance_matrix, grouping, permutations=999)
# 2つの距離行列間の Mantel 検定
mantel_results = mantel(dm1, dm2, method='pearson', permutations=999)
print(f"Correlation: {mantel_results[0]}, p-value: {mantel_results[1]}")
重要な注釈:
- 順列検定は非パラメトリック有意性検定を提供
- 堅牢な p 値には 999 以上の順列を使用
- PERMANOVA は分散差異に敏感;PERMDISP と組み合わせて使用
- Mantel 検定は行列相関を評価(例:地理的対遺伝的距離)
7. ファイル I/O とフォーマット変換
19 以上の生物学的ファイル形式を自動フォーマット検出で読み書きします。
サポートされている形式:
- 配列:FASTA、FASTQ、GenBank、EMBL、QSeq
- アラインメント:Clustal、PHYLIP、Stockholm
- 樹:Newick
- テーブル:BIOM(HDF5 および JSON)
- 距離:区切り文字付き正方行列
- 解析:BLAST+6/7、GFF3、序列化結果
- メタデータ:検証付き TSV/CSV
一般的なパターン:
import skbio
# 自動フォーマット検出で読み込む
seq = skbio.DNA.read('file.fasta', format='fasta')
tree = skbio.TreeNode.read('tree.nwk')
# ファイルに書き込む
seq.write('output.fasta', format='fasta')
# 大きなファイル用ジェネレータ(メモリ効率的)
for seq in skbio.io.read('large.fasta', format='fasta', constructor=skbio.DNA):
process(seq)
# フォーマット変換
seqs = list(skbio.io.read('input.fastq', format='fastq', constructor=skbio.DNA))
skbio.io.write(seqs, format='fasta', into='output.fasta')
重要な注釈:
- メモリ問題を避けるため、大きなファイルにはジェネレータを使用
intoパラメータが指定されている場合、フォーマットを自動検出可能- 一部のオブジェクトは複数の形式に書き込み可能
- stdin/stdout パイピングのサポート(
verify=False)
8. 距離行列
統計的手法を使用して距離/非相似性行列を作成し、操作します。
主要な機能:
- 対称(DistanceMatrix)または非対称(DissimilarityMatrix)データの保存
- ID ベースのインデックスとスライシング
- 多様性、序列化、統計検定との統合
- 区切り文字付きテキスト形式の読み書き
一般的なパターン:
from skbio import DistanceMatrix
import numpy as np
# 配列から作成
data = np.array([[0, 1, 2], [1, 0, 3], [2, 3, 0]])
dm = DistanceMatrix(data, ids=['A', 'B', 'C'])
# 距離にアクセス
dist_ab = dm['A', 'B']
row_a = dm['A']
# ファイルから読み込む
dm = DistanceMatrix.read('distances.txt')
# 下流解析で使用
pcoa_results = pcoa(dm)
permanova_results = permanova(dm, grouping)
重要な注釈:
- DistanceMatrix は対称性と零対角を強制
- DissimilarityMatrix は非対称値を許可
- ID はメタデータおよび生物学的知識との統合を有効にする
- pandas、numpy、scikit-learn と互換
9. 生物学的テーブル
マイクロバイオーム研究で一般的な機能テーブル(OTU/ASV テーブル)を扱います。
主要な機能:
- BIOM 形式 I/O(HDF5 および JSON)
- pandas、polars、AnnData、numpy との統合
- データ拡張技術(phylomix、mixup、構成的方法)
- サンプル/機能フィルタリングと正規化
- メタデータ統合
一般的なパターン:
from skbio import Table
# BIOM テーブルを読み込む
table = Table.read('table.biom')
# データにアクセス
sample_ids = table.ids(axis='sample')
feature_ids = table.ids(axis='observation')
counts = table.matrix_data
# フィルタ
filtered = table.filter(sample_ids_to_keep, axis='sample')
# pandas との相互変換
df = table.to_dataframe()
table = Table.from_dataframe(df)
重要な注釈:
- BIOM テーブルは QIIME 2 ワークフローの標準
- 行は通常サンプルを表し、列は機能(OTU/ASV)を表す
- スパース表現と密表現をサポート
- 出力形式は設定可能(pandas/polars/numpy)
10. タンパク質埋め込み
タンパク質言語モデル埋め込みを使用して下流解析を行います。
主要な機能:
- タンパク質言語モデル(ESM、ProtTrans等)からの埋め込み保存
- 埋め込みから距離行列への変換
- 視覚化用の序列化オブジェクト生成
- ML ワークフロー用に numpy/pandas にエクスポート
一般的なパターン:
from skbio.embedding import ProteinEmbedding, ProteinVector
# 配列から埋め込みを作成
embedding = ProteinEmbedding(embedding_array, sequence_ids)
# 解析用に距離行列に変換
dm = embedding.to_distances(metric='euclidean')
# 埋め込み空間の PCoA 可視化
pcoa_results = embedding.to_ordination(metric='euclidean', method='pcoa')
# 機械学習用にエクスポート
array = embedding.to_array()
df = embedding.to_dataframe()
重要な注釈:
- 埋め込みはタンパク質言語モデルと従来のバイオインフォマティクスを結ぶ
- scikit-bio の距離/序列化/統計エコシステムと互換
- SequenceEmbedding と ProteinEmbedding が特殊な機能を提供
- 配列クラスタリング、分類、可視化に有用
ベストプラクティス
インストール
uv pip install scikit-bio
パフォーマンス考慮事項
- 大きな配列ファイルにはメモリ使用を最小化するためジェネレータを使用
- 大規模な系統樹には NJ より GME または BME を推奨
- ベータ多様性計算は
partial_beta_diversity()で並列化可能 - BIOM 形式(HDF5)は大規模テーブルでは JSON より効率的
エコシステムとの統合
- 配列は標準形式を通じて Biopython と相互運用可能
- テーブルは pandas、polars、AnnData と統合
- 距離行列は scikit-learn と互換
- 序列化結果は matplotlib/seaborn/plotly で視覚化可能
- QIIME 2 アーティファクト(BIOM、樹、距離行列)とシームレスに機能
一般的なワークフロー
- マイクロバイオーム多様性解析:BIOM テーブルを読み込む → アルファ/ベータ多様性を計算 → 序列化(PCoA) → 統計検定(PERMANOVA)
- 系統遺伝学的解析:配列を読み込む → 配列をアラインメント → 距離行列を構築 → 樹を構築 → 系統学的距離を計算
- 配列処理:FASTQ を読み込む → 品質フィルタ → トリム/クリーン → モチーフを検出 → 翻訳 → FASTA に書き込む
- 比較ゲノミクス:配列を読み込む → ペアワイズアラインメント → 距離を計算 → 樹を構築 → クレードを解析
リファレンスドキュメント
詳細な API 情報、パラメータ仕様、高度な使用例については、references/api_reference.md を参照してください。以下に関する包括的なドキュメントが含まれています:
- すべての機能の完全なメソッドシグネチャとパラメータ
- 複雑なワークフロー用の拡張コード例
- 一般的な問題のトラブルシューティング
- パフォーマンス最適化のヒント
- 他のライブラリとの統合パターン
追加リソース
- 公式ドキュメント:https://scikit.bio/docs/latest/
- GitHub リポジトリ:https://github.com/scikit-bio/scikit-bio
- フォーラムサポート:https://forum.qiime2.org(scikit-bio は QIIME 2 エコシステムの一部)
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- davila7
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。