mcpField
T
tooluniverse-ecology-biodiversity

tooluniverse-ecology-biodiversity

github.com/mims-harvard生産性1.8k252 回インストール3 日前に更新
リポジトリ

tooluniverse-ecology-biodiversity について

生態学・生物多様性の調査を支援する ToolUniverse スキルです。種の分類、分布、保全状況、文献の調べ方に加え、外来種の影響や送粉、個体群・群集の分析指針を示します。

主な機能

  1. 01種の分類と分布の検索
  2. 02保全状況と標本記録の確認
  3. 03生態学文献の検索
  4. 04外来種の影響評価
  5. 05個体群・群集分析の指針

活用シーン

  1. 01種名と分類の確認
  2. 02生息地における外来種の影響評価
  3. 03送粉や個体群研究の根拠検索

インストール

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

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-ecology-biodiversity

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

詳細

生態学・生物多様性研究

推論戦略

1. 種と分類に関する質問

種の特定や比較を伴う質問の場合:

  1. 推測せずに調べる — GBIF_search_species で分類情報を取得し、海洋生物については WoRMS_search_species を使用します
  2. 外来種の影響について尋ねられた場合は、生態的ニッチの重複、繁殖率、捕食者からの解放、生態系エンジニアリングの影響を考慮します
  3. 特定の生態学的影響に関する研究を探すには、PubMed_search_articles または EuropePMC_search_articles を使用します
2. 外来種の影響評価

推論の枠組み — 外来種の影響を比較する場合:

  1. 生態系を特定する:どの生息地・バイオームが影響を受けていますか?
  2. 影響のメカニズムを評価する:競争? 捕食? 病気の媒介? 生息地の改変? 交雑?
  3. 影響の規模:局所的(単一の地点)か、地域的か、大陸規模か?
  4. 栄養段階:栄養段階の高い外来種(捕食者)は、低いもの(草食動物)より大きな被害をもたらすことがよくあります
  5. 生態系エンジニアリング:生息地を改変する種(ビーバー、ミミズ、在来の花粉媒介者を駆逐するミツバチ)は、甚大な影響を引き起こすことがあります
  6. 具体的な情報を調べる — 一般知識に頼らないでください。文献で「[species name] invasive impact [region]」を検索します
3. 花粉媒介者の生態学

受粉に関する質問の推論の枠組み:

  1. 採餌行動:探索(接近・評価)と実際の摂食(口吻の挿入)を区別します
  2. 相互作用の種類:相利共生(受粉による報酬)、寄生(盗蜜)、片利共生
  3. 観察方法:カメラトラップには解像度や視野の制約があります — その解像度で何を識別できるかを考慮します
  4. 統計上の考慮事項:観察者間の一致度(評価者間信頼性)、サンプリング努力、時間的パターン
  5. 行動目録の解釈:各行動カテゴリーには特定の開始・終了基準があります — それらに厳密に従います
4. 個体群動態

個体群生態学に関する質問の推論の枠組み:

  1. 増殖モデル:指数増殖(制限なし)、ロジスティック増殖(K による制限)、アリー効果(低密度での問題)
  2. 絶滅分析:決定論的絶滅(r < 0)と確率論的絶滅(小規模な個体群変動)を区別します
  3. 生存分析:イベント発生までの時間の分析には、適切な統計検定(ログランク検定、Cox 回帰、Kaplan-Meier 法)が必要です
  4. 微生物生態学:微生物のストレス要因に対する応答には、時間殺菌動態を用いた生存曲線分析を使用します。個体群間の絶滅時点を比較するには、生存統計を用いて分析した絶滅までの時間データが必要です(単なるエンドポイントの比較では不十分です)
5. 群集生態学と食物網
  1. 栄養カスケード:上位捕食者の除去 → 中位捕食者の解放 → 被食者の減少
  2. キーストーン種:個体数に比して不釣り合いに大きな影響を与える種
  3. 島嶼生物地理学:種数と面積の関係、距離と移入のトレードオフ
  4. 競争排除:単一の制限資源をめぐって、2種が安定的に共存することはできません(ガウゼの原理)
6. 進化生態学
  1. 警告色:毒性や不味さを示す警告の色彩
  2. 擬態:ベイツ型(無害な種が危険な種に似せる)とミューラー型(危険な種同士が互いに似せる)
  3. 生活史のトレードオフ:r 選択(子の数が多く、投資が少ない)と K 選択(子の数が少なく、投資が多い)
  4. 出生・死亡モデル:系統に関する質問では、時間変動する率によって識別可能性の問題が生じます。解決策として、率の変動を制約する、化石データを追加する、分子データによる較正を用いる、または特定の関数形式に限定する方法があります

利用可能なツール

ツール用途
IUCN_get_conservation_status学名に基づくレッドリストの保全状況(CR/EN/VU/NT/LC)— 権威ある絶滅リスク情報源です(無料の IUCN_API_KEY が必要です)
GBIF_search_species種の分類、出現データ、分布
GBIF_search_occurrencesある種はどこで観察されていますか?
GBIF_get_taxon_parentsGBIF Backbone の系統樹を上方向にたどります — 分類群のランク付き祖先系統(界→属)を取得します
GBIF_get_taxon_children系統樹を下方向にたどります — 分類群の直接の子分類群(例:属内の種)を取得します
GBIF_get_taxon_synonyms受け入れられた taxonKey に対する別名・過去の学名
GBIF_get_vernacular_namestaxonKey に対する一般名(言語コード付き)。任意で language フィルターを指定できます
GBIF_parse_name不統一な名前や著者名付きの文字列を、標準名+属名/種小名/著者/年に解析します
iDigBio_search_recordsgenus/scientificname/産地で、デジタル化された博物館・標本館の標本記録(Darwin Core)1億3,000万件以上を検索します — 物理標本の来歴情報で GBIF を補完する際に使用します
iDigBio_get_recordiDigBio_search_records で取得した uuid を使って、1件の標本の Darwin Core 詳細情報を取得します
WoRMS_search_species海洋生物種の分類
BOLDSystems_search_by_taxon / _search_by_bin / _get_recordDNA バーコードに基づく種の識別(COI バーコーディング)。BIN クラスターはバーコードの類似性に基づいて標本を分類します。GBIF の名前ベースの検索では解決できない隠蔽種に関する質問に役立ちます
ensembl_get_taxonomy分類学的な分類
NCBIDatasets_get_taxonomyNCBI の分類情報を検索
PubMed_search_articles生態学に関する文献
EuropePMC_search_articles生態学を含むヨーロッパの文献

GBIF の分類系統樹をたどる

名前を一度 GBIF の usageKey に解決し、その後 Backbone の系統樹をたどります。

key = tu.run_tool("GBIF_match_name", {"name": "Panthera leo"})["data"]["usageKey"]  # 5219404
tu.run_tool("GBIF_get_taxon_parents", {"taxon_key": key})        # Animalia→...→Felidae→Panthera
tu.run_tool("GBIF_get_taxon_synonyms", {"taxon_key": key})       # Felis leo Linnaeus, 1758, ...
tu.run_tool("GBIF_get_vernacular_names", {"taxon_key": key, "language": "eng"})  # Lion, African Lion
# Walk down from a genus key (Panthera = 2435194) to its species:
tu.run_tool("GBIF_get_taxon_children", {"taxon_key": 2435194, "limit": 8})
# Normalize an authored name string without a key:
tu.run_tool("GBIF_parse_name", {"name": "Quercus robur L."})     # canonicalName 'Quercus robur'

5 つのツールはいずれも、キーなしで公開 GBIF API にアクセスします。開始する taxon_key は GBIF_match_name または GBIF_search_species から取得してください。

追加の分類学・生物多様性情報源

GBIF/WoRMS/BOLDSystems/iDigBio(前述)が主要な情報源です。これら8つの情報源は、GBIFだけではカバーできない、各機関固有の権威ある分類情報、系統学的情報、観察記録を補います。GBIFで判断がつかない場合、階層的な分類ではなく系統樹が必要な場合、または博物館の標本記録ではなく市民科学による出現密度が必要な場合に使用してください。

ツール用途
EOL_search_species / EOL_get_page / EOL_get_hierarchy_entry / EOL_get_collectionEncyclopedia of Life — 集約された種のページ(画像、テキスト、ページごとに複数の分類体系)、専門家が選定したテーマ別コレクション
ITIS_search_by_scientific_name / _search_by_common_name / ITIS_get_hierarchy / ITIS_get_full_recordITIS(Integrated Taxonomic Information System)— 北米の権威ある分類基準です。tsn(分類シリアル番号)が返されます
CoL_search_species / CoL_get_taxon / CoL_get_childrenCatalogue of Life — 単一のグローバル種チェックリストとして最も幅広い範囲を網羅しています(190以上のソースデータベースを統合)。GBIFのバックボーンで一致する項目が見つからない場合、最初に確認するのに適しています
OpenTree_match_names / OpenTree_get_taxon / OpenTree_get_mrca / OpenTree_get_induced_subtreeOpen Tree of Life — 全生物を対象とする合成系統樹です(単なる階層的な分類ではありません)。質問が分類だけでなく、進化的な関係や枝の順序に関する場合に使用します
iNaturalist_search_taxa / _get_taxon / _search_observations / _get_species_countsiNaturalist — 写真、場所、日付を含む市民科学の観察記録です。出現密度や最近の目撃情報を調べるのに使用します。権威ある分類情報の参照には適しません
OBIS_search_taxa / OBIS_search_occurrencesOBIS(Ocean Biodiversity Information System)— AphiaID(WoRMSの識別子)に解決された、座標と時刻を含む海洋生物種の出現記録です。海洋生物の出現検索におけるGBIFに相当します
eBird_get_taxonomy / eBird_get_taxon_groupseBird(Cornell Lab)— 鳥類に特化した分類情報と種のグループです。一般的な分類情報源は鳥類の亜種や交雑種コードの情報が不足しているため、鳥類に関する質問にはこちらを使用します
MarineRegions_search_by_name / MarineRegions_get_recordMarine Regions Gazetteer(VLIZ)— MRGIDで指定する海域(海、EEZ、湾など)の地理的・政治的境界情報です。「この名前付きの海の中にある出現記録はどれか」という質問では、OBISと組み合わせて使用します

