ADaM YAML Documentation
Overview
This project provides a Python module for handling YAML-based specifications for ADaM (Analysis Data Model) datasets in clinical trials, following CDISC standards.
Features
- YAML-based Specifications: Define ADaM datasets using human-readable YAML files
- SQL-First Derivations: Most transformations executed via Polars SQL for optimal performance
- Dynamic Function Loading: Extensible function system without code modifications
- CDISC Compliant: Follows ADaM implementation guidelines
Quick Start
Installation
uv pip install -e .
Basic Usage
from adamyaml.adam_derivation import AdamDerivation
# Load specification and build dataset
= AdamDerivation("spec/study1/adsl_study1.yaml")
engine = engine.build()
df
# Save to file
engine.save()
Architecture
The module uses a minimal 3-class design:
- BaseDerivation: Abstract base class with context storage
- SQLDerivation: Handles 90% of patterns via SQL
- FunctionDerivation: Dynamic function loading for custom logic
Examples
- ADSL Example - Complete example of generating an ADSL dataset
- API Reference - Detailed API documentation
Key Technologies
- Python 3.10+: Modern Python with type hints
- Polars: High-performance DataFrame library
- PyYAML: YAML parsing and generation
- Quarto: Documentation generation