Siemens Physio - Melbourne 7T

See also: https://wiki.humanconnectome.org/display/PublicData/Understanding+Timing+Information+in+HCP+Physiological+Monitoring+Files

From upenn Pulse-ox data

The resulting data files are stored in c:\MedCom\log. The log-file will have the name assigned during the set-up process (e.g., L101209B_pulse) with the suffix “.puls”. This is a text file, with the following structure:

1 2 40 280 1915 1708 1531 1340 1045 ... ECG Freq Per: 0 0 PULS Freq Per: 72 823 RESP Freq Per: 0 0 EXT Freq Per: 0 0 ECG Min Max Avg StdDiff: 0 0 0 0 PULS Min Max Avg StdDiff: 355 1646 795 5 RESP Min Max Avg StdDiff: 0 0 0 0 EXT Min Max Avg StdDiff: 0 0 0 0 NrTrig NrMP NrArr AcqWin: 0 0 0 0 LogStartMDHTime: 36632877 LogStopMDHTime: 39805825 LogStartMPCUTime: 36632400 LogStopMPCUTime: 39804637

The first five values of the first line are the parameters of the acquisition. The third of these is related to the “ticktime”, which is the time (in msec) between subsequent measurements, although the exact relationship is still being determined. Starting with the 6th value of the first line are the voltage values themselves that reflect the pulse ox. Note that the output is in voltage, not absolute SpO2 level (e.g., 98% saturation).

The sampling frequency for pulse-ox data is 50 Hz. Equivalently, a sample is acquired every 20 msecs.

Within the vector of voltage values are “trigger” events from the scanner. These are entered as 5000 (for trigger on) and 5003 (for trigger off). These values need to be stripped out of the vector. There will occasionally be extra values at the end of the voltage vector as final values in the buffer will be written to the file after the logging is stopped. This can result in the vector length being slightly longer than would be predicted from the log start and stop times described below.

The subsequent lines provide other parameters. Most relevant are the Log Start and Stop times for the MDH and MPCU. These log times indicate the time at which pulse-ox recording was started and stopped. That is, the first pulse-ox value in the first line of the data file was acquired at the LogStart time. The MPCU values provide time-stamps derived from the clock within the PMU recording system. The MDH values are time-stamps derived from the clock in the scanner, which is the same clock used to provide time-stamps for DICOM images. The MDH values are therefore preferred for synchronization of the DICOM images with the physiologic recording log.


The data are in two files, *.resp and *.puls

The signal is in the first row; this can be imported with MATLAB’s “Import Data”, but this is inefficient as it treats each value as a separate variable. It works, but is slow. MATLAB code is:

fn = 'C:\Working\Physio - Siemens\3433Patros\PhysioLog_20210303T125426.resp'; id = fopen(fn); y_cell = textscan(id,'%d'); fclose(id) y = y_cell{1}; figure,plot(y)

The pulse has peaks presumably where the software detected a pulse

The resp has peaks presumably where the software detects a rbeath - although not at end-pispiration