Ventilatory thresholds
VT1 and VT2 from a CPET file
Hand Oxynet the export your metabolic cart writes, unchanged. It reads the file, checks that the signal can support a measurement, and returns VT1 and VT2 located by models trained on tests that experts labelled. You can run it from an AI assistant, in the browser or from code.
Three ways to run it
In an AI assistant
Connect Oxynet once, attach the export and ask for VT1 and VT2. The assistant hands the file to Oxynet and explains what comes back; Oxynet's models locate the thresholds.
In Claude, Oxynet is in the connector directory. For ChatGPT, Claude Code, Gemini CLI and other clients, see connecting an assistant. Either way you need a free API key.
In the browser
Drop the export on app.oxynet.net. No account is needed. The app shows what the file contains, then offers thresholds, oscillation and substrate analysis, with the intensity domains drawn on the chart.
From code
Upload the file to the REST API and ask for the vt analysis; the answer is JSON. The quick start has the calls in curl and Python. A free key covers research and testing.
Before you upload
On a free key, upload only de-identified data: remove names, dates of birth and record numbers from the file and the filename. Blank those cells rather than deleting rows or columns, so the layout stays as the software wrote it. Oxynet is research software, not a medical device, and its results are not a diagnosis (terms).
Which files
The format is detected automatically. Guides for the vendors whose exports the parser was built and checked on:
VT1 and VT2 from a COSMED Omnia export →
2 export layouts
VT1 and VT2 from a CORTEX export →
6 export layouts
Every format the parser reads, with what is known about each, is on the supported formats page.
When the file is not on the list
The upload is refused with the shape to convert into: Oxynet's own JSON, a list of samples with time, VO2, VCO2, VE and whichever other channels the file has. An assistant can do that conversion from the refusal's instructions, and every analysis whose channels survive it then runs. Or send one de-identified export and ask for the format to be added.
What comes back
| Ventilatory thresholds | VT1 and VT2, each as a time from the start of the test and an oxygen uptake in mL/min, with the model and version that produced them. |
|---|---|
| Intensity domains | Moderate, heavy and severe, second by second, drawn in the web app. The thresholds are where they cross. |
| CPET metrics | Peak VO2, VE and RER, O2 pulse, the VE/VCO2 slope, test phases and classical landmarks. |
| Substrate use | Fat and carbohydrate oxidation, FATMAX, the crossover and gross efficiency. |
| Signal quality | Whether the gas analysis, the sampling and the clock can support a measurement at all. |
| Oscillatory ventilation | Beta. Developed on one heart failure cohort; its transportability to other populations is untested. |
No result carries a confidence score. The agreement with expert raters is published; nothing is calibrated against clinical outcomes. Every analysis and its limits are in the analysis catalogue.
Who decides the threshold
An AI assistant asked to read a CPET will estimate a threshold from the numbers in front of it, and the answer will sound right. Connected to Oxynet it does not: it routes the file and explains what comes back. The thresholds come from models trained on tests that experts labelled, across cohorts that differ in population, protocol, ergometer and metabolic cart. The agreement is published:
- AI-Driven Analysis of CPET to Identify Gas Exchange and Ventilatory Thresholds
Sports Medicine, 2026
Evaluates Oxynet for detecting lactate threshold and respiratory compensation points, showing performance comparable to expert evaluators with negligible differences in VO₂ at both thresholds.
- LSTM for Intensity Domain Estimation
European Journal of Sport Science, 2019
Using LSTM neural networks for automatic detection of exercise intensity domains in CPET data.
- Crowdsourcing and CNN for Intensity Domain Determination
European Journal of Sport Science, 2021
Combining crowdsourced expert labels with convolutional neural networks for CPET intensity domain classification.
Questions
- Is it free?
- The browser needs no account. Assistants and code need an API key, and a free key takes a minute, with a monthly limit stated on the sign-up page. For more, or for clinical use under a data processing agreement, ask for an organisation key.
- Does the AI decide where the threshold is?
- No. The assistant passes the file to Oxynet and explains the result. The thresholds come from Oxynet's models, which were trained on tests that experts labelled. An assistant without Oxynet will estimate a threshold from the numbers, and it will sound right.
- Is there a confidence score?
- No, and none is invented. Agreement with expert raters is published; nothing is calibrated against clinical outcomes. What the response does describe is the recording: whether the gas analysis, sampling and clock can support a measurement.
- What happens to the file?
- The uploaded bytes are parsed and discarded. The parsed record expires after 24 hours, and records are kept apart per API key. The browser keeps nothing beyond your session. Details on data handling.
- Can I upload patient data?
- On a free key, de-identified data only. An organisation that needs more works under a data processing agreement. Either way Oxynet is research software, not a medical device: its results are not a diagnosis and must not be used to make medical decisions about a person.