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:

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 thresholdsVT1 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 domainsModerate, heavy and severe, second by second, drawn in the web app. The thresholds are where they cross.
CPET metricsPeak VO2, VE and RER, O2 pulse, the VE/VCO2 slope, test phases and classical landmarks.
Substrate useFat and carbohydrate oxidation, FATMAX, the crossover and gross efficiency.
Signal qualityWhether the gas analysis, the sampling and the clock can support a measurement at all.
Oscillatory ventilationBeta. 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:

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.