π¦ ClawHub
Clinical Data Cleaner
by @renhaosu2024
Use when cleaning clinical trial data, preparing data for FDA/EMA submission, standardizing SDTM datasets, handling missing values in clinical studies, detec...
TERMINAL
clawhub install clinical-data-cleanerπ About This Skill
name: clinical-data-cleaner description: Use when cleaning clinical trial data, preparing data for FDA/EMA submission, standardizing SDTM datasets, handling missing values in clinical studies, detecting outliers in lab results, or converting raw CRF data to CDISC format. Cleans and standardizes clinical trial data for regulatory compliance with audit trails. allowed-tools: "Read Write Bash Edit" license: MIT metadata: skill-author: AIPOCH version: "2.0"
Clinical Data Cleaner
Clean, validate, and standardize clinical trial data to meet CDISC SDTM standards for regulatory submissions to FDA or EMA.
Quick Start
from scripts.main import ClinicalDataCleanerInitialize for Demographics domain
cleaner = ClinicalDataCleaner(domain='DM')Clean data with default settings
cleaned = cleaner.clean(raw_data)Save with audit trail
cleaner.save_report('output.csv')
Core Capabilities
1. SDTM Domain Validation
cleaner = ClinicalDataCleaner(domain='DM') # or 'LB', 'VS'
is_valid, missing = cleaner.validate_domain(data)
Required Fields:
2. Missing Value Handling
cleaner = ClinicalDataCleaner(
domain='DM',
missing_strategy='median' # mean, median, mode, forward, drop
)
cleaned = cleaner.handle_missing_values(data)
3. Outlier Detection
cleaner = ClinicalDataCleaner(
domain='LB',
outlier_method='domain', # iqr, zscore, domain
outlier_action='flag' # flag, remove, cap
)
flagged = cleaner.detect_outliers(data)
Clinical Thresholds: | Parameter | Range | Unit | |-----------|-------|------| | Glucose | 50-500 | mg/dL | | Hemoglobin | 5-20 | g/dL | | Systolic BP | 70-220 | mmHg |
4. Date Standardization
standardized = cleaner.standardize_dates(data)
Converts to ISO 8601: 2023-01-15T09:30:00
5. Complete Pipeline
cleaner = ClinicalDataCleaner(
domain='DM',
missing_strategy='median',
outlier_method='iqr',
outlier_action='flag'
)
cleaned_data = cleaner.clean(data)
cleaner.save_report('output.csv')
Output Files:
output.csv - Cleaned SDTM dataoutput.report.json - Audit trail for regulatory submissionCLI Usage
# Clean demographics
python scripts/main.py \
--input dm_raw.csv \
--domain DM \
--output dm_clean.csv \
--missing-strategy median \
--outlier-method iqr \
--outlier-action flagClean lab data with clinical thresholds
python scripts/main.py \
--input lb_raw.csv \
--domain LB \
--output lb_clean.csv \
--outlier-method domain
Common Patterns
See references/common-patterns.md for detailed examples:
Troubleshooting
See references/troubleshooting.md for solutions to:
Quality Checklist
Pre-Cleaning:
Post-Cleaning:
References
references/sdtm_ig_guide.md - CDISC SDTM Implementation Guidereferences/domain_specs.json - Domain-specific field requirementsreferences/outlier_thresholds.json - Clinical outlier thresholdsreferences/common-patterns.md - Detailed usage patternsreferences/troubleshooting.md - Problem-solving guideSkill ID: 189 | Version: 2.0 | License: MIT
π‘ Examples
from scripts.main import ClinicalDataCleanerInitialize for Demographics domain
cleaner = ClinicalDataCleaner(domain='DM')Clean data with default settings
cleaned = cleaner.clean(raw_data)Save with audit trail
cleaner.save_report('output.csv')
π Tips & Best Practices
See references/troubleshooting.md for solutions to: