-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PhysIO: strange heart rate (30-40 bpm) #284
Comments
Dear Yana, Thank you very much for your detailed description and taking the time to read the PhysIO documentation.
All the best, |
Dear Yana,
Thank you! |
Dear Yana, The detected peaks look really odd. I am contemplating whether this could be an old bug that I thought I fixed for the new PhysIO versions. Can you type Also, can you please zoom in a bit further into the plots, e.g., showing tiem 600 to 620s with a y-range of -1 to +1. Thank you for your help! All the best, |
Dear Lars,
Thank you very much for wonderful PhysIO!
I'm trying this toolbox for the first time and have carefully read the documentation. Processing of my data seems to go well, however, the estimated heart rate looks suspicious (it is in the range of 30-40 bpm). At the same time, the heart rate estimated online during scanning (displayed via Philips system) was normal. Could you please clarify why this might happen?
I'm working with PPU Wi-Fi data (Philips 3T Ingenia, a sampling rate of 496 Hz). TR = 2 s, 34 slices, 225 volumes, and 0 dummies.
A Philips logfile: ScanPsaLog20241014143359.log
Parameters from the SPM batch:
matlabbatch{1}.spm.tools.physio.save_dir = {'G:\example\physio_out'};
matlabbatch{1}.spm.tools.physio.log_files.vendor = 'Philips';
matlabbatch{1}.spm.tools.physio.log_files.cardiac = {'G:\example\scanphyslog\ScanPsaLog20241014143359.log'};
matlabbatch{1}.spm.tools.physio.log_files.respiration = {'G:\example\scanphyslog\ScanPsaLog20241014143359.log'};
matlabbatch{1}.spm.tools.physio.log_files.scan_timing = {''};
matlabbatch{1}.spm.tools.physio.log_files.sampling_interval = 0.00201612903225806;
matlabbatch{1}.spm.tools.physio.log_files.relative_start_acquisition = 0;
matlabbatch{1}.spm.tools.physio.log_files.align_scan = 'last';
matlabbatch{1}.spm.tools.physio.scan_timing.sqpar.Nslices = 34;
matlabbatch{1}.spm.tools.physio.scan_timing.sqpar.NslicesPerBeat = [];
matlabbatch{1}.spm.tools.physio.scan_timing.sqpar.TR = 2;
matlabbatch{1}.spm.tools.physio.scan_timing.sqpar.Ndummies = 0;
matlabbatch{1}.spm.tools.physio.scan_timing.sqpar.Nscans = 225;
matlabbatch{1}.spm.tools.physio.scan_timing.sqpar.onset_slice = 17;
matlabbatch{1}.spm.tools.physio.scan_timing.sqpar.time_slice_to_slice = [];
matlabbatch{1}.spm.tools.physio.scan_timing.sqpar.Nprep = [];
matlabbatch{1}.spm.tools.physio.scan_timing.sync.nominal = struct([]);
matlabbatch{1}.spm.tools.physio.preproc.cardiac.modality = 'PPU_Wifi';
matlabbatch{1}.spm.tools.physio.preproc.cardiac.filter.no = struct([]);
matlabbatch{1}.spm.tools.physio.preproc.cardiac.initial_cpulse_select.auto_matched.min = 0.4;
matlabbatch{1}.spm.tools.physio.preproc.cardiac.initial_cpulse_select.auto_matched.file = 'initial_cpulse_kRpeakfile.mat';
matlabbatch{1}.spm.tools.physio.preproc.cardiac.initial_cpulse_select.auto_matched.max_heart_rate_bpm = 90;
matlabbatch{1}.spm.tools.physio.preproc.cardiac.posthoc_cpulse_select.off = struct([]);
matlabbatch{1}.spm.tools.physio.preproc.respiratory.filter.passband = [0.01 2];
matlabbatch{1}.spm.tools.physio.preproc.respiratory.despike = false;
matlabbatch{1}.spm.tools.physio.model.output_multiple_regressors = 'multiple_regressors.txt';
matlabbatch{1}.spm.tools.physio.model.output_physio = 'physio.mat';
matlabbatch{1}.spm.tools.physio.model.orthogonalise = 'none';
matlabbatch{1}.spm.tools.physio.model.censor_unreliable_recording_intervals = false;
matlabbatch{1}.spm.tools.physio.model.retroicor.yes.order.c = 3;
matlabbatch{1}.spm.tools.physio.model.retroicor.yes.order.r = 4;
matlabbatch{1}.spm.tools.physio.model.retroicor.yes.order.cr = 1;
matlabbatch{1}.spm.tools.physio.model.rvt.yes.method = 'hilbert';
matlabbatch{1}.spm.tools.physio.model.rvt.yes.delays = 0;
matlabbatch{1}.spm.tools.physio.model.hrv.yes.delays = 0;
matlabbatch{1}.spm.tools.physio.model.noise_rois.no = struct([]);
matlabbatch{1}.spm.tools.physio.model.movement.no = struct([]);
matlabbatch{1}.spm.tools.physio.model.other.no = struct([]);
matlabbatch{1}.spm.tools.physio.verbose.level = 2;
matlabbatch{1}.spm.tools.physio.verbose.fig_output_file = 'figure_output.jpg';
matlabbatch{1}.spm.tools.physio.verbose.use_tabs = false;
PhysIO output figures:
P.S. I have noticed that the x-axis in nearly all figures above includes 1000 s, but I don't understand why (2s TR x 225 volumes = 450 s). Is it normal?
Also, I have found a thread #207
where Marni has ScanPsa* (not SCANPHYSLOG*) files and no gradient data -- the same as in my case. Is my case therefore a problem of synchronization?
Additionally, I have tried to adjust log_files.relative_start_acquisition = 26 (this is the difference between time stamps in ScanPsaLog and DICOM) but this did not change anything.
I would be very grateful for your help and apologize if there are some obvious mistakes.
Yana
The text was updated successfully, but these errors were encountered: