Examples
This section provides practical examples of using pyoxynet for various tasks.
Basic Inference Example
Here’s a simple example of how to use pyoxynet for inference on sample data:
import pyoxynet
# Load the TFLite model (default: 5 inputs, 40 past points, CNN model)
tfl_model = pyoxynet.load_tf_model(n_inputs=5, past_points=40, model='CNN')
# Make inference on random input data
pyoxynet.test_pyoxynet(tfl_model)
This will generate random CPET data and perform inference to estimate exercise intensity domains.
Generating Synthetic CPET Data
To generate synthetic CPET data using the conditional GAN:
from pyoxynet import *
# Load the generator model
generator = load_tf_generator()
# Generate a Pandas DataFrame with synthetic CPET data
df = generate_CPET(generator, plot=True)
# Optionally, run inference on the generated data
tfl_model = load_tf_model(n_inputs=5, past_points=40, model='CNN')
test_pyoxynet(tfl_model, input_df=df, plot=True)
Working with Your Own Data
To use pyoxynet with your own CPET data:
import pyoxynet
import pandas as pd
# Load your CPET data (must include required columns)
# Required columns: VO2, VCO2, VE, PetO2, PetCO2
df = pd.read_csv('your_cpet_data.csv')
# Load the model
tfl_model = pyoxynet.load_tf_model(n_inputs=5, past_points=40, model='CNN')
# Perform inference
results = pyoxynet.test_pyoxynet(tfl_model, input_df=df, plot=True)
Data Processing with Optimal Filter
Apply optimal filtering to smooth your CPET data:
import pyoxynet
import numpy as np
# Your time series data
t = np.arange(0, 600) # Time in seconds
y = your_noisy_data # Your measurement data
# Apply optimal filter with lambda parameter
filtered_y = pyoxynet.optimal_filter(t, y, my_lambda=500)
Custom Probability Functions
Create custom probability functions for generating synthetic data with specific characteristics:
import pyoxynet
# Generate probabilities for VT1 and VT2 transitions
probabilities = pyoxynet.create_probabilities(
duration=600, # Test duration in seconds
VT1=320, # First ventilatory threshold at 320s
VT2=460 # Second ventilatory threshold at 460s
)
# Use these probabilities with the generator
generator = pyoxynet.load_tf_generator()
df = pyoxynet.generate_CPET(generator, plot=True, fitness_group=probabilities)
Model Explainability with SHAP
Understand model predictions using SHAP values (requires full installation):
import pyoxynet
# Load model and explainer
tfl_model = pyoxynet.load_tf_model(n_inputs=5, past_points=40, model='CNN')
explainer = pyoxynet.load_explainer(tfl_model)
# Load or generate data
df = pyoxynet.load_csv_data('data_test.csv')
# Compute SHAP values
shap_values = pyoxynet.compute_shap(
explainer,
df,
n_inputs=5,
past_points=40,
shap_stride=20
)
Advanced Usage: Custom Model Parameters
Load models with different input configurations:
import pyoxynet
# For 7-input model (including respiratory frequency)
tfl_model_7 = pyoxynet.load_tf_model(n_inputs=7, past_points=40, model='CNN')
# For different temporal window (e.g., 60 past time points)
tfl_model_60 = pyoxynet.load_tf_model(n_inputs=5, past_points=60, model='CNN')
# Test with your specific configuration
results = pyoxynet.test_pyoxynet(
tfl_model_7,
input_df=your_df,
n_inputs=7,
past_points=40,
plot=True,
inference_stride=1
)