来源信息
- 仓库
- brycewang-stanford/Auto-Empirical-Research-Skills
- 最近来源活动
- 2026年4月3日 02:07
- 检测到的 SKILL.md 语言
- 英语
- 星标
- 3,291
- 分支
- 432
安装方式
默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。
检查来源文件
决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。
菜单
默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。
决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/brycewang-stanford/Auto-Empirical-Research-Skills --skill biodiversity-data-guide命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | biodiversity-data-guide |
| description | Biodiversity data access, species occurrence, and ecological tools |
| metadata | {"openclaw":{"emoji":"🍃","category":"domains","subcategory":"ecology","keywords":["biodiversity","taxonomy","ecology","evolutionary biology"],"source":"wentor-research-plugins"}} |
Access, analyze, and visualize biodiversity data from global databases including GBIF, iNaturalist, and GenBank for ecological and evolutionary research.
| Database | Content | Records | API | Cost |
|---|---|---|---|---|
| GBIF | Species occurrence records | 2.4B+ | Yes | Free |
| iNaturalist | Citizen science observations | 180M+ | Yes | Free |
| GenBank (NCBI) | Genetic sequences | 250M+ | Yes | Free |
| BOLD Systems | DNA barcode records | 15M+ | Yes | Free |
| eBird | Bird observations | 1.3B+ | Yes | Free |
| IUCN Red List | Conservation status | 160,000+ | Yes | Free (with key) |
| OBIS | Marine biodiversity | 100M+ | Yes | Free |
| Catalogue of Life | Taxonomic backbone | 2M+ species | Yes | Free |
| TRY Plant Trait | Plant functional traits | 12M+ | Request | Free |
| WorldClim | Climate data (rasters) | Global | Download | Free |
from pygbif import species as sp
from pygbif import occurrences as occ
# Search for a species by name
name_result = sp.name_backbone(name="Panthera tigris", rank="species")
taxon_key = name_result["usageKey"]
print(f"GBIF taxon key: {taxon_key}")
print(f"Status: {name_result['status']}")
print(f"Kingdom: {name_result['kingdom']}")
# Get occurrence records
results = occ.search(
taxonKey=taxon_key,
hasCoordinate=True, # Only georeferenced records
country="IN", # India
limit=100,
year="2020,2024", # Year range
basisOfRecord="HUMAN_OBSERVATION"
)
print(f"Total records matching: {results['count']}")
for record in results["results"][:5]:
print(f" [{record.get('year')}] {record.get('decimalLatitude'):.4f}, "
f"{record.get('decimalLongitude'):.4f} - {record.get(, )}")
library(rgbif)
library(sf)
library(ggplot2)
# Get occurrence data
tiger_key <- name_backbone(name = "Panthera tigris")$usageKey
occurrences <- occ_search(
taxonKey = tiger_key,
hasCoordinate = TRUE,
limit = 500,
year = "2020,2024",
basisOfRecord = "HUMAN_OBSERVATION"
)
# Convert to spatial data
occ_df <- occurrences$data
coords <- occ_df[, c("decimalLongitude", "decimalLatitude")]
occ_sf <- st_as_sf(coords, coords = c("decimalLongitude", "decimalLatitude"),
crs =
world rnaturalearthne_countriesscale returnclass
ggplot
geom_sfdata world fill
geom_sfdata occ_sf color size alpha
coord_sfxlim ylim
labstitle
theme_minimal
ggsave width height
library(dismo)
library(raster)
# 1. Get occurrence data
occ_data <- occ_search(taxonKey = tiger_key, hasCoordinate = TRUE,
limit = 1000)$data
occ_points <- occ_data[, c("decimalLongitude", "decimalLatitude")]
occ_points <- na.omit(occ_points)
# 2. Get environmental predictors (WorldClim bioclimatic variables)
bioclim <- getData("worldclim", var = "bio", res = 10)
# bio1 = Annual Mean Temperature
# bio12 = Annual Precipitation
# bio4 = Temperature Seasonality
# ... (19 bioclimatic variables total)
# 3. Extract environmental values at occurrence points
env_values <- extract(bioclim, occ_points)
# 4. Generate background (pseudo-absence) points
bg_points randomPointsbioclim n
me_model maxentbioclim occ_points a bg_points
args
prediction predictme_model bioclim
plotprediction main
pointsocc_points pch cex
eval_result evaluateme_model p occ_points a bg_points
x bioclim
printpaste eval_resultauc
library(ape)
library(phytools)
# Read alignment (FASTA format)
alignment <- read.FASTA("aligned_sequences.fasta")
# Distance-based tree (Neighbor-Joining)
dist_matrix <- dist.dna(alignment, model = "TN93")
nj_tree <- nj(dist_matrix)
# Root the tree
rooted_tree <- root(nj_tree, outgroup = "outgroup_species")
# Plot phylogeny
plot(rooted_tree, type = "phylogram", cex = 0.8)
axisPhylo()
# Maximum likelihood tree (using phangorn)
library(phangorn)
data_phyDat <- phyDat(alignment, type = "DNA")
ml_tree <- pml_bb(data_phyDat, model = "GTR+G+I",
rearrangement
library(caper)
# Phylogenetic independent contrasts
# Test whether body mass predicts home range size
# while accounting for phylogenetic relatedness
trait_data <- data.frame(
species = c("Sp_A", "Sp_B", "Sp_C", "Sp_D"),
body_mass = c(5.2, 12.1, 3.8, 45.0),
home_range = c(10, 25, 8, 120)
)
# Create comparative data object
comp_data <- comparative.data(
phy = rooted_tree,
data = trait_data,
names.col = species,
vcv = TRUE
)
# Phylogenetic Generalized Least Squares (PGLS)
pgls_model pglshome_range body_mass
data comp_data
lambda
summarypgls_model
import numpy as np
from scipy.stats import entropy
def calculate_diversity(abundance_vector):
"""Calculate common biodiversity metrics."""
n = np.array(abundance_vector)
N = n.sum()
p = n / N # Relative abundances
p = p[p > 0] # Remove zeros
return {
"species_richness": len(n[n > 0]),
"shannon_H": entropy(p, base=np.e),
"simpson_D": 1 - np.sum(p**2),
"evenness_J": entropy(p, base=np.e) / np.log(len(p)),
"fisher_alpha": estimate_fisher_alpha(n),
"total_abundance": int(N)
}
def estimate_fisher_alpha(n):
"""Estimate Fisher's alpha diversity parameter."""
from scipy.optimize import brentq
S = len(n[n > 0])
N = n.sum()
def equation(alpha):
return alpha * np.log(1 + N/alpha) - S
try:
return brentq(equation, 0.1, 1000)
except ValueError:
return np.nan
# Example: Bird community survey
abundances = [, , , , , , , , ]
metrics = calculate_diversity(abundances)
key, val metrics.items():
( (val, ) )
library(vegan)
# Species abundance matrix (sites x species)
community <- matrix(c(
10, 5, 3, 0, 1,
8, 12, 0, 2, 3,
0, 1, 15, 8, 0,
2, 0, 12, 10, 1
), nrow = 4, byrow = TRUE,
dimnames = list(paste0("Site", paste0
diversitycommunity index
diversitycommunity index
bc_dist vegdistcommunity method
nmds metaMDScommunity distance k
plotnmds type
env_data data.framehabitat
adonis2community habitat data env_data method
Darwin Core (DwC) is the standard schema for biodiversity data exchange:
| Term | Description | Example |
|---|---|---|
scientificName | Full taxonomic name | "Panthera tigris (Linnaeus, 1758)" |
decimalLatitude | Latitude in decimal degrees | 27.1751 |
decimalLongitude | Longitude in decimal degrees | 78.0421 |
eventDate | Date of observation | "2024-03-15" |
basisOfRecord | Type of record | "HUMAN_OBSERVATION" |
coordinateUncertaintyInMeters | Spatial precision | 100 |
institutionCode | Data provider | "iNaturalist" |