Oxynet is a powerful toolset for the automatic interpretation of cardiopulmonary exercise test (CPET) data.
About the Oxynet Project
Universal access to high-quality healthcare is a global challenge. Leveraging AI and vast data resources, Oxynet aims to revolutionize the diagnosis of medical conditions through CPET, facilitating accurate and timely clinical decisions while reducing costs associated with diagnostic errors and delays.
Oxynet combines:
- A network of CPET experts
- A large crowdsourced dataset
- AI algorithms approximating human cognition in CPET analysis
We seek collaboration with universities, hospitals, clinics, medical professionals, and companies involved in medical device development and commercialization. Together, we can advance R&D, support research financially, contribute to scientific publications, share data, develop web applications, conduct market analyses, and validate algorithms for clinical use.
The Pyoxynet Package
Pyoxynet is a suite of deep neural network algorithms designed for CPET data analysis. Built with Keras and TensorFlow, the models are available in TFLite format for efficiency, with direct TensorFlow model usage from version 11.6 onward.
The package includes two main models:
- Inference Model: Estimates exercise intensity domains from CPET data.
- Generator Model: Creates synthetic CPET data.
🐍 Install the Python package
📁 Read the docs
Installation
Pyoxynet is compatible with Python 3.8. To install, run:
pip install pyoxynet
Or:
pip install git+https://github.com/andreazignoli/pyoxynet.git#subdirectory=pyoxynet
Usage
To use the inference model, input CPET data including VO2, VCO2, VE, PetO2, PetCO2, VEVO2, and VEVCO2. Pyoxynet handles data interpolation, supporting sec-by-sec, breath-by-breath, and averaged data.
Example usage:
import pyoxynet
# Load the TFL model
tfl_model = pyoxynet.load_tf_model()
# Make inference on a random input
test_tfl_model(tfl_model)
# Plot the inference on a test dataset
pyoxynet.test_pyoxynet()
Generation
Pyoxynet includes a Conditional Generative Adversarial Network (CGAN) for generating realistic CPET data. Example:
from pyoxynet import *
# Call the generator
generator = load_tf_generator()
# Generate a Pandas df with fake CPET data
df = generate_CPET(generator, plot=True)
# Call Oxynet for inference on fake data
test_pyoxynet(input_df=df)
Generated data includes VO2, VCO2, VE, HR, RF, PetO2, and PetCO2.
Contacts
📧 Feedback & Issues: oxynetcpetinterpreter@gmail.com
📧 PI: Andrea Zignoli: andrea.zignoli@unitn.it
Publications
Explore the research behind Oxynet:
- Research: AI for CPET interpretation
- Review: AI technologies in exercise data processing
- Research: LSTM networks for VO2 estimation
- Research: LSTM for intensity domain estimation
- Research: Crowdsourcing and CNN for intensity domain determination
- Research: Conditional GANs for synthetic CPET data
- Research: Regression, generation, and explanation
- LinkedIn: Oxynet project overview
- Blog: AI in CPET data interpretation
- Medium: Using the Python package for CPET inference
- Medium: Generating realistic CPET data with Python
Acknowledgments
Special thanks to the following for their contributions:
- TFLite Inference
- Amazon Lightsail
- Flask
- Uniplot Python library
- Machine Learning Mastery cGAN
- Exercise Threshold
- Header photo by Pawel Czerwinski on Unsplash
Disclaimer
All content found on this website, including text, images, tables, and other formats, is for informational purposes only. The information provided by this software is not a substitute for professional medical advice, diagnosis, or treatment. Always seek the advice of your physician or other qualified health provider with any questions you may have regarding a medical condition. Never disregard professional medical advice or delay in seeking it because of information provided by this software.