Biosample Enricher Documentation

Infer AI-friendly environmental and geographic metadata about biosamples from multiple sources.

Python Version License: MIT PyPI version

Overview

Get NMDC submission-schema values from geographic coordinates. Biosample Enricher retrieves environmental and geographic metadata from authoritative data sources and returns it in the format needed for NMDC submissions.

Features

  • Simple API: One function - get_environmental_metadata(lat, lon, slots)

  • Multiple Data Sources: Climate normals, elevation, weather, soil, marine data

  • Multi-Provider Consensus: Queries multiple providers and returns consensus values

  • Type Safety: Full type hints with Pydantic validation and mypy checking

  • Smart Caching: HTTP caching with coordinate canonicalization for efficiency

  • CLI Tool: Get values without writing code

  • Flexible Installation: Core functionality only, or add optional mongodb/metrics/schema extras

Installation

# Recommended: Use uv
uv add biosample-enricher

# Or with pip
pip install biosample-enricher

# Optional dependencies
uv add biosample-enricher --extra metrics    # Metrics and visualization
uv add biosample-enricher --extra mongodb    # MongoDB support for NMDC/GOLD
uv add biosample-enricher --extra all        # All optional features

Quick Start

from biosample_enricher.environmental_metadata import get_environmental_metadata

# Get environmental metadata for a location
result = get_environmental_metadata(
    lat=37.7749,   # San Francisco
    lon=-122.4194,
    slots=["annual_precpt", "annual_temp", "elev"]
)

print(result["values"])
# {'annual_precpt': 519.3, 'annual_temp': 14.1, 'elev': 10.2}

See also

Main API Reference: Environmental Metadata

Complete documentation for get_environmental_metadata() including all supported slots, providers, consensus strategies, and response format.

Project Info

Indices and tables