mcpField
T
tooluniverse-ecology-biodiversity

tooluniverse-ecology-biodiversity

github.com/mims-harvard生产力1.8k252 次安装3 天前更新
代码仓库

关于 tooluniverse-ecology-biodiversity

面向生态与生物多样性研究的 ToolUniverse 技能,指导 Agent 查询物种分类、分布、保护状况和研究文献。内容涵盖入侵影响、传粉、种群及群落生态等问题的分析框架。

主要功能

  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. 查询具体信息——不要依赖一般知识。在文献中搜索“[物种名称] invasive impact [地区]”
3. 传粉者生态学

传粉问题的推理框架:

  1. 觅食行为:区分探查(靠近/评估)和实际取食(喙管插入)
  2. 相互作用类型:互利共生(获得传粉回报)、寄生(盗蜜)、偏利共生
  3. 观察方法:摄像机陷阱存在分辨率/视场限制——应考虑在给定分辨率下能够识别哪些信息
  4. 统计学考量:观察者一致性(评分者间信度)、采样努力和时间模式
  5. 行为谱解释:每种行为类别都有特定的起始/结束判定标准——应严格遵循
4. 种群动态

种群生态学问题的推理框架:

  1. 增长模型:指数增长(不受限制)、逻辑斯谛增长(受 K 值限制)、Allee 效应(低密度问题)
  2. 灭绝分析:区分确定性灭绝(r < 0)和随机性灭绝(小种群波动)
  3. 生存分析:事件发生时间分析需要采用适当的统计检验(log-rank、Cox 回归、Kaplan-Meier)
  4. 微生物生态学:对于微生物对胁迫因子的响应,使用基于时间杀灭动力学的生存曲线分析。要比较不同种群的灭绝时间点,需要使用生存统计方法分析灭绝时间数据(而非仅比较终点)
5. 群落生态学与食物网
  1. 营养级联:移除顶级捕食者 → 中型捕食者释放 → 猎物减少
  2. 关键种:相对于其丰度,产生不成比例的影响
  3. 岛屿生物地理学:物种—面积关系、距离与定殖之间的权衡
  4. 竞争排斥:两个物种无法稳定共存于单一的限制性资源上(Gause 原理)
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_parents沿 GBIF 主干树向上遍历——获取 taxonKey 的分级祖先谱系(界→属)
GBIF_get_taxon_children沿树向下遍历——获取直接子分类单元(例如,某个属中的物种)
GBIF_get_taxon_synonyms获取已接受 taxonKey 的替代/历史学名
GBIF_get_vernacular_names获取 taxonKey 的俗名(含语言代码);可选的 language 筛选条件
GBIF_parse_name将杂乱或带作者信息的名称字符串解析为规范名称+属名/种加词/作者/年份
iDigBio_search_records按 genus/scientificname/地点搜索 1.3 亿多条数字化博物馆/植物标本馆标本记录(Darwin Core)——用于补充 GBIF,获取实物标本来源信息
iDigBio_get_record根据 uuid(来自 iDigBio_search_records)获取单个标本的完整 Darwin Core 详情
WoRMS_search_species海洋物种分类
BOLDSystems_search_by_taxon / _search_by_bin / _get_record基于 DNA 条形码的物种鉴定(COI 条形码);BIN 聚类按条形码相似度对标本分组,适用于 GBIF 基于名称的搜索无法解决的隐存种问题
ensembl_get_taxonomy分类学分类
NCBIDatasets_get_taxonomyNCBI 分类查询
PubMed_search_articles生态学主题文献
EuropePMC_search_articles包含生态学主题的欧洲文献

浏览 GBIF 分类树

将名称解析为 GBIF usageKey 后,即可浏览主干树:

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'

这五种工具都无需密钥即可调用 GBIF 公共 API。通过 GBIF_match_name 或 GBIF_search_species 获取起始 taxon_key。

其他分类学与生物多样性数据源

GBIF/WoRMS/BOLDSystems/iDigBio(见上文)是主要数据源。以下八个数据源补充了 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(Taxonomic Serial Number,分类序列号)
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 查询海洋地理和政治边界(海域、专属经济区、海湾);与 OBIS 搭配,可回答“哪些出现记录位于这个具名海域内”这类问题

如何选择物种标识与分类数据源(EOL、ITIS、CoL、GBIF 都能回答“这是什么物种”):

  • ITIS:当你需要北美监管标准标识符(tsn)时使用。
  • CoL:当 GBIF 的骨干分类系统无法匹配时,用于获取覆盖范围最广的全球物种名录。
  • 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 用在另一个数据库的查询调用中。

示例:跨四个物种标识系统交叉核对物种(已通过实时查询验证,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,并输入具体的检索词,例如“[物种] 入侵 影响 [地区]”或“[生物] [生态过程]”。

计算,不要描述

如果分析需要计算(统计分析、数据处理、评分、富集分析),请通过 Bash 编写并运行 Python 代码。不要描述你打算怎么做——实际执行并报告结果。使用 ToolUniverse 工具检索数据,然后用 Python(pandas、scipy、statsmodels、matplotlib)进行分析。

评论

支持 Markdown