Skip to main content

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 version License: MIT Python 3.8+

📦 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

  1. Online Docs: Visit miracleapi.readme.io and check the "Query Parameters" for your endpoint.
  2. 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 parameter field 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

miracle_sdk-0.1.1.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

miracle_sdk-0.1.1-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

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

Hashes for miracle_sdk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 30e755fa6c64f9435d16be24d7fa42fd41a369dbdcbcf02219b2924bdb01aa0b
MD5 c6e1d57205da1ee5743f69c555fefbd8
BLAKE2b-256 5c348d78e673ef571b02efaf94a9cd7ddfb42a14ed65442d0763fa79a5d6693e

See more details on using hashes here.

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

Hashes for miracle_sdk-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e4e37314c0c1ed84ff2e03fa8d1cd6627fd8c3c1d72a5a2cd311c630ef02c69b
MD5 9eba864d62838fa9e3fe56ea6d93d8ad
BLAKE2b-256 bf716ba032fbb8ca3c228e56e89f67e44118ddf03984e4f33669534a20c65960

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page