種の同定・分類情報源の選び方(EOL、ITIS、CoL、GBIFはいずれも「これは何の種か」に答えます):

  • 北米の規制基準となる識別子(tsn)が必要な場合は、ITISを使用します。
  • GBIFのバックボーンで一致する項目が見つからず、最も幅広いグローバルチェックリストが必要な場合は、CoLを使用します。
  • 簡潔な分類レコードではなく、画像、複数の階層、専門家が選定したコレクションを含む集約ページが必要な場合は、EOLを使用します。
  • Open Tree of Lifeは、質問が真に系統学的な場合(MRCA、枝の順序、Newick形式の部分樹)に限って使用します。他の情報源では進化的な関係は返されません。
  • IDを相互に置き換えて使うことはできません。同じ種でも各システムで異なるキー(GBIFのusageKey、ITISのtsn、CoLのtaxon_id、EOLのpage_id、Open Treeのott_id、iNaturalistのtaxon_id、OBISのAphiaID)が割り当てられます。必ず一つのシステム内で解決し、あるデータベースのIDを別のデータベースの検索呼び出しに使わないでください。

例:4つの同定システムで種を相互確認する(実環境で検証済み、実際のID):

tu.run_tool("EOL_search_species", {"query": "Panthera leo"})            # page_id 1270491
tu.run_tool("ITIS_search_by_scientific_name", {"scientific_name": "Panthera leo"})  # tsn 183803
tu.run_tool("CoL_search_species", {"q": "Panthera leo"})                # 293 CoL-database matches
tu.run_tool("OpenTree_match_names", {"names": "Panthera leo,Panthera tigris"})
# -> ott_id 563151 (leo), 42314 (tigris); note `names` is a comma-separated
# STRING, not a JSON array, even though it takes multiple names

例:系統学的なMRCAと部分樹(実環境で検証済み):

tu.run_tool("OpenTree_get_mrca", {"ott_ids": "417950,770315"})
# -> mrca_name "Homininae", mrca_ott_id 312031, num_tips 19
tu.run_tool("OpenTree_get_induced_subtree", {"ott_ids": "417950,770315,312031"})
# -> real Newick tree with supporting_studies citations (pg_2741@tree6645, ...)

例:海洋生物種と地域(実環境で検証済み):

tu.run_tool("OBIS_search_taxa", {"scientificname": "Rhincodon typus"})   # whale shark occurrence-resolved AphiaID
tu.run_tool("MarineRegions_search_by_name", {"name": "Mediterranean Sea"})  # MRGID 25180

例:市民科学による出現密度(実環境で検証済み):

tu.run_tool("iNaturalist_search_taxa", {"query": "Panthera leo"})
# -> genus-level hit "Panthera" (59,036 observations) if the exact binomial
# isn't the top match — check the returned `rank` before assuming species-level

推測せずに調べる

生態学に関する質問には、直感に反する答えがよくあります。たとえば:

  • セイヨウミツバチ(Apis mellifera)は南北アメリカでは外来種であり、在来の花粉媒介者を駆逐します。「ミツバチは良いもの」と考える人には意外かもしれません。
  • 最も大きな被害をもたらす外来種は、必ずしも最も目立つ種とは限りません。
  • 微生物の絶滅時点を特定するには、単純な t 検定ではなく、生存時間分析が必要です。

生態学に関する質問に答える前に、必ず文献を検索してください。PubMed_search_articles を使い、「[species] invasive impact [region]」や「[organism] [ecological process]」のような具体的な用語で検索します。

説明せずに計算する

分析で計算(統計、データ処理、スコアリング、エンリッチメント)が必要な場合は、Bash 経由で Python コードを作成して実行してください。何をするかを説明するのではなく、実行して実際の結果を報告してください。ToolUniverse のツールでデータを取得し、次に Python(pandas、scipy、statsmodels、matplotlib)で分析してください。

コメント