ohca-predictor-v1 / README.md
sharktide's picture
Update README.md
77be05d verified
|
Raw
History Blame Contribute Delete
5.91 kB
---
license: apache-2.0
language:
- en
metrics:
- precision
- recall
- f1
- brier_score
- auroc
- auprc
- accuracy
pipeline_tag: tabular-classification
tags:
- tensorflow
- keras
- transformers
- ohcaprediction
- cvdpredict
- ohca_predictor
library_name: cvdpredict
---
# CVDGaurd: A Cross-Attention 17 Million Parameter Deep Neural Network for the Early Prediciton of Out-Of-Hospital Cardiac Arrest
This repository contains a deep multimodal cardiovascular risk monitoring architecture designed to predict Out-of-Hospital Cardiac Arrest (OHCA) events using simultaneous time-series physiological waveforms and static clinical tabular baselines. 
The model is built using TensorFlow/Keras and is wrapped into the global Hugging Face ecosystem via the unified AutoModel entry point using custom remote code execution. 
### Model Details
* **Architecture Name:** TFCVDPredictorForOHCADetection
* **Domain:** Cardiovascular Disease (CVD) & Emergency Medicine
* **Task:** Binary classification / Risk estimation of impending Out-of-Hospital Cardiac Arrest (OHCA)
* **Framework:** TensorFlow 2.16+ / Keras 3 - CVDPredict Library
* **Primary Inputs:** Continuous 1D/2D sensor waveforms (ECG, PPG, Accelerometer, Gyroscope, Vitals) + Patient tabular metadata
### Performance Metrics (Validation Cohort)
Evaluated independently on a standardized clinical baseline cohort (196 validation samples, post-rate = 28.1%): 
| Metric | Value |
| ------ | ----- |
| **AUROC** | 0.932 [0.895 - 0.972] |
| **AUPRC** | 0.892 [0.828 - 0.949] |
| **Optimal Risk Threshold** |0.302 |
| **Sensitivity @ Optimal** | 0.855 |
| **Specificity @ Optimal** | 0.844 |
| **Brier Score** | 0.0904|
*Note: The cross-attention transformer components are highly sensitive to physiological anomalies and morphological variations in raw continuous wave signals.* 
### Data Schema & Input Specifications
To initialize prediction profiles properly or prevent pipeline shape truncation errors, inputs should be structured around a ~185-second monitoring window (window_duration_hours ≈ 0.05138) conforming to the following target sampling specs: 
#### 1. Continuous Time-Series Signals (Waveforms)
| Parameter Name | Dimension | Frequency | Description / Layout |
| -------------- | --------- | --------- | -------------------- |
| ecgShape | (24050,) | 130 HzRaw | continuous 1D ECG trace array |
| ppgShape | (9250,)| 50 Hz | Continuous photoplethysmogram wave |
| accelerometer | (9620, 3)| 52 Hz| 3-axis continuous accelerometer matrix |
| gyroscope | (9620, 3) | 52 Hz|3-axis continuous gyroscope telemetry |
| respiration | (4625,) | 25 Hz | Continuous chest expansion respiration belt wave |
| spo2Shape (1850,) | 10 Hz | Continuous blood oxygen saturation array stream |
| temperature | (185,) | 1 Hz | Continuous core body temperature array log |
#### 2. Clinical Context Vectors (Tabular Baseline Matrices)
* demographics: NumPy array of shape (24,) — Normalized age, sex, and baseline physiological markers.
* medications: NumPy array of shape (14,) — Encoded binary medication history indicators.
* comorbidities: NumPy array of shape (14,) — Encoded binary chronic disease matrix.
* lab_values: NumPy array of shape (8,) — Standardized baseline blood chemistry values.
#### 3. Vital Parameter Scalars
* heart_rate (float), rhythm (int), activity_state (int)
* spo2_mean (float), sbp_mean (float), dbp_mean (float), respiration_mean (float)
#### Quickstart / Deployment Usage
#### Prerequisites
Before running inference, you must have your matching domain execution library (CVDPredict/ohca_predictor), transformers, and tensorflow installed on your host system: 
```bash
pip install git+https://github.com/sharktide/CVD-Predict.git@v1.0.0
pip install "transformers>=5"
# Install tensorflow for your system by following the instructions at https://tensorflow.org/install
```
### Inference Code Example
You can load the model directly from the internet via the standard Hugging Face pipeline in just a few lines of code: 
```python
import numpy as np
import warnings
warnings.filterwarnings("ignore")
from transformers import AutoModel
from ohca_predictor.utils.io_utils import WindowSample
# 1. Download and map the custom model wrapper from the cloud Hub repository
model = AutoModel.from_pretrained("sharktide/ohca-predictor-v1", trust_remote_code=True)
```
#### 2. Package raw incoming data streams into a structured WindowSample instance
```python
patient_record = WindowSample(
ecg=np.random.randn(24050).astype(np.float32),
accelerometer=np.zeros((9620, 3), dtype=np.float32),
gyroscope=np.zeros((9620, 3), dtype=np.float32),
ppg=np.random.randn(9250).astype(np.float32),
respiration=np.zeros(4625, dtype=np.float32),
spo2=np.zeros(1850, dtype=np.float32),
temperature=np.zeros(185, dtype=np.float32),
demographics=np.zeros(24, dtype=np.float32),
medications=np.zeros(14, dtype=np.float32),
comorbidities=np.zeros(14, dtype=np.float32),
lab_values=np.zeros(8, dtype=np.float32),
heart_rate=72.0, rhythm=0, activity_state=0,
spo2_mean=97.5, sbp_mean=120.0, dbp_mean=80.0,
patient_id="live-monitor-case-001", signal_quality={"ecg": 1.0},
window_start_hours=0.0, window_duration_hours=0.05138,
ohca_label=0.0, event_indicator=0.0, time_to_event=0.0
)
# 3. Dispatches forward pass execution natively
prediction = model(patient_record)
print(f"Prediction Success!")
print(f"Calculated Patient OHCA Risk: {prediction['ohca_risk'].numpy().item():.4f}")
```
### Security Notice
This model relies on **Custom Remote Code Execution (trust_remote_code=True)** to execute the pipeline routing files (modeling_ohca.py and configuration_ohca.py) directly from the Hugging Face hub. Always ensure you are requesting a pinned repository commit hash if deploying this wrapper framework inside production or clinical environments.