The Official Python SDK for the MIRACLE API - Cardiovascular MRI Reference Values
Project description
MIRACLE SDK 🫀
The Official Python SDK for the MIRACLE API
📦 PyPI: pypi.org/project/miracle-sdk
MIRACLE: MR Imaging Reference API for Cardiovascular Limits from Evidence
The MIRACLE SDK provides a simple, typed, and high-performance Python interface to access standardized cardiovascular MRI reference values. Built for data scientists and medical researchers who need to process cardiac imaging data at scale.
✨ Features
- 34 Endpoints: Access all MIRACLE API domains with auto-generated, typed methods.
- Batch Processing: Process hundreds of patients in parallel with
MiracleBatch. - IDE Support: Full autocomplete and type hints for VS Code, PyCharm, and more.
- Battle-Tested: Verified with stress tests (16+ concurrent requests, 100% success rate).
🚀 Installation
pip install miracle-sdk
📖 Quick Start
Single Request
from miracle import Miracle
# Initialize the client
client = Miracle()
# Get reference values for a pediatric left ventricle
result = client.pediatric_ventricle_reference_values(
parameter="LVEDV",
gender="Male",
measured=62.5,
ht_cm=110,
wt_kg=22
)
print(result)
# {'inputs': {...}, 'results': {'calc_z': 0.5, 'calc_percentile': 69.1, ...}}
Batch Processing
Process an entire CSV of patients with multi-threaded parallelism.
Input CSV (patients.csv):
patient_id,gender,height_cm,weight_kg,lv_volume,param_type
001,Male,120,30,75,LVEDV
002,Female,110,25,60,LVEDV
Code:
from miracle import MiracleBatch
# Initialize the batch processor
processor = MiracleBatch(max_workers=10)
# Define how your CSV columns map to API parameters
mapping = {
"gender": "gender",
"ht_cm": "height_cm",
"wt_kg": "weight_kg",
"measured": "lv_volume",
"parameter": "param_type"
}
# Process the CSV
df_results = processor.process_csv(
file_path="patients.csv",
domain="Pediatric_Ventricle",
mapping=mapping
)
# Save the enriched data
df_results.to_csv("patients_with_zscores.csv", index=False)
[!TIP] Performance: In stress tests, the SDK processed 16 concurrent requests in ~7.5 seconds with a 100% success rate.
🗺️ Parameter Mapping Guide
The mapping dictionary connects your CSV column names to the API parameter names.
mapping = {
"API_PARAMETER": "YOUR_CSV_COLUMN",
"ht_cm": "Patient_Height", # Example
}
How to Find API Parameters
- Online Docs: Visit miracleapi.readme.io and check the "Query Parameters" for your endpoint.
- Python Help: Use the built-in docstrings:
help(client.lv_reference_values)
Common Parameters
| Parameter | Type | Description |
|---|---|---|
gender |
str |
"Male" or "Female" |
age |
float |
Patient age in years |
ht_cm |
float |
Height in centimeters |
wt_kg |
float |
Weight in kilograms |
measured |
float |
The measured value (e.g., volume, diameter) |
parameter |
str |
The measurement type (e.g., "LVEDV", "LVEF") |
[!IMPORTANT] The
parameterfield is required for most domains.
🏗️ Architecture
This SDK is auto-generated from the official OpenAPI specifications. This guarantees:
- Consistency: Python methods always match the live API.
- Type Safety: Full autocomplete and type hints.
- Reliability: API changes are automatically reflected in the SDK.
🤝 Contributing
Contributions are welcome! Please see the main MIRACLE-API repository for the source of truth.
Development Setup:
git clone https://github.com/drankush/MIRACLE-sdk.git
cd MIRACLE-sdk
pip install -e .[dev]
Regenerate the client from OpenAPI specs:
python scripts/generate.py
📖 Citation
If you use this SDK in your research, please cite:
MIRACLE: MR Imaging Reference API for Cardiovascular Limits from Evidence Authors: Ankush et al. Journal of Cardiovascular Magnetic Resonance (2026)
📄 License
This project is licensed under the MIT License. See the LICENSE file for details.
Made with ❤️ for the Cardiac Imaging Research Community
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file miracle_sdk-0.1.1.tar.gz.
File metadata
- Download URL: miracle_sdk-0.1.1.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30e755fa6c64f9435d16be24d7fa42fd41a369dbdcbcf02219b2924bdb01aa0b
|
|
| MD5 |
c6e1d57205da1ee5743f69c555fefbd8
|
|
| BLAKE2b-256 |
5c348d78e673ef571b02efaf94a9cd7ddfb42a14ed65442d0763fa79a5d6693e
|
File details
Details for the file miracle_sdk-0.1.1-py3-none-any.whl.
File metadata
- Download URL: miracle_sdk-0.1.1-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4e37314c0c1ed84ff2e03fa8d1cd6627fd8c3c1d72a5a2cd311c630ef02c69b
|
|
| MD5 |
9eba864d62838fa9e3fe56ea6d93d8ad
|
|
| BLAKE2b-256 |
bf716ba032fbb8ca3c228e56e89f67e44118ddf03984e4f33669534a20c65960
|