Physiological Data

In general, physiological data are acquired using two SIEMENS modules supplied with the MRI Scanner.

These wireless modules are simple to install and allow to acquire (and visualize on the acquisition console) data related to cardiac activity and respiration.

The two modules are :

  • PPU098 (Physiological Pulse Unit): It is an optical plethysmography allowing to acquire the cardiac rhythm.
  • PERU098 (Physiological ECG/Respiratory Unit) intended for the acquisition of an electrocardiogram (ECG) and the respiratory amplitude (by means of a pneumatic system and a restraint belt).

Recording of physiological data

During bold image acquisitions, the sequence used at the MRI center automatically records the physiological traces when the sensors are present.

For the user, once the images have been converted to BIDS format, the physiological data are available in two folders:

  • The raw formats are in the sourcedata folder. The raw formats are in the sourcedata folder:
    .ima (DICOM) images that encapsulate both RESP and PULS traces in a single file:sub-SUB_task-TASK_bold.ima
    – a series of 3 LOG files: Physio_sub-SUB_task-TASK_bold_{PULS,RESP,Info}.log
  • Data in BIDS format are in the func folder:
    – sub-SUB_ses-YY_task-TASK_run-ZZ_recording-cardiac_physio{.json,.tsv.gz}
    – sub-SUB_ses-YY_task-TASK_run-ZZ_recording-respiratory_physio{.json,.tsv.gz}

Exploitation of physiological data

In the sourcedata folder, you can use one type of file or the other, they contain the same information.

Here are 3 tracks to read and exploit these traces:

MATLAB solution that can read IMA (DICOM) images or log files and display the traces graphically.
https://github.com/CMRR-C2P/MB/blob/master/readCMRRPhysio.m
python solution, which I find quite elegant with an explanatory notebook skirt, which uses .ima (DICOM) images:
https://github.com/adolphslab/mriphysio (I spotted a small error in the code, see “issues” on github)

physiological traces

Figure: Example of visualization of PULS and RESP traces with the mriphysio program.

the Physio TaPas (SPM toolbox) which reads directly the LOG files and can calculate directly the associated nuisance regressors (RETROICOR approach).

Time sampling of physiological signals:

In the RESP file, the sampling frequency is 50Hz, 200Hz for PULS files. For information, it is mentioned a unit in “tics”, a tick is equal to 2.5ms. The RESP file makes a measurement every 8tics, i.e. every 20ms, every 2 tics for the PULS, i.e. every 20ms.
In addition, the acquisition time of each point (ACQ_TIME_TICS) is mentioned in number of ticks since midnight…
The _Info file allows to make the link between the timing of the acquisition and the timing of the pulse or respiration measurement.

Concerning the respiratory signal: inhalation = peaks, exhalation =creaks. Here is an extract from the Siemens documentation: