You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying to set-up PhysIO to extract regressors from custom vendor log_files with respiratory and cardiac (PPU, also including respiratory peaks in second column) data. As the data is already pre-processed (missing segments in the time courses interpolated, smoothed and band-pass filtered, truncated to match length of my MRI scans), I would actually prefer to just omit every further pre-processing and just extract RETROICOR regressors. This seems to be possible for the cardiac data, not for the respiratory data though which apparently is bandpass filtered by default. I would assume that this is not a major problem, i.e. using the default boundaries of 0.01-2Hz should leave my signal intact and allow me to proceed with regressor generation. However, when running my batch script, I get the following error:
Failed 'TAPAS PhysIO Toolbox'
In an assignment A(:) = B, the number of elements in A and B must be the same.
In file "/usr/local/spm12/toolbox/PhysIO/preproc/tapas_physio_filter_respiratory.m" (???), function "tapas_physio_filter_respiratory" at line 138.
In file "/usr/local/spm12/toolbox/PhysIO/tapas_physio_main_create_regressors.m" (???), function "tapas_physio_main_create_regressors" at line 225.
In file "/usr/local/spm12/toolbox/PhysIO/tapas_physio_cfg_matlabbatch.m" (???), function "run_physio" at line 1664.
the left side of the assignment expects a vector while the right side of the assignment is a matrix.
This seems to be more or less unrelated to the structure of my input files, but for the sake of completeness, the respiratory input are 60.000x1 .log files with pre-processed amplitude values.
A similar issue has been brought up in this thread: #272
but the solution (removing PhysIO toolbox from MATLAB search path) provided in there does not work for me.
I would be very glad to get some insight on this, if anybody encountered and solved this problem as well or has a potential solution for me...
Hello there,
I am trying to set-up PhysIO to extract regressors from custom vendor log_files with respiratory and cardiac (PPU, also including respiratory peaks in second column) data. As the data is already pre-processed (missing segments in the time courses interpolated, smoothed and band-pass filtered, truncated to match length of my MRI scans), I would actually prefer to just omit every further pre-processing and just extract RETROICOR regressors. This seems to be possible for the cardiac data, not for the respiratory data though which apparently is bandpass filtered by default. I would assume that this is not a major problem, i.e. using the default boundaries of 0.01-2Hz should leave my signal intact and allow me to proceed with regressor generation. However, when running my batch script, I get the following error:
Failed 'TAPAS PhysIO Toolbox'
In an assignment A(:) = B, the number of elements in A and B must be the same.
In file "/usr/local/spm12/toolbox/PhysIO/preproc/tapas_physio_filter_respiratory.m" (???), function "tapas_physio_filter_respiratory" at line 138.
In file "/usr/local/spm12/toolbox/PhysIO/tapas_physio_main_create_regressors.m" (???), function "tapas_physio_main_create_regressors" at line 225.
In file "/usr/local/spm12/toolbox/PhysIO/tapas_physio_cfg_matlabbatch.m" (???), function "run_physio" at line 1664.
In line 138:
rpulset_padded(1:n_pad) = padding_window(1:n_pad) .* rpulset_padded(1:n_pad);
the left side of the assignment expects a vector while the right side of the assignment is a matrix.
This seems to be more or less unrelated to the structure of my input files, but for the sake of completeness, the respiratory input are 60.000x1 .log files with pre-processed amplitude values.
A similar issue has been brought up in this thread:
#272
but the solution (removing PhysIO toolbox from MATLAB search path) provided in there does not work for me.
I would be very glad to get some insight on this, if anybody encountered and solved this problem as well or has a potential solution for me...
Best regards,
murban
This is the batch script if relevant:
matlabbatch{1}.spm.tools.physio.save_dir = {'../physio_out'};
matlabbatch{1}.spm.tools.physio.log_files.vendor = 'Custom';
matlabbatch{1}.spm.tools.physio.log_files.cardiac = {'../PeakVec.log'};
matlabbatch{1}.spm.tools.physio.log_files.respiration = {'../RespVec.log'};
%matlabbatch{1}.spm.tools.physio.log_files.scan_timing = {''};
matlabbatch{1}.spm.tools.physio.log_files.sampling_interval = 0.01;
%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 = 30;
%matlabbatch{1}.spm.tools.physio.scan_timing.sqpar.NslicesPerBeat = [];
matlabbatch{1}.spm.tools.physio.scan_timing.sqpar.TR = 1.5;
matlabbatch{1}.spm.tools.physio.scan_timing.sqpar.Ndummies = 0;
matlabbatch{1}.spm.tools.physio.scan_timing.sqpar.Nscans = 400;
matlabbatch{1}.spm.tools.physio.scan_timing.sqpar.onset_slice = 1;
%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';
matlabbatch{1}.spm.tools.physio.preproc.cardiac.filter.no = struct([]);
matlabbatch{1}.spm.tools.physio.preproc.cardiac.initial_cpulse_select.load_from_logfile = struct([]);
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.no = struct([]);
matlabbatch{1}.spm.tools.physio.model.hrv.no = struct([]);
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 = 'test_run_PhysIO_output.fig';
matlabbatch{1}.spm.tools.physio.verbose.use_tabs = false;
The text was updated successfully, but these errors were encountered: