Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The physiology is sampled at 400Hz, and consists of Pulse (TTL), Resp, and SaO2 three columns of a text file.

Expand
titleImporting HCP unprocessed data to BIOPAC and calculating BRV/BR
  1. Import .txt file at 2500 microsec/sample (equivalent to 400 Hz), create a duplicate waveform for breathing signal before processing data

2. Filter entire waveform after putting a focus area (rest) for the entire sample (you can use Ctrl+A for selecting the entire 15 minutes of data.

3. Check for spurious signals and use transform-> math functions-> connect endpoints to fix that.

4. then utilize Find Cycle to Identify peaks (expire start) using thresholding example breathing signal for HCP100307 threshold at 2500 V, select 2 secs (+ and -) for left and right margins . Choose output events-> maximum for the channel with breathing processed data

5. Use Find Cycle again to detect bpm (make sure measurement preset has BPM selected) of expire start to expire start. Correct for erroneous expire starts. Remember to select display waveform and make sure to turn off the output events. when you are familiar with the process 4 and 5 steps can be done together.

6. Use Find Cycle to save the bpm of expire to expire start in template excel sheet that generates BR and BRV for that subject after expire starts have been correctly annotated. Please use save in focus area rest single spreadsheet.

From Reference Manual at 1200 Subjects Data Release:

MR Physiological Data
We also acquire cardiac and respiratory signals associated with each functional MR scan, using a standard Siemens pulse oximeter placed on a digit and a respiratory belt placed on the abdomen. These signals are linked to scan onset using a trigger pulse generated by the pulse sequence. They arewritten to text files and assigned unique file names that enablematching to the corresponding scan. These raw files were processed to create a file format expected by FSL's PNM. They are combined into a 3-column physio text file starting from the onset of the first trigger pulse through to the end of the last acquired frame. They are all sampled equally at 400 Hz, meaning there are roughly 288 samples per frame for functional images. In the aggregate file the first column is used for the trigger pulse information, the second for respiratory information, and the third column for pulse oximeter (i.e., cardiac) information.

MATLAB code to import Siemens physiology

Code Block
languagematlab
function T = import_phys( fn )
opts = delimitedTextImportOptions("NumVariables", 3);
% Specify range and delimiter
opts.DataLines = [1, Inf];
opts.Delimiter = "\t";

% Specify column names and types
opts.VariableNames = ["Pulse", "Resp", "SaO2"];
opts.VariableTypes = ["double", "double", "double"];

% Specify file level properties
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";

% Import the data
T = readtable(fn, opts);

if false
    figure %#ok<UNRCH>
    subplot(3,1,1),plot(T.Resp)
    subplot(3,1,2),plot(T.SaO2)
    subplot(3,1,3),plot(T.Pulse)
